IMD 1.18: 15/07/2013 8:29:15 vedit plus 2.32  @`  @`! #@%`')+u/1 3@5`79;=?A C@E`GKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ `  @ ` @ ` ǀ ɠ @ ` ׀ ٠ /@` @`!Ao   !A!!#A%a')+-/1!3=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagimoq!sA@`  @`! #@%`')+u/1 3@5`79;=?A C@E`GKMOQ S@U`WY[]_a c@e`gikmoq s@u`wy{} @` @ ` @ `  @ ` @ ` ǀ ɠ @ ` ׀ ٠ /@` @`!Ao   !A!!#A%a')+-/1!3=?A!CAEaGIKMOQ!SAUaWY[]_a!cAeagimoq!sAINSTALL EXE SRJ VINSTALL INI TRJ -7VPLUS86CSET eRJ I}INTMOD EXE cRJ 0EVPHELP HLP jRJ kVVHELP HLP pRJ GVPEHELP HLP uRJ !PRINT EXC XRJ NEWCRT DOC YRJ "READCRT DOC ZRJ * VEDIT INI yRJ :MENU VDM }RJ ;"COMPARE VDM RJ L=SORT VDM RJ k MZ , B6G 7GGF׸F6Pl;)FPFPv vuBPFPHF=|FPYuFPP\FFFPFPHF=|FPP&P6fHF=|6PUF ^+ÉFvDYF؅tvEYvuDYFvvvHFvvvH=tPR:YPGYF;FtvKEYv /Y~uV*HIFڍFPv[EP+YP PPPP6M FՀ~uFFPv F=u~uM[*=u@Y%u5Y%t*P9YPw7Yu FPYPg9Y~uFFP6iL9P87YuPP39Yv[1Y~u5FPGYvGY=tP9YPBFYFP6G0~u'vfGY=tNP8YP FY6xGYv?GYø)DF؀?u!FFU@%tҸøCF؀?tËFFF؀?uQF= uF=,tPFFXFFU@%t뢋FFFFF;FuF؀?uv@YFF*PF[;w'F=}F=~F = ËFPF XF FPFXF؀?u FFFFZøB>[u^FuKY%u@FGNJF*P[;rPFF*PA7Y%#u{FFݸF޸FFOFFFPFPP`FFݸF޸FFFFFFPFPP$F3P P6GNj=|P P6øAGNj; |MP?YFt FCAFPC@@XFCPC@@Xv6CC'륡 ø+A8FFF FF؀?u9Gǃ~tFPFFXFF=.tF뺸PFX~u .PGF XvF PY%u_Y% uAFFFPFPvBFۉFF؀?tPFFXS [F* FF*øD>!tø0>F= F= }ø>U PF*[;t6cPl+PF*[;t6ePIF*P Yu6eP'^*#ÈF~u+PF*[;tCF*P9Yu(@^*ÈF6P F*PJ Y F*P= YF*P YPP ø=GNj=K|PP?%FFøAtPPVFFAF6k-YF +FF= }FPF[ÉFAFGNjFFP[;| F@@FߋFFFFFFPvFPFPFPFP FFFF6WPT-6[6mF-PFPF:1PYA ÍFP16YFF=}F;F ~F =Ht=ht̃~tAFFFFtø98FFPPEP6C=tWF6W6,PY-YY% t Y%uPP. PP~.FF6W6W6W6W6P&, FFFF=|;FF*PJYFvFP6W6W PP+ 본PP+FFFF؀?uhFPPm)P)YFFPlY)P3YF…t~uP+P%+YFF|~tN PP\9P+YY% t Y%u2P.P-9P4P-ø66F P;P*~ u v @P*P7Yø5F FFP P8FF^ÉFPF^ÓXF=t PFXÍFPv@9ø5CP*YF =t6WFP)v6WIP)F =t66[66WNP) OF =t v 6q6[6o6WZP) $F =t6OnP})tPp)Yvv =u=u};Fs ;Fwiu)F =uv PvvvG /F =t6WwP(v Pvvv taøD4F=t zP(YPP)F=t|P(Y6Q6WP(~ uv 6SvPd(v 6SvPM(F=t6wP4(6U6WP"(ø3FPX8YFFP0[;~F=9~ FN ÊFPA[;~F=F~ FN øø-3F*%ø3Y%udFFFFF=|PFFXݸF FFFF=|PFFXݸFFFFF=|(PFFXݸFFFFF=!|(PFFXݸFFFFF=|(PFFXݡF@@PFXø1F*v6W6YPa&GNj;F |F P@P6WP/&ԸPv PF@PP6 Hø1Fv6W6YP%GNj;F |F PW6WP%׸PF HPPvP6w ø 1F*= tcÊF*=tgÀ~taÊF*PYuFF*@PFXFáFFPFXFø0v6WP%F\FuF*PYF*= tFP$YPPF*PYuF뎊F*ø0V*=t Vøø/FPPj$RRø/F*= u/F*= u">0u PP)$F*PYø/v v $Røy/v v#v 3YRãRøV/6[6W6#P"Yø5/FR`F=-F=|"F@EP6W6WPt#F&/7\ 7> 7; FF@@EFF@@EFFFEFFY%#t6W6Y6y"øFFEFuY%u"Y%tv Yu[6W6W6Y6yk",)'$3ETTTZm= s.*ԋF=*F= |FPvFPkøw-FFFUFF+FF,F-ø:-FPFP(~tF=tËFËF=t.PFPc0uPFPN0tÃ~ t FP`*YÍFPm0YFF^HFF= t FFF=HuF=htFFFFFPFPF=tËF^ÉFFF^;uFø,FFFFFF=|FF؀?uFFԋFFF *=tvP9 øPPPvPF P FP Yø}+F *=tLY%u"F@@**@PPF@@**P PËF@@*FFFFFFF *K"FQFH:F99F4*HFRC(7=s.UF@*=t3PF*PF*PF*PPF P F(PvvFPPF P FF *4FPFFXFHPFFXFHHPFFXFPFFXF*;FsFPFXFF*;Fs PFXFF*;FsFPFXY%uFFFPFFXFHHPFFXY%#uFFPFFXFPFX?F@*=tFPFX FPFX=u=ueø(F *=t #PDYøFFFFPFF[;uPFFXv6W6W6Y6 6W6[6W6W6Y6 @PFPA~tFPFXF%PFP+tFPFX FPv+FPFP+YFXø'FF *=t.F*PYu]_Fv)P!ËF*P[YuF GFF=|KF؀?u<F*= u,F*= uF*%PF*[ PFXø 'FFFF *=tP*PáFF 6W6W6Y6BF FFGF*PF*[;uM=,PYǹ …tu6W/PF*P3P6[6W6W6[6W6u FF6W6PPPFPFPFPFPFP@66SF*@P6W9PQ 1FFFbP;YF=t=t=t~tqF;Fu PFXøq%6{Y6}YPPPPPdP YY%uVø(%FPI Yv6Z voYPvXFF=u7PFFsRPv4vPsP6[AF~uFFF@@Fv*$YvYø$F{PY-,+6YUUPFX>Ut0PFFXPFFXPFFX6}Y++PFF X6cY,>,t!PFFXPFFXa,* â,,PFFX6Y->-tPFFX-* â--PFFX>Ut . 6Y.U= }PUXø"#RF6W66W6wFFFF=}7F؀?u"4066WP%FPPPYP Y3PYFF*P.Yu>0t 04X>0t>UPF*[;t 4+PF*[;t40^* ÈF,*PF*[;u-*PF*[;t 4LFFF%FF*%U@%utFu~F*= ueF*PYF*U@%u8F*PF*%PFF*PP^* ÈF F* F 6#Y% tu6F*= t!6aP8P YF*P<YF=^+ÉFFFR^+ÉFF^+ÉFPPPYPYPYCVF*PYFuvPP!/ T&-g&B&D&E&H&b&d&e&h&'PP F=uxøFFF FFFPYølF>.uF7F>0uh>4uFF*%FF=-F*=as F*=zwF*=As'F*=Zv>.u ^*3ÈFF=tFFF*F;(u PF*F[;uÃ~u PYPF*FXY% t;>6u1F;t PF*X PF* XF=tFFFFPuYÊF*PYt F*=tF*=t FF*;(u!PF*[;uÀ>7u PYPF*XFPYáø%FPYFP5Yv6F6YF^S sF[WP^WRPv#v6v66EYFGNj;F|(v66YPF@@XFF˸FGNj;F|vFFPv6q6YFGNj;F|* PYFvvvPvBYøP6PFXt6PnFP6 P66uPP6FP66Y øLF؃?tF PF@@XPFX F PF@@ XF PF@@Xv YFv YPFXv YPF@Xv YPF@@Xv vYPFXv dYPFXv RYPFXv F PPF XF*øfF@@*u1GNj;|v PF[P3v FPø FãvkYøv 6+6Y@PYPFX6FP\øv YPFFXuøFFFFF؀?u-~uP YFFP6WP ø:T6WP FPvvYFPFFHXS[6WPl F)PvvYFFFF=,| PFFX6WP 'FPvv/YF:PFFXøaFFPPFFFFFFF=r(FF;FtFPFF^ÓXƀ~u!vvPFPڃFFFFFFFFFF=!r(FF;FtFPFF^ÓXƀ~u!vvPFPsڃFFFFFFFFFF=r(FF;FtFP FF^ÓXƀ~u!vvPFPكFFF~t6aP7PP)øP YVGNj=|[ǹx؃?u$ǹxHPǹxX!ǹvPYPǹxX똠V*=t=^S=+[WP^WRPvP6vPFPv>Yt!PYPv>YtP6vuP6vdPPvS?^SF+?=+[WP^WRPvPPWPv6WP P"PvGNj=|= tY%u=u=u =tY%#upPFPvu= t,Y%#u!ǹrPF+?=+[W"ǹrPF+?=+[W<GNj=|= tY%up=u=u =tY%#uDPǹrWRPvǹvPǹxPvhx (<*[øH^SY%u[WP^WRPv0PYPv=tPmYPY>Tu ËGNj;|= tY%u=u=u =tY%#u\PǹrWRPv}ǹvPǹxPv+=t2PYPYQøGϋF P6WaP~~ ulPkYFFF~uF#YuF PFF*@PnP'FF@@*FFF*,F؀?u]_Fv{PFPF*[gP~PF*PAYF@*=tF*PPzFPPfFFF@*=tF*N+PP,FN+PPGF*PPvFhЃ!555)6565~65656= s.6빸PYF FOPF*PPPP6Mmڃ FF=tËFFFF*;Fr4F#YuFFF*;Fu F F뿋F@@*FFFFFFFFF*F؀?uPFXvF*PFPFgPF P݃PFX9PYF P`YPFXFFF\FF^FF*=uFF@*=t=vvvF*N+PPF P؃ NPFX8vvvFN+PPF P؃ NPFXAF*PPvFhЃ7778h8R8=s.9뿸tø FF+RFFFF;F|P PtދFRø Fu|6U6WvPPFPP׃F9øÃ~uFPYPPF=Nt=Yt=nt=ytzø ~FFFF;F }9F FFF~uvY=uFËPGX븋Fø ~WoY=t4#ËPXS [=t= t=t؋øD v$Y=tvY=uËƹ ø ~EP[;ryE%uøPXS#[}tWYE PEPEP=$tPXS [ËEƉEǓ%øw F Pv;P|ø_ FF Pv ;P^øA 6vø- Pvø ~v = uV P=uVWø ~ EP[;rF%PWËFPǓX%ø =Ds ǃ PYø ~}u<E%u PW1EPn Y ËE%uEP YEø6 ~O<E%uÊE%u>EP[+Ë VEPEP ;tPXS [EËF =uPXS#[EÃ}tW[YE =uPF PEP| =uF ËEE PE[ÉEPXS [F PǓX%ø: tWv vø v xYDžt v WY u׋EPv =uËPF XPF XF ø~PXS#[E%uPW;u1F=u)=u!^ SPE[+Ù[S_N [WEv^ WRPEP;  }ø~^SPRPEP [WE%u$^SEP[+Ù[S_ [W)=u!^SPE[+Ù[S_ [W^Wøp}u =DrEEø>~EP YuE EøPYFtE PXS [FEøZ~v FFuwF=%taF FhF FFFF=-tFFFF=0t0FFFF=*tF F FFF9F FFFU@%uF FFЋF=.teFF=*tF F FFF9F FFFU@%uF FFЋF=lt$FF^SF F W[W9F=dt^SF F [W^SF F +[WFhPP^WRP F ^W |1hP P^W RPF-PFFXhP P^WRPYFhP P^WRPFhPP^WRPhFh^WFPYF\^WFFF FPgFX,=ct=du=ou=st=uud=xu{뼍h+FFF;FFF~uFF;F vYFFFF؀?uF;F|FFPY΃~tFF;F PYvYxøR~ vǙRP^WY[DPNƓX^SǙ[S_h[W u‹ø~ v^W|u^W%F^S^W[WRP^WY[!FDPNƓX^S[S_[WVW^WRP ø[~= t= uGF=-u FG =+uGǸU@%uƹ PG[ԃ~uø~EHFWUYv -Yu ;tF ;FvFF PVW`øF@Ft D NjEEP[;tHEP[;u7EP[;u E@@EPǓXS[E@@E뭋;FrR;Fu ED1FǣDEP@@X+FPXFƣEË;u-PY=uøEP YøgF|uáE;w EP[;vEP[;r;w EP[;r̋EDƉEǣ6G[WVUӋ]^_[. .;t.'.gu.4G+݁v+شJ!űՋ+A+,+&%=ttt* +ǎP&>Wt*G>>-XXL!..2Gø~F @PYPXF = t= uG=ujPFFXPY=uPPPPeYGNj؀?u = t= uPGXy66=PYø1vYU^D!r t t+@]+]øv PvøF % =F %u܋_!s+ôB܊GWO_!sôA܋W!s+ËWVW!_s+Ëܹ܋OVWwu +_^ør@HVWwu_^GËW++H_ËܜVWwO;trONtONtt_^ËWG>P Yu_Ë܋G;s;s ;r+Ë+_UVWUF͊FFFFF-FFˌVFF^OWw G_ 6_^]nF^NVv~ ^ F_^]XË܊G* if your terminal does not appear above PRNwLST:w%s%s%s %s %s CONwCON:w %s%s %s%s%s %s%s p%s%s %s %s p%s%s(%d) %s: : %s %s%s%xH%s%xH%u%s%u%s: %s%s%s%s %s %s%2d. %s%s%s %s %s%2d. %s%s%s: None%s %c%c %s%s%sEe%d ** entering twilight zone ** %u%u*oem%s, %s%d%s %sPlease type numbers between %d%s255%s Enter a version number %s%s %x %s %s %s %s install.ini*CRT.TBL*r %s%s %s* %s* %s*%s(%s%s) Normal Vedit version: %d Error writing output file. Check disk space. Error writing output file. Check disk space.  %s%s %2d. %-52s%s%s%xH%xH%u%u %s %s%s rr+ww+a a+ xx+0123456789abcdef 00000 @@@@@@@@@@@@@@@ @@@@@@@ @@@@@ @@@@ *CRT.TBL*56933ACT-IVADDS REGENT 20, 25ADDS REGENT 30, 35, 40, 60ADDS REGENT 100ADDS VIEWPOINTADDS VIEWPOINT/3A PLUSADM-3AADM-31AMPEX DIALOGUE 80ANN ARBOR 400DANSI X3.64BEEHIVECONTROL DATA CD-110CONTROL DATA CD-722DATAMEDIADEC VT-100, VT-180, RAINBOWDEC VT-52DYNABYTE 57EMULOG 200FULCRUM VIO-X2HAZELTINE / VOLKER CRAIG ( ~ )HAZELTINE / VOLKER CRAIG (ESC)HEATH/ZENITH H19, H89, Z100HP 125, 150HP 2621 - 2645HDS CONCEPTIBM DISPLAYWRITERIBM 3101IBM PC (ANSI)INFOTON 100INTERTUBE II (UP TO VER. 1.7)INTERTUBE II (LATER), IIIISC 8063 AND OTHERSKAYPRO ('83 MODELS)KAYPRO ('84 MODELS)KIMTRON ABM 85LINWOOD BETA BANDITNEC APCNORTH STAR ADVANTAGEPERKIN ELMER 1251/1245PERKIN ELMER BANTAM 550SD VDB 8024SOROC IQ-120SOROC IQ-140SUPER BRAINSWTPC CT-82TEC 500TELERAYTELEVIDEO 910TELEVIDEO 910 PLUS/914/925/950TELEVIDEO 912/920TI PROFESSIONAL (ANSI)VICTOR 9000VOLKER-CRAIG 404WYSE TECHNOLOGY WY-100XEROX 820 Y kK Y kKMl MbBY  kK 0P0@Y  kK 0P0@= YT 0R0@=  = ;YTE R G4G0= +ER EjkXY  C@[;H M[7mF JKLMf LdPd@= YT jkRQ R   [;H 0  M =>Y JK IC,     DE= YTER EZ&Z ~~~~~ ~~~ Y JKLM Lpqx1wy1vx7y7&acYhJJKLM T&dB&d@&s1A&s0A&arCJKLM L&dB&d@a  DdY LI 33Y JI   [;H f JK Y  K Y kK   = ER = ER B0C0B7C7C6B6=+YTER EJK[H =  =22LM  X Y KJIPLM LXY K(I =   = *Y TER E= *YTER EY ~k~K   =  Y JKLM L= YT G4G0= YTER EG4G0= YTER Ejk[;H Y JKLM Lpqx6y6   = +YTER EG6G0=  *CRT.TBL*541726453315932  000000000000000000000000000000000000000000000 MAIN MENU FOR VEDIT CUSTOMIZATION Keyboard Layout 1. Display or Print Keyboard Layout 2. Modify Keyboard Layout 3. Perform All New Keyboard Layout 4. Add Alternate Keys to Layout VEDIT Operational Settings 5. Change Edit Parameters (EP commands) 6. Change Edit Switch Settings (ES commands) 7. Change Visual Mode Interface 8. Change Command Mode Interface 9. Change File Handling Parameters Machine Related Settings 10. Change Screen Display Parameters 11. Additional Memory Mapped Installation Features 12. Select CRT Terminal TypeOffForwardForward & ReverseBlinking UnderlineBlinking BlockSolid BlockAttributeNo conversionsConvert LC to UCConditional convertConditional reverseNo displayLine onlyColumn onlyLine and ColumnStrip I and OStrip O onlyStrip I onlyNo strippingStr I/O, insert CTRLsStr O, insert CTRLsStr I, insert CTRLsNo str, insert CTRLsOn text onlyAnywhere (no fill)Anywhere (with fill)Escape lead-in character #1Escape lead-in character #2Common second (noop) character #1Common second (noop) character #2[Home][Zend][Cursor Up][Cursor Down][Cursor Right][Cursor Left][Back Tab][Tab Cursor][Zip][Next Line][Line Toggle][Scroll Up][Scroll Down][Scroll Right][Scroll Left][Previous Word][Next Word][Previous Paragraph][Next Paragraph][Page Up][Page Down][Screen Toggle][Backspace][Delete][Erase to End of Line][Erase Line][Delete Previous Word][Delete Next Word][Undo][Tab Character][Next Character Literal][Set Insert Mode][Reset Insert Mode][Switch Insert Mode][Repeat][Indent][Undent][Find][Replace][Cancel][Copy to Text Register][Move to Text Register][Insert Text Register][Print Text Block][Set Text Marker][Goto Text Marker][Format Paragraph][Visual Escape][Visual Exit][Macro][Restart Editor][Help]Usage: Install Unable to open Misalignment in In response to the prompts for keyboard layout, enter a Function key - such as or on an IBM-PC  Control character - such as or Escape sequence - such as ESC-H or ESC-1 on a CRT terminal Note: RETURN (same as ) cannot be assigned. You may "edit" the keyboard layout with the following commands: RETURN Moves to the next function - Moves to the previous function SPACE Disables the function, i.e removes the assignment  B Moves back to the first function D Display or print the current keyboard layout E Skip the remaining prompts - EXIT to Main menu If your CRT terminal or computer does not appear onthe above list it must be added using the program INTMOD. Todo this first Exit the INSTALL program - being sure to SAVEany important changes. Next, print the file NEWCRT.DOC. It will instruct you onthe procedure for adding your terminal to the menu. Once thisis done you can run INSTALL on the VEDIT file you SAVED earlier,and select your CRT terminal using TASK 12. Display or Print Keyboard LayoutDisplayPrintcomcmdEnter the option numberor "E" to ExitPlease enter a number between and  ress Yes  NoNot usedESCFUNCDELOk to save changes in %s? Supported Computers and CRT Terminals: Enter the number of your terminal or p%sto continue the menu orto pick number %sP%sto continue %sP%sto leave Tab positions the same, or %senter up to 33 new tab positions. %sP%stwice to finish entering tabs. or 'E' to Exit%s%sThis option does not apply to your VEDIT. VEDIT Version Flags: 1H: 8080 MM 2H: 8086 MM 4H: Crt versions 8H: MS-DOS 10H: CP/M-86 20H: IBM 40H: TI PC 80H: TRS 80 100H: Piceon Please enter Yes or No%s%sThe current Sign-on message is: %s%s%s%sEnter a new message up to 64 letters long, %sor p%sto leave it the same: %s %sEnter Control/Escape sequences for the following functions. %sType at any time to get more information. Type the number of your selection, separated by commas or spaces. %sTurn on printer and adjust paper. CTRL- Are upper and lower case escape sequences equivalent? %s%s%s%sKEYBOARD LAYOUT Invalid character. Please enter another one: %sP%sto continue %s%sCurrent Tab Settings: %s*** Control sequence already used ****** Invalid input string ** orto keep (orfor previous menu) 52#Cursor Typed#Cursor blink rate; 5 is fastestIndent incrementUpper/lower case conversion Conditional conversion flag character! Line and column display"Right margin for word wrap; 0 = Off#High Bit (Bit 8) Processing (I=input, O=output)$Cursor positioning option%(Horizontal scroll margin&dHorizontal scroll increment Expand tabs with spacesAuto-buffering in visual modeBegin in visual modePoint past text register insertIgnore upper/lower case distinction in searchClear screen on visual exitReverse all upper and lower case lettersSuppress search error messageUse explicit text delimitersGlobal file operationsJustify paragraphsChange tab positions0Begin in insert modeReverse video on status lineScreen continuation characterChange Sign-on MessagePattern match characterCommand iteration left bracketCommand iteration right bracketCommand escape character/Speed of your computer in MHZ3Enable auto-startup (execute VEDIT.INI)1Look for Help and VEDIT.INI on default drive2Alternate drive for Help and VEDIT.INI files+Size of spare memory after auto-read (K bytes)-Size of file buffering "page" (K bytes)4Number of screen lines;Length of displayed line8Line movement for paging9Top line for cursor:Bottom line for cursor #Cursor character #Status line character #Tab expansion character #Screen clear characterC"Screen attribute code for normal videoD"Screen attribute code for reverse videoE"Screen attribute code for cursor;Screen line lengthAddress of screenFNumber of video board initialization bytes  2a `}bq&!s2u2 t3tPSRQft tjYZ[XË?C?r';AË?C?r'?áA+?ËAC?r'AtuuuV x{ x:tC:udVՀtв:t:tQ$YuZtYuYhQYQ>VtU$Z tiYDOtSeu uà t4Yt4 û$\$[ à uttѱѱ )1zAJr= o'rP:d'A? lûL*F* N[[4d2[Kىjnlpõ?CC tCtGCtÀ>) uà| uðVCRZ ZCQ&<t<-u@) uû>uKt")' 'N6 <( [ Xs X t É3sA ÿ12 t1TsQ 2^>u u .s+ t#s u  sY@[  u[:u:uW@ _׿,PSQRZY[XË֋ڃcB#([   2G G G t  z u8  =tû u RZ 7 Sj$l&[CS YWQW[utB<*tgt4C<.tx-<*u*KٱEtt<*uC9m V ?Cuà8<@u$ڈG t< t: BS<[t< t < t<t< Ë G< r<*tN-t4 "$[p %L uC0 [t.C" M-u<sAQt@ : \ b Wz W_tG 9[+âȊбDӱ;=rà tûA JE Ê!VG[r uMF KsñP;X S  tKN u>Ju2/tÀS [tÀ) [t ACYP{Nى""+K? u CQ{YtKI#s׋"ut"+[N* tHuË"ÀS?[r+ u""," :uBC)22<ú ڊG ,$G rÃo rG G 8u;t  K(s7ROف9rOCNt$W u t .tOCӻM  u L6KsN+[OC t6CU ɻu'CC2SC[t SQKY[L٠ ËK+r+ڹsRNZr-ً+K'+sûU ;rÇú&r2:tHs u{ uËuNC9sSJ["T52ËQNCsӉùNKA;sAIËI à F u à tû8 ) uû  tà üb{ bS 2&[C tV(2.tnjW DSRQYZ[jnp"R2QSGH#CJ<,KuEJ<;u  uIu  tS_Jn>nry:xO>nr1j>,sua>ny u~,nb#QAXrn,r>,>n맺sAuy2 Ë,~ ۇt0 :u Q[YC u?:u K:u22 È6 àz.zbt H$tw%bFxP  ()z<&t<$rðRz=V !2Oʉ*,K.< uO<u:u<td*,<u<u<ti<t}<u<u<uR.;Zr Ê< u !댋,C,":u*,+ډ3 ;tK;tB#2à<rK,*!*P9 4/uXME t<uK+BIӊ)EùP s wtË+QLYsËىÀ>N-uDYut(S[rS[<tC< u6uEC!2Ë!M-tÀ>K,uQNI1^S_zM<-t'r ut@>;s!OW[s9r>u!>@w>@tKPËK<tàP%#s} uÇӉûsHu7t/-Vu*stV,^wtDr/Or$<t<t<\u>O tPX&r  u@]hs<\uC tSS[r7@:tDr<\u0u2ûCu ËjnB;t< t<Ë;tC<u[ﻀuC t?< "QR++sRYsoً"Sى"[@ZY s SهӋ;Zs7 sp$_Q:uc V{!v/ "  r <uVv s tC tG>P#t@2 "pt3z:ui }njbpblz# ! u #:zu K<,t  u^ZG O U<*u$_K,t>S_u >M-t.  6C(CM(à<&t di v/+Qa/ Z?R}uRS[Z* tN<-t( N<-u$_Pq X5z$" &jrtCjKu"+s>N+us$zCRS[5뻀it%>Z[SR+ڊ=Ya>CZsZ[=(Ot lbu>:u >~ u:t$&:uGCG:t&:::u,CG> `u;t&:t y(ݷ(߉b&&Sb&[rr>N-t - t$zGu8sӰP tCGIXuSQY[XGu[u t Q YCm Š:uw QRZYtQ N z<$ru԰&z  :O r$ *D N+XuC:M TPLtCȢTT:s0XTÊ>Cu +u  uû)RRb;ӊ uÊ$CIj&?u :u~ ~ >C ܠ uû 0 <t< t< u tx( -;I/ Q!;2K$ }P Xб5\< t ?Q;uN-0K u9>Q:t2 t  z  dusC t<[u!PtIt;rCs{ # uk[绀4t]Ӌ uS+[u :r;t ACS+[u t9 u ns t> tRQ' i YZQPXYIB< uDf<uU>M-t sË<uCCp>N-tR@&t>#t J$_K,u&CE 6R[ڇӋs6uM-A>M-t# It:tC:u>CtICK6;rIuC;t4u>N-)>M-u +r;rÇهӋs}5C ËCICjKjSjKK&CjJ[2j&jjN&C:tA;nr2 ,;ntCÿ ؎R^3ZsÇ6bSQRb_Y^VWQbYZ[bÀ>K,t[>S_uT6@s t@XÀ>S_uM<-t2tuq2ûB t+ʋڋCI"!4/422KC:uSR(Z[jnlp#ÎlS3 r#jnK#t C tub3sâ#jnlpONu? S.S7Cw1 t#:u ي[Y Ɗ:à uûK:t2n#zuuò>P#u D t3>uÀ>Q:t+u$ 2 t c6V. ts tJ tBj3:u:uuËG:uC:uKNuÊ.>jŹ>jÊC< u<u:u1r #:t1SRX[jl^npZSQ< tjS+ډFZ[[SQ[[1 SZñ/z/R1Z1u,"QYCI:t$CPX$_t  tQ t=Y rQYZ[Ë# S! t[SR u7(Z[SRQt~t<u <u <tw zY S[Cڻ a# MYy '  Q  Zu$/SP  /   uX: t0ŻD@j&<u2LVu 2C8:t9&N:&OuÊȠ:u:u2S<,[uOȊÊ;sRv;Zs ~ tt+C àR NtCOË@ u@V_~ u:t:t^G@ËDCDZX-Ë>V:t<:tP:t"~ t*:CGtհx 0CGt Ê:uC$_t:u2C'_XuÀAuN*Duc*Lu|CtYFtiStYTuYuUuiVukBu4*WuP uMuNuK:C< r):u):)u))uÊ< u))t<[)t<[s):C:t%:u)~ GtJ):u):uOSWt _[G:uh)XX:x)tGo)tO:C:t~ t(:QKCQYs)KO2CSWQ tCz<$t<n&,Cn,Y_Wrnj;QrnK&Y_[ [nK&OWQlY_[2ú-(RSQ[[Ê؊NJt u2=<#u P #u4u8u$_jOW&GC:tJ:t C:uCC_C>jX%G uÊ à $N-tá= sSRQWz:u ʻbb_4:6R2+ډ80+ډ4ZR+ڇӋ8ډ8"Z uÊQ: R2:24JK 6ZYR+ى68PRCC^+ه"[XHuûztË}! r4)!SRQYQ u &2nS_r-& Y^VQdt6rbYZ[[[[Ëbp"QB[sDu sӋQ Ys"u1Qb0YS+SQYZ[sRKg[QY+QYsË+S[2Ë  L Ӌ B  S{ Z ӋCS Z`mSRZuRl[Rs؎b^؋ #z:tKC, sà :u1"uC j9tCC9s 6 97r8CCû.CC, sPX}{z:tRC+ڇCCZûKCC, sPCX2"<+t<#u%<'r2zu <sz)u,0u,7ð&SRQ  SRQ' 2"<+tSt7 <s< r :s2zT< s0<$s7uð@ u2T t=S$;Zu;r:s;sȢ   SZst  t2 *Ŋt!s Sػ [QYsu*Ţ $û d S@2j&jK&t"^ٻ"2SC;t ;t\2û à>uλ$t $ $t 4\$bYt t] $u<s$uDS$tS t M uruRȇ2RM uu==sM t ttöR贾Zu7:s:r:su}K<sؼ:rC:t$r"]P:rXr2àJ:rh à >s%:rW) 'rË ;uSǢr*[鬻2%:sK:ÿG<tC< Q߉+ډË+SPttrXYJà  KC4̉ӻ t;uÜs̝rً"ى"õ $t,Kut  yC$u *Ţ Ţ t uӹA;s  sÊ< s < t yuCC t ËCIA;uËsð4Ⱥx:s Q:YuVtX<u$Ȁ>rHt5Q+tӠ船|tY>t QYuà uHt=< u t طB;u%< r:s QN \YAn>uQ4 Y;r tQR[Y tж ;s tn rR|Ӡ ;$ tË;rà 蔷2;BsV z u u*Ŋ uQY $ T   Q YˠTȵz tX:rCK*4v" u!Ӌ uÉz2 Ƣ û$*s2Ȼ$*$%û$Ȼ*:r͊ɠ u2:t^T*s2TTȠ:s;sC2%Ӌ t%|r% tRf [Z+R uIRlr} u?RӋQRX薵Z[T0L uBsP諶 tËL<sr2vmt<rM>>LsC2MA"E< u< t!$_+ʋ<v+S+ًˋr s ,Y>v>Lrrg.U t@ArÀ>S_ut>Lys2e V<t< tB/ xBNOSU+VCrtûs"Q2[C<t$_rK SR (.* Z[jC2Su ;uO<sùu QS[YZuAٺ;rÇӋPpFsu ;t묇uKr$;rÉ$y :s^tsZO@[IP)   xM Ŋ蠺*sPX $ÊŢ :s:r;ur :rw r yû :s$$sà uâ û :u~:t:smh t 4 qu6 : uP  u:s3t͠ Ż:s$<s $tC%Ȣ  t %:$<s $tC3T;u>{sٿT } rPt c /*rȠ:sÊ/*uP 2Kt QYsX*uP+X$SQ`Yru:u RX u$Z;uٺ;s;uà JuK;s sðXË<t< uKC< rûAC tKË<u à Ȼ- ðQ  yu u& uŢ Yà$:r*u-<t    *rP  Xq  :K'suK'tC ËKCtKCsu Ê uÊ uR Zt ?,uڊG uҊG uËӊG u  uS;[sA AkrËJJ;súoTm   Zr<uúTO Jr͇ uÇӉKC-ruӋK%CuKuCYn MKKU 謽su^ suC$t (C< t< t<ut2ËsuËÊtKu< u< ûT:rZz?uu s sCSnJCH[;sFCS C;HZrR,Z+ڊ÷s؊PN FLTPÊ߉PRQt Yt   8OuO}tu  u WsKr։F+ىFN+ىN>uWHF;s CFKv[JË< u tK< u KatË;sCNPNӊ;Çӻt/B C CFӋL+ډS+ډZD F>NKuJ r|QArsQ[ tdъ SQ tzLr YQjugYYSТS tQ+يQMYu t r *ËC< t;s;sÊ< tCQSӹ[YC<.uȩ[賨?r<" Ȯ t?r<&tDK,2t"%+t %t '+t'xdzû%'2\ 7 t+uy<z uû PS t2[X utS[CS#[à{ t:ʳTu>{sRRBT[Zu3?2û$@ (>9?s?Éû.ȵPQC:rYX KCCYXCCCCCCCCC:û û.K u, CC=ûÊ u, CCC uK NJ;sÇËCCÉCC#+Ë+ÇS߷[+sRѱZË,0 u׋ u׋KQSً^xAZR[YqKQR+ً^YA[mKY2 RBIZZQ CYR KC:t:uZСFaEXzBUJJJIR+RIPrPRReQzQQQ`QPPKKoTTUUR5R%QOOP PTTUL)KIBLFL;LSIlL[L,MUMOLLL MKKUsCCCxCC VEDIT PLUS Ver. 2.32 ,; .@! ;,:'" COMMAND: Y JK I '7E@/% + Z BP!{!!!d %%%& {&~'''v&'&((((+)7))))) (//"6$//"/7"//o""//1$//#;$///$//$/J $$/ %%//$%///$%//%=%Z%/y%%///5/885/895/5/5/5/5/5/99%9195/K95/5/>9i99995/RCH+RCZIPCUrPCDRCRRCLeQBTzQTCQZPQNL`QLTPSUPSDKSRKSLoTPWTNWUPPUNPRPU5RPD%QSTOBSODCPEE PELTDPTDNULUN)KTBILCBLINFLRI;LSISIRElLID[LUD,MFIUMREOCALCTLMTLIT MPRKSMKGMUFPsCESCEXCVMxCRSJRTCHEJJJJJJJJJJJJJJJJJJxCJJJJJJJJsCJJJJJJJJJJJJJJJJJJJCJJJJJJJJJJJJJ JJCJJTLJC,MKRLUJ PLJO MIUMKJJTUUJ+RJJJJJJJTLJC,MKRLUJ PLJO MIUMKJJTUUJ+RJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJeQTrPRIPzQQO)KQ;LPJ%Q[LlLPSIRKULoTR5RKPJJJJJOVNO#z&&O CFSx|}K.!!h!$<=>>=6>6<>6=7<=7<7$$$$R$NO DIRECTORY SPACNO DISK SPACCLOSE ERROREAD ERRONEW FIL[CR] DIRECTORY DIRECTORY NOT FOUND: FILE NOT FOUND: -<<BAKUNABLE TO RELEASE MEMORY SEGMENT. CLOSE FILES (EY/EZ) AND REBOO " " INVALID COMMAN " " UNKNOWN INTERNAL VALU " " INVALID DELIMITER FOR JP COMMAN INVALID EDIT BUFFER OPERATIO JUMPING INTO A FLOW CONTROL STRUCTURE END OF MACRO REACHED, STRUCTURE STILL OPEN END OF MACRO REACHED, STRING STILL OPENMACRO ERROR IN NESTING ERRO*BREAKLABEL TERMINATOR "!" MISSINLABEL MISSING: !UNABLE TO HONOR VISUAL-MODE TRACE REQUEST AT THIS POIN EO/YI processing will be terminated on visual mode exit. ENTER VISUAL MODE (Y/N)? QUIT (Y/N)? INSERT NEW DISK AND TYPE [RETURN] END OF BUFFER REACHEDOK TO ERASE THESE FILES (Y/N)? OK TO OVERWRITE EXISTING FILE (Y/N)? REV FILE OPENO INPUT FILNO OUTPUT FILCANNOT OPEN TWNO MEMORY TO AUTO-BUFFEBAD FILE NAMFILE IS R/O - OUTPUT FILE NOT OPENEPRINTING TO ABORT DIRECTORY SPECIFICATION TOO LONINVALID DRIVNOT FOUND IN HELP FILNOT ASSOCIATED WITH A VISUAL FUNCTIOType any key to continue "EX" to Exit, "EQ" to Quit, "V" to Edit, "H" or "EH" for Help VPHELP.HLP VPEHELP.HLP VVHELP.HLP BAD PARAMETEE.T. PHONE HOMEDITING BUFFER SAVING -[]|_ - Ҡ۫ݠڠҠҠĿŠȿŠ٠Π쩿 ԠĺӠ젯婿ŠԠҠ@L ONd: d:\ d:\VEDIT\  Copyright (C) 1985 CompuView Products, Inc. Welcome to VEDIT PLUSCopyright (C) 1980,1981,1982,1983,1984,1985 by Theodore Green10/06/85VEDIT.INI   .LINE: COL: FILE: R# !)19AIQYaiqy#;LINE: COL: FILE: R# !)19AIQYaiqy#;MZ0# 3& &Q&6PGNj= N|oFuvPP'Y + ø%GNj;"|awPYFt FFPuXFPuX66sPP둡FGNj;"|&6Ps PF@@PsFuFø4%Fãv#Yø%v 6&+6&(Y@PYPFX6&FP(ø$v YPFFXuø$>t6m PøFFFF=|FP PP6"P6$ P FFHPYFwPYFFP(Y@PYPFXFPFP'sPF@@PF@@PF@@F1 FPv PHPPP8F~t P P9uF=tFFFF=|vve^ÉF vY^ÉF FFFF=|vv^ÉFpFFF=|F^ÉFvv?F=t^ÉFvtYF^ÉFvvPvvCA P PusPF@@PF@@PYø`"wPYFFPFF@@XFFF=s|ܸPFuXH PYP6&t PkY6&%Y@PYPFX6&FP%>u Px PKux PYP6"P6$ P FFHP YF PYFP P P PusPF@@PF@@P0vYF~u""F@$ø!>t6m PnøP6"P6$ P, FFHP^YFFP< P3U PS PBtÃ""FFFFFFHPF[;|FFFuFՋF;tuFuPFuXF;tF$ø >t FáPFP#FF=|PFuXFÃ~tFP6] 6m PøFuFF~u:FPFP #F=FFFuFFF뽃~tFP6] 6m PÃ~t%FPuXFPuXFPFuXFPFuXFøPP P.E6JYPr Y>98~2,& PY=s.ڸ P PtøKFFFF= |FDP PqXPF*%uP P] F PNYPF*%uP P* F~uPF*[ÈFF*P P P Pu_FPFFXPPPF*P P PFFXPPPF*PP_ PFXøFF F~uFF FFFFF=|PF^ÓXܸFF,P9P F ؀?ufnPEP uPPPF *%PuP FF=t=F F *%uPPu F* FF F FPFF^ÓXF*%FFFFF*PF[;r6PPPF F *PP PFF^ÓX벊F*=r4PPPF F *PP PFF^ÓXPYFFFF=|vF^Ó= |F^ÓPPlEF^Ó=|F^ÓPP>F^ÓP P$xPY0PP" uFF FFFF=|F^ÓPF F XøLFQP8P t6{FPRPFP6&Y6WPoPY&PFPFtFPP>6_YPYv6q6"Pv(vPFGFuF;"|F铋PBY@^ÉFvPvPvvPoFGFuF;"|vF铋PԡF FuF~uvPsPF@@Pv6PP6& FvvP6&GF=t6YvYP6{6{Y6{6m 6mFPø<F؀?uv FFP_v PPøFPPcF~tP6"P6$P FPYY PP~t-FHP'YFPvv=P P mFFFF=rFP P ֡F~u+P YPvFFPFuF̸P YPPøFFFF=|FPP1 øFFFF=| P Yø~ u-F= |P P{ F PvP øKF;FuFPF PF PFPPFXS[Pe YF؃?uFuPFXF ؃?uF uPF Xfø>t6mP øFFFP Y"+FF=(}FPF[ÉFFGNjFFP[;|FuFދFFFFFFPvFPFPFPFP FFFF:PD YPFPnF=EtÍFPRYF;F~ F;"(~tFFFFtF$PFHPYPvøLFFF @@F~ urF PvP FFFF=|FPFPFPvN׍FPFPFPP6FFFF=\|FPFPFPvøF *= r*F *PPPF XS[dF *=r*F *PPPF XS['F *PPxPF XS[F F…teF P[+ÉFFFFF;F|P PދF,PPPF XPYPF XS[øVF P&X6& P&@*F^ÉFP&FXF=t PFXøFFFF;Fr&F*PPYP&FXѡ&@@PvøvP~uv vv Pv vv Pvv FF;F s F;FwS6P~uv6v Pv6v P~vv F뗋FøFPcYFFP0[;~F=9~ FN ÊFPA[;~F=F~ FN øøF =u F =tFPYFF@@PPFFFF;F|FFPPָ!PYF @@FPFFP#P_LFF=}FPF[;$F=uFP,P  F뿋F =u F =tF=tF FøsFFFFFuFF;F|Fø:SP6m t6mVPiøPY&66& P66&uk66&6&d Y"66&6&K Yø|PYPYF= u긚PYøqFPFP~tFÃ~ t FP YÍFPYFF^HFF= t FFF=HuF=htFFFFFPFPF=tËF^ÉFFF^;uFø PFP2~tÍFP Yøo FFF FF~t?vvPPFPFFFFvYtPPlPP[FFvYFu>FFFFF;F|FF=YtFwFveYtceFvKYtF:=uf=Hu+=Nu=Yu =hu=nu=yuFø FFFF;F |F FPFFXø ~FFFF;F }9F FFF~uvjY=uFËPGX븋Føu ~W?Y=t4#Ë PXS [=t= t=t؋ø) ~EP[;ryE%uøPXS#[}tWYE PEPEP =$tPXS [ËEƉEǓ%ø F PvUPøt FF Pv PsøV 6v^øB ~F N FFƋ;FsvGPV=uڋF ø Pvø ~v = uV P=uVWø ~ EP[;rF%PWËFPǓX%ø =^s ǃ PYøa ~}u<E%u PW1EP= Y ËE%uEPYEø ~E%uÊE%u>EP[+VEPEP ;tPXS [EËF =uPXS#[EÃ}tW*YE =uPF PEPK =uF ËEE PE[ÉEPXS [F PǓX%ø tWv vøv xYDžt v WU u׋EPv =uËPF XPF XF øp}u =^rEEø>~EP YuE EøPYFtE PXS [FEøZ~v FFuwF=%taF FhF FFFF=-tFFFF=0t0FFFF=*tF F FFF9F FFFo@%uF FFЋF=.teFF=*tF F FFF9F FFFo@%uF FFЋF=lt$FF^SF F W[W9F=dt^SF F [W^SF F +[WFhPP^WRP F ^W |1hP P^W RPF-PFFXhP P^WRPYFhP P^WRPFhPP^WRPhFh^WFP=YF\^WFFF FPgFX,=ct=du=ou=st=uud=xu{뼍h+FFF;FFF~uFF;F vYFFFF؀?uF;F|FFPY΃~tFF;F PYvYxøR~ vǙRP^WY[f^PNƓX^SǙ[S_[W u‹ø~ v^W|u^W%F^S^W[WRP^WY[F^PNƓX^S[S_x[WVW^WRP ø[~= t= uGF=-u FG =+uGǸo@%uƹ PG[ԃ~uø~EHFWUYv -Yu ;tF ;FvFF PVWøF@Ft D NjEEP[;tHEP[;u7EP[;u E@@EPǓXS[E@@E뭋;FrR;Fu ED1FǣDEP@@X+FPXFƣEË;u-PY=uøEP YøgF|uáE;w EP[;vEP[;r;w EP[;r̋EDƉEǣÇ&[WVUӋ]^_[. .;t.'.gu.&+݁v+شJ!űՋ(+A+,+&%=ttt* +ǎP&>Wt*G>>-XXL!..&ø~F @P&YPXF = t= uG=ujPFFXPY=uPPPPeYGNj؀?u = t= uPGX y66׃PYø1vYU^D!r t t+@]+]øv PvøF % =F %u܋_!s+ôB܊GWO_!sôA܋W!s+ËWVW!_s+Ëܺ܋WVW+Owʬ_^GËܹ܋OVWwu +_^ør@HVWwu_^GËW++H_ËܜVWwO;trONtONtt_^ËWG>P Yu_Ë܋G;s;s ;r+Ë+_Ë܊G* is selected then all changes made to the terminal entry are ignored. N\r !3Cursor LeadinChars between X and YCursor Lead OutAddoffClear ScreenEOSEOLInsert LineDelete LineForward ScrollReverse ScrollBegin Reverse VideoEnd Reverse VideoEnable Status LineDisable Status LineEnter Visual ModeExit Visual ModeZr-lZ CURSOR ADDRESSING : Addoff is a 3 byte sequence which controls CRT cursor addressing. For each byte of the sequence the user should respond appropriately to the displayed message. BYTE ONE : This byte specifies terminal communication conventions. If the low bit is set then the terminal will look for the column number followed by the row number; the opposite if the bit is not set. The high bit indicates whether the addresses will be sent in ASCII (high bit set), or Binary (high bit 0). If both bits are set then Byte ONE = 81 Hex. %s %s loading: %s  #5Ocn  2 H ] ~ 21 Modification Options: 0. EXIT to Main Menu1. Cursor Leadin2. Chars between X and Y3. Cursor Lead Out4. Addoff5. Clear Screen6. EOS7. EOL8. Insert Line9. Delete Line10. Forward Scroll11. Reverse Scroll12. Begin R everse Video13. End Reverse Video14. Enable Status Line15. Disable Status Line16. Enter Visual Mode17. Exit Visual Mode18. Modify ENTIRE Terminal entry Enter Option Number Sorry, <%s> is Empty %s Number of terminal to be modified? Termimal Entry: (%d) %s OK to Exit without update? (Yes) Is this CRT terminal entry complete? (No) Enter new CRT name (up to 30 characters) Initialize new entry from existing terminal? (Yes) Enter terminal number? OK to initialize using <%s> ? (Yes) Sorry, <%s> is Empty Enter number of terminal to be deleted OK to delete <%s> ? (Yes) _ already contains an entry for <%s>%s<%s> <%s>%s<%s> ( J l 8 INTMOD : Modification Options 0. EXIT Program without update1. DISPLAY terminal entries2. ADD a new terminal entry3. DELETE existing terminal entry4. MODIFY existing terminal entry5. PRINT ONE or ALL entries Enter option number Invalid entry Finished with modifications? (No)  ; P R f 4 BYTE ONE - Bit 0 :0. Send Row first then Column1. Send Column first then Row Enter Option Number4 BYTE ONE - Bit 7 :0. Send Address in Binary1. Send Address in ASCII Enter Option Number %s Byte ONE being set to: %xH Is Byte ONE correct? (Yes) Enter First coordinate offset: Enter Second coordinate offset: <* %s *> Are you using this sequence? (Yes) (No) Number of characters used? Are you using a computer to emulate a terminal? (Yes) (No) Next value? Time delay? Inserting : %x 0%xH %xH Is this sequence correct? (Yes) OK to save changes? .$$$ Total memory usage at this point is %u bytesw Error opening <%s> %d Total string length: %d%d.bak/Rs4 PRINT OPTIONS :0. Print a single entry1. Print ALL terminal entries Option number? *************************** *  * * CRT Terminals * * * *************************** Enter number of terminal entry to be printed: prnw%s CON:w+Z4w INTMOD : CRT Table Modification Program  The file, INSTALL.INI contains tables of Escape sequences for various CRT Terminals. These sequences are used by the program INSTALL to customize your editor, VEDIT to run on a particular machine. INTMOD allows the user to work interactively with the file INSTALL.INI. New terminal entries can be added, while existing entries can be modified, deleted, displayed, printed. %s %d) %-30s Sorry, <%s> is Empty Supported CRT Terminals: Enter desired number, to continue, or to Exit this menu Terminal Entry: (%d) %s %x0%xH%xH%s , Please enter a number between and %s [%x-%x] (%x) [%u-%u] (%u) %s%x%s%x: %u%s%u: %s %s %s (%s) Please enter a number from 0 to %d: r+Unable to open <%s>Bad format check Press to continue  Enter YES or NO in response to the question. In response to the question, enter YES, NO, or press RETURN. Pressing RETURN will leave the CURRENT value which is shown in parentheses. g Please enter YES or NO: Please enter YES, NO, or press RETURN: %s%s%s%s rr+ww+a a+ xx+ 0123456789abcdef 00000 @@@@@@@@@@@@@@@ @@@@@@@ @@@@@ @@@@ (C'Too many args. BASIC COMMANDS TEXT REGISTER COMMANDS A Append file to text R* Comment line B Begin of text RC Chain to macro register C Change edit position RD Dump text register D Delete characters RG Get line into text register F Find string RI Insert into text register G Get text register RL Load register from file H Help RM Match register/edit buffer I Insert text RP Print text register K Kill text RS Save register to file L Line change RT Type text register M Macro execution RU Display size of registers N Next string RX Load and execute register P Put into text register S Search and Replace NUMERIC REGISTER COMMANDS T Type text XA Add to numeric register U Unused, used memory XG Get & evaluate expression V Visual mode XK Get keystroke W Write text XS Set numeric register Z End of text  XT Type numeric register Type for next screen or enter letter(s) for desired command:  EXTENDED COMMANDS EV VEDIT version number EA Edit again EW Open write file EB Edit with backup EX Finish edit session, exit EC Change disks EY Finish edit session, remain ED Display disk directory EZ Quit edit session, remain EE Enter edit buffer EF Finish (close file) JUMP COMMANDS EG Get external text JL Exit loop EH Query extra help file JM Exit macro (return) EI Insert special character JN Start next iteration EJ Set (jump) edit pointer JO Abort to Command Mode prompt EK Erase (kill) file JP Jump to specified label EL Display enumerated lines EM Match text at edit pointer MISCELLANEOUS COMMANDS EN Need room, squeeze buffer YD Dump ASCII char to console EO Print (output) text YF Format paragraph EP Edit parameters  YI Insert console text EQ Quit edit session, leave YP Print (list) console text ER Open read file  YR Type "read" file name ES Edit switches YS Strip high bits from text line ET Set tab positions  YT Type text on console EU Use another drive/directory YW Type the "write" file name Type for next screen or enter letter(s) for desired command:  KEYBOARD CONTROL GENERIC/INDIRECT Literal Character  | Search pattern code BREAK out of command |R Variable filename specifier   #n Num. Reg. 'n' has buffer name Terminate string/command ESC ESC Begin processing commands Begin processing commands COMMAND MODIFIERS HELP AIDS _ Global file operations ?? Display last executed commands @ Explicit text delimiter ? Enter trace mode : Suppress search errors : Suppress [CR][LF] - Backwards, opp., diminished + Augmented command (e.g. +RL) NUMERIC SPECIFIERS MISCELLANEOUS # Maximum number 65535 ; Shorthand for ".erJL" " ASCII constant specifier , Separates second parameter ^ Control character specifier ! Label/comment delimiter Q Numeric register . Internal read-only value Type for next screen or enter letter(s) for desired command:  NUMERIC OPERATORS LOGICAL OPERATORS + Addition & AND - Subtraction  ^ OR * Multiplication ~ NOT / Division % Remainder of division & Bitwise AND ^ Bitwise OR ' Bitwise complement RELATIONAL OPERATORS OPERATOR PRECEDENCE < Less than ' Complement  <= Less than or equal to * / % Mult., Div., Remainder = Equal to + - Addition, subtraction <> Not equal to < > = etc. Relationals >= Greater than or equal to ~ NOT > Greater than & AND (Bitwise & Logical) ^  OR (Bitwise & Logical) Enter letter(s) for desired command or to command mode:  \EP\ EP Display current values of all parameters. EP n Store value of parameter 'n' in ".rv". EP n k Store value of parameter 'n' in ".rv". Change the value of parameter 'n' to 'k'. The switches are: 1 Cursor type (0 - 3) 2 Cursor blink rate (10 - 100) 3 Indent Increment (1 - 20) 4 Lower case convert (0 - 3) 5 Conditional convert character (32 - 126) 6 Display line and column number (0 - 3) 7 Word Wrap column (0 = Off) (0 - 255)  8 Bit 7 Allowed (1/input 3/Output) (0 - 7) 9 Cursor positioning option (0 - 2) 10 Horizontal scroll margin (40 - 255) 11 Horizontal scroll increment (1 - 100) 12 Automatic execution register (binary) (0 - 35, 255)  \ES\ ES Display current values of all switches. ES n Store value of switch 'n' in ".rv". ES n k Store value of switch 'n' in ".rv". Change the value of switch 'n' to 'k'. The switches are: 1 Expand Tab with spaces (0=NO 1=YES) 2 Auto buffering in visual mode (0=NO 1=YES 2=BACK) 3 Start in visual mode (0=NO 1=YES)  4 Point past text reg. insert (0=NO 1=YES) 5 Ignore UC/LC search distinction (0=NO 1=YES) 6 Clear screen on visual exit (0=NO 1=YES) 7 Reverse Upper and Lower case (0=NO 1=YES) 8 Suppress search errors (0=NO 1=YES)  9 Explicit string terminators (0=NO 1=YES) 10 Global file operations (0=NO 1=YES) 11 Justify paragraphs  (0=NO 1=YES 2=UNJUSTIFY) \A\ nA Append 'n' lines from the input file to the text buffer. 0A Append lines until edit buff er is nearly full. -nA Read 'n' lines back from the output file. -0A Read back lines until the edit buffer is nearly full. \B\ B Move the edit pointer to the beginning of the text buffer. _B Moves to the beginning of the file. \C\ mC Move the edit pointer by 'm' characters. \D\ mD Delete 'm' characters from the text. p,qD Delete characters from buffer offset 'p' upto but not including the character at buffer offset 'q'. The edit pointer is set to the character following the deleted characters. Equivalent to 'p,qK'. 0,1D Delete the first character in the edit buffer. The edit pointer is now at the beginning of the edit buffer. \E\ E First letter of extended two letter commands. \F\ nFstring Search for the 'n'th  occurrence of 'string' in the current edit buffer and position the edit pointer after it. 'string' may be up to 32 characters long. -nFstring Perform the search in the reverse direction. The edit pointer is left at the beginning of 'string'. m:Fstring Change processing of the event of not finding 'm' occurrences of 'string' when ES(8) = 0 (normal) such that the current iteration loop is terminated and the error flag is set to one. m_Fstring Search for the 'm'th occurrence of 'string' and perform auto-disk buffering to read more of the file from disk if necessary. The edit pointer is positioned after/before the last 'string' found in forward/reverse searching. (If auto-disk buffering is performed but there are no more occurrences of 'string', the edit pointer is left at the buffer beginning for forward searches and at the buffer end for reverse searches). \G\ Gr Insert text register 'r' at the edit pointer. \H\ H On-line help for Command Mode commands using the help file "VPHELP.HLP". Displays menus which provide an index to a particular description. H text Immediately search help file for "\text\" and display H text following message upto next "\" encountered in column one. See also 'EH'. \I\ Itext Insert 'text' into the edit buffer at the edit pointer. The edit pointer is moved past 'text'. -Itext Overwrite existing characters with 'text'. \J\ J First letter of two letter macro execution 'jump' commands. \K\ mK Kill 'm' lines. 0K Delete characters from beginning of line upto edit position. 0KK Kill current line. p,qK Delete characters from buffer offset 'p' upto but not including the character at buffer offset 'q'. The edit pointer is set to the character following the deleted characters. 0,1K Delete the first character in the edit buffer. The edit pointer is now at the beginning of the edit buffer. Other double parameter commands: 'P' and 'T'. \L\ mL Move the edit pointer by 'm' lines and leave at the beginning of 0L that line. Thus '0L' moves to the start of the current line. m_L Move, performing automatic disk buffering if needed. :L Change the processing of the error of trying to move past an edit buffer boundary when ES switch 8 is zero (normal) such that the current iteration loop is terminated and the error flag (.er) is set to one. See 'ES' switch #8 for additional information on error processing. \M\ Mr Execute text reg ister 'r' as a command macro. When finished, whether by performing all the commands in the register or by encountering the instruction 'JM', continue processing the commands following the 'Mr' command. See also 'RCr' and 'RXr'. \N\ mNstring Search for the 'm'th occurrence of 'string' and perform auto-disk buffering to read more of the file from disk if necessary. The edit pointer is positioned after/ahead of the last 'string' found for forward/reverse searches. Same as 'm_Fstring'. (If auto-disk buffering is performed but there are no more occurrences of 'string', the edit pointer is left at the buffer beginning for forward searches and at the buffer end for reverse searches). Applicable parameters: '@', '_', '-'. See 'F' command and 'ES' switch #8. \P\ mPr Put 'm' lines of text into text register 'r'. mP+r Append text to any existing contents in 'r'. 0Pr Empty text register 'r'. p,qPr Put characters from buffer offset 'p' upto but not including the character at buffer offset 'q' into text register 'r'. The edit point is set to buffer offset 'p'. 0,1Pr Put the first character in the edit buffer into text register 'r'. .p,.p+1P+r Append the character at the edit pointer to text register 'r'. Other 2-parameter commands: 'T', 'K'. \Q\ Qr References the value in numeric register 'r'. Not a command! \R\ R First letter of two letter commands pertaining to text registers. \S\ nSsstext Search for the next occurrence of 'ss', and if found, change to 'text'; perform 'n' times. n_@:S/ss/text/ Change the next 'n' occurrences of 'ss' to 'text', performing auto-disk buffering if needed. Change processing of the event of not encountering 'n' occurrences of 'ss' when ES switch = 0 (normal) such that the current iteration loop is terminated and the error flag (.er) is set to one. See 'ES' switch #8 for error handling options. \T\ mT Type 'm' text lines from the current edit buffer on the console. The edit pointer is not moved. m_T Type lines, performing auto-buffering if needed. p,qT Type the characters from buffer offset 'q' upto but not including the character at buffer offset 'q' on the console. The edit pointer is positioned to buffer position 'p'. Other 2-parameter commands: 'P', 'K'. \U\ U Display # of free bytes in current segment / # bytes in current edit buffer / total # bytes in the other edit buffers and text registers in current segment. Except when editing the main '@' edit buffer, precede the above with the current edit buffer's name. \V\ V Go into visual mode setting cursor position from current edit pointer. \W\ nW Write 'n' lines to the disk from the beginning of the edit buffer and delete them from the buffer. 0W Write out the edit buffer up to the current line. -nW Write last 'n' lines in the edit buffer to the ".$R$" file. This makes more memory space free. -0W Write the current line and the rest of the edit buffer to the ".$R$" file. \Z\ Z Move the edit pointer past the last character in the edit buffer. _Z Move the edit pointer to the end of the file. \EA\ EA Saves the file being edit ed on disk and allows further editing to continue. Maintains edit position. \EB\ EB file Open the file 'file' for both Read and Write and read the EB file input file. If the file does not exist, "NEW FILE" is displayed. EB file1 file2 Open 'file1' for reading and 'file2' for writing; then perform '0A' on 'file1'. \EC\ EC Allow user to change disks. Used for write error recovery, or just to edit files on other disks. \ED\ ED Displays disk directory with files listed in columns of four. Drive specification, "?" and "*" wildcard characters, subdirectory pathnames and user numbers may be used. A header specifying the drive and subdirectory name/user number precedes the listing. mED Display the list of filenames in 'm' columns. If 'm' is negative, omit the header. -ED Display filename from current drive & subdirectory without any header with only one file listed per line. \EE\ EEr Enter text register 'r' for editing, converting 'r' into an edit buffer if not one already. Before leaving the current buffer to enter another buffer in the same memory segment, make room for the new edit buffer by writing out text from the current buffer. EE#r Change to the buffer specified by the ASCII value contained in numeric register 'r'. -EEr Do not perform auto-buffering on current edit buffer before changing to text register 'r'. See also: "EN". \EF\ EF Simply close the current output file without writing out any text. Text not yet written to the output file remains available for further editing. \EG\ EG file[line range] Insert the line range of the file 'file' into the text buffer at the edit pointer. If no line range is specified, the entire file is inserted. \EH\ EH On-line help for Command Mode topics using the help file "VPEHELP.HLP". EH text Immediately search help file for "\text\" and display following message upto next "\" encountered in column one. \EI\ nEI Insert the character with decimal value 'n' into the text buffer at the edit pointer. The value "26" is not allowed. Values of 128 to 254 are allowed. \EJ\ nEJ Cause the edit pointer to jump to the 'n'th position in the edit buffer. The command 0EJ moves to the beginning of the buffer. \EK\ EK fspec Erase (kill) the file(s) specified by 'fspec' from the disk. This makes more space free on the disk. Drive specification, "?" and "*" wildcard characters, subdirectory pathnames and user numbers may be used. All files named by 'fspec' are displayed and you are asked whether these files should actually be erased. Answer 'y' if so. -EK fspec Erase the specified files, omitting the directory display and verification prompt. EK fspec Y Same as '-EK fspec'. \EL\ ELfile[line range] Display with line numbers the line range of the file 'file'. Same syntax as EG command. \EM\ nEMss Check 'ss' for match with text at edit pointer; move edit pointer if match. Report results in ".rv", ".n" and ".er". Do this 'n' times. String 'ss' may be upto 31 characters long. If each element of 'ss' is matched by the edit text, then .er=0, .rv=0, and .n=# edit characters matched. Otherwise, .er=1; .  n is unchanged; and .rv has the value 1 if 'ss' is lexically less than the edit text, 2 if it is greater, and 3 if the mismatch occurred while trying to match a pattern element from 'ss'. As with the 'f' command, '.er' is not set to one when 'n' is '#' and at least one occurrence of 'ss' is matched. #@EM/|A/ One way to move the edit pointer past the end of a word. @EM/|W/ Spans white space. See also: "RM". \EN\ nEN Make 'n' bytes of memory space free, if possible. 0EN Make customized "spare memory" free. EN Squeeze edit buffer down to customized "page" size. \EO\ mEO Print (on line printer) the next 'm' lines. "0EO" prints from the beginning of the text buffer to the current line. \EQ\ EQ Quit (abort) the edit session; any text changes are lost. Leaves disk files exactly as before the session started. If there are any more edit buffers, move to one of them; otherwise, return to the operating system. EQY Skip the confirmation prompt. EQA Quit all edit buffers without saving changes. \ER\ ER file Open the file 'file' for input. Gives error if file does not exist. \ET\ ET n1,n2,n3 ... Set new tab positions. The ET is followed by up to 30 decimal numbers specifying the tab positions. ET n If ET is followed by just one 'n', tabs are set to every 'n' positions. \EU\ EU d:subdir Log into specified drive and/or subdirectory. EU du: Log into specified drive and/or user number (CP/M). EU Display current drive/subdirectory. \EV\ EV Print the VEDIT PLUS version number. \EW\ EW file Open the file 'file' for output. Any existing file by that name will be renamed to have the file extension ".BAK" following an "EA", "EF", "EX" or "EY" command. Gives an error if an output file is already open. \EX\ EX Exit edit buffer after saving entire file being edited on disk. If there are any other edit buffers, move to one of them; otherwise, return to the operating system. Gives error if no output file  is open. EXA Exit all edit buffers, saving edit changes wherever an output file is open. \EY\ EY Saves the entire file being edited on disk and remains in the current edit buffer. You can edit another file by using the "EB" command. \EZ\ EZ Quit (abort) the edit session; any text changes are lost. Leaves disk files exactly as before the session started. Remains in current edit buffer. EZY Skip the confirmation prompt. \JL\ \JM\ \JN\ \JO\ \JP\ cJL If 'c' is TRUE, exit the current REPEAT-UNTIL loop. cJM If 'c' is TRUE, exit the currently executing macro. cJN If 'c' is TRUE, start next iteration of current loop. cJO If 'c' is TRUE, abort and return to Command Mode prompt (or to a "locked-in" macro register (see EP 12)). cJPlabel If 'c' is TRUE, jump to !label!. \RC\ RCr Chain to macro register 'r' without placing a return pointer onto the macro execution stack. If there are no other return pointers to this macro on the stack and no further references to the macro, then the current macro register may be cleared. This command makes it possible for an executing macro to edit itself by inserting the edit commands into another register and then chaining to it. The commands i! n that register would then open the first macro for editing; do the editing; then make the main edit buffer '@' the current edit buffer and chain back to the first macro register. Reentry into various parts of this first macro could be accomplished by a conditional branch on the value contained in a selected numerical register. \RD\ RDr Dump the contents of text register 'r' onto the console. Control characters are not expanded. \RG\ RGrtext Prompt for console input with 'text'. Get keyboard input line including terminating carriage return - line feed or and save in text register 'r'.  RG+r Append input line to contents of text register 'r'. :RGr Remove terminating carriage return - line feed or from the input line. \RI\ RIrtext Insert 'text' into text register 'r'. RI+r Append 'text' to any existing contents of register 'r'. \RL\ RLr file Load text register 'r' from file 'file'. RL+r Append 'file' to contents of text register 'r'. +RLr Perform extended search for 'file'. \RM\ RMr Check contents of text register 'r' for match with text at edit pointer. Move the edit pointers for as long as the match continues. Return # characters matched in ".n" and the match result in '.rv': {0,1,2} for {match, 'r' lexically lesser, 'r' lexically greater}. This is a character by character comparison. ES switch 5 controls whether or not upper/lower case distinction is to be ignored. See also: 'EM'. \RP\ RPr Print contents of register 'r' on line printer. \RS\ RSr file Save contents of register 'r' in file 'file'. -RSr file Omit verification query when 'file' already exists. \RT\ RTr Type contents of register 'r' on console. Control characters are expanded, is represented as "$". An encountered "stop character" causes a pause - type any character to continue. \RU\ RU After displaying memory usage as in the 'U' command, display the size of each text register. Asterisks indicate edit buffers. \RX\ RXr execfile Load file 'execfile' into register 'r' and then execute register 'r' as a command macro. Perform extended search for 'execfile'. Equivalent to "+RLr execfile$ Mr". \R*\ R* Treat all following characters up to RETURN as a comment. \XA\ nXAr Add 'n' to numeric register 'r'. -nXAr Subtract 'n' from numeric register 'r'. \XG\ XGrtext Prompt for console input with 'text'. Store evaluated keyboard input in numerical register 'r'. \XK\ XKrtext Prompt for console input with 'text'. Store next keyboard character in numerical register 'r'. \XS\ nXSr Set numeric register 'r' to 'n'. \XT\ XTr Type numeric register 'r' in decimal. :XTr This will suppress the after the number. \YD\ nYD Dump character with ASCII value 'n' to the console. n:YD Suppress the after the character. .bYD Display the one-character name of the current edit buffer. ^mYD Send to the console. \YF\ nYF Format the paragraph the edit pointer is in. Use 'n' as the left margin. If no 'n' is specified, use Visual Mode indent position as the left margin. Use word wrap column as right margin. Justify if justification switch is set. After formatting, po" sition the edit pointer to the beginning of the next paragraph. \YI\ YI Re-route console output until next command prompt to text buffer at edit pointer and update edit pointer. (May work very slowly) -YI Disable "YI", allowing output to go back to the console. \YL\ \YP\ YP Re-route console output until next command prompt to the printer. -YP Disable "YP", allowing output to go back to the console. Note: YP is disabled by "EO" command. \YR\ YR Type the input (read) file name on the console. :YR This will suppress the following the file name. \YS\ mYS Strip the 8th bit from all characters in the specified line range. \YT\ YTtext Type 'text' on the console. \YW\ YW Type the output (write) file name on the console. :YW This will suppress the following the file name. \|\ SEARCH PATTERN MATCHING CODES |A Match any alphabetic letter, upper or lower case |B Match a blank - single space or tab |C Match any control character |D Match any numeric digit - "0" - "9" |F Match any alphanumeric - a letter or a digit |L Match end of line: CR and/or LF, Form feed, unterminated line at EOF |M Multi - match any sequence of zero or more characters |N Match any character except following character or pattern |Pr Access contents of text register 'r' as pattern set |Rr Access contents of text register 'r' as search string |S Match any separator - not a letter or digit |T Match selected separators (terminators) |U Match any upper case letter |V Match any lower case letter |W Match white space - single or multiple spaces or tabs |X Match any character |Y Match multiple characters until the next pattern matches || Use "||" when you need to search for "|" \\ Literal character. Next character, usually a control character, is taken literally and not interpreted. Allows searching and inserting of control characters including line editing characters and . may be inserted via but not searched for -  the search routines interpret it as the end of the string. To search for an use explicit delimiters. \\ BREAK character. Will stop an iteration macro or command macro before next command is executed. \_\ _ Immediately precedes "F" or "S" to cause a global search/replace to the end of the file, instead of just the end of the text buffer. "_F" is equivalent to "N". Precedes "B", "L", "T" or "Z" to cause a global operation. \@\ @ Precedes "F", "N", "S", "I", "JP", "EM", "RI" or "YT" to indicate that explicit terminating characters are being used. E.g. @F/string/ @I'string' @JP.label. \:\ : Precedes "F", "N" or "S" to indicate that search error messages are to be suppressed. (See also switch ES 8). Similarly, precedes the "L" command to suppress error messages encountered when trying to move past a buffer boundary. Precedes "XT", "YD", "YR" and "YW" to suppress being sent to the console. Analogously, precedes "RG" to prevent or being included in the string being input into the designated text register. \_\ _ Precedes the "F" and "S" commands to perform search to end of file. Precedes "B", "L", "T", "Z", and "RM" commands to indicate #  global operation on entire file. Used with the "EM" command, it allows a match at the end of the buffer to continue. \;\ ; Shorthand for ".erJL". Used with "ES 8 2" following the "F", "S" and "L" commands. Does not clear the error flag ".er" as "JL" would do. \#\ # Represents maximum positive number 65535. Signifies "forever" or "all occurrences of". \.\ INTERNAL VALUES .b Current edit buffer number in ASCII character form .c ASCII value of character at the edit pointer .ef End of input file reached or input file not yet opened .er Error flag. Set by "F", "L", "S" and "EM" commands .f Number of free memory bytes .m Currently executing text register in ASCII character form .n Number of characters matched by F, S, EM, RM .of Output file open .p Edit pointer's offset in edit buffer .rm Absolute value of the remainder from last division .rv Value returned by commands RM, EM, ES, and EP .uR Number of bytes in register 'R' .v Numerical value of expression at edit pointer .vm Visual mode "1 END" marker .we Write error flag. Set by last write operation .x Horizontal column position for character at edit pointer .y Line-number in the file for line the edit pointer is on \  [HOME] ESC - H [ZEND] ESC - Z [CURSOR UP] [CTRL-E] [CURSOR DOWN] [CTRL-C] [CURSOR RIGHT] [CTRL-D] [CURSOR LEFT] [CTRL-S] [BACK TAB] [CTRL-A] [TAB CURSOR] [CTRL-F] [ZIP] [CTRL-G] [NEXT LINE] [CTRL-J] [LINE TOGGLE] NOT USED [SCROLL UP] [CTRL-Q] [SCROLL DOWN] [CTRL-Z] [SCROLL RIGHT] [CTRL-Y] [SCROLL LEFT] [CTRL-T] [PREVIOUS WORD] [CTRL-V] [NEXT WORD] [CTRL-B] [PREVIOUS PARAGRAPH] ESC - W [NEXT PARAGRAPH] ESC - X [PAGE UP] [CTRL-W] [PAGE DOWN] [CTRL-X] [SCREEN TOGGLE] [CTRL-N] [BACKSPACE] [CTRL-H] [DELETE] [DEL] [ERASE TO END OF LINE] [CTRL-L] [ERASE LINE] ESC - L [DEL PREVIOUS WORD] ESC - V  [DEL NEXT WORD] ESC - B [UNDO] [CTRL-U] [TAB CHARACTER] [CTRL-I] [NEXT CHAR LITERAL] ESC - Q [SET INSERT MODE] NOT USED  [RESET INSERT MODE] NOT USED [SWITCH INSERT MODE] [CTRL-K] [REPEAT] [CTRL-R] [INDENT] [CTRL-P] [UNDENT] [CTRL-O] [FIND] ESC - F [REPLACE] ESC - R [CANCEL] ESC - O Type control sequence for desired function or RETURN for next screen:  \RT\ [COPY TO TEXT REGISTER] ESC - C [MOVE TO TEXT REGISTER] ESC - M [INSERT TEXT REGISTER] ESC - I [PRINT TEXT] ESC - P [SET TEXT MARKER] ESC - S [GOTO TEXT MARKER] ESC - G [FORMAT PARAGRAPH] ESC - J [VISUAL ESCAPE] ESC - ESC [VISUAL EXIT] ESC - E [MACRO] ESC - / [RESTART EDITOR] ESC - [CTRL-R] [HELP] ESC - ? Type control sequence for desired function or RETURN for next screen:  \RT\ {1END} 1 END Status line message {TEXT} TEXT Status line message {FULL} FULL Status line message {INS} INSERT Status line message {FIND} FIND Status line prompt {REPL} REPLACE Status line prompt {WRAP} Setting word wrap column (right margin) {MARG} Setting left margin {FORM} Formatting paragraphs {PR} Printing text {HZ} Hor$ izontal scrolling {IC} Inserting control characters {CONV} Lower / upper case conversion {EMPTY} Emptying a text register (free more memory space) {EXIT} Exit from Visual Mode to Command Mode Type the word between "{" and "}" for help on above topics:  \CH\ [HOME] Move the cursor to the very first character in the edit buffer. \CZ\ [ZEND] Move the cursor past the very last character in the edit buffer. \CU\ [CURSOR UP] Move the cursor up one line, to the same horizontal position if possible. If the position is in the middle of a tab, move to the end of the tab. If there is no line, don't move. \CD\ [CURSOR DOWN] Move the cursor down one line, to the same horizontal position if possible. If there is no line don't move. \CR\ [CURSOR RIGHT] Move the cursor to the next character in the text. If currently at end of line, move to beginning of next line. If there is no line, don't move. \CL\ [CURSOR LEFT] Move the cursor to the previous character in the text. If currently at beginning of line, move to end of previous line. If there is no line, don't move. \BT\ [BACK TAB] Move the cursor to the first position in the current screen line. If cursor is already at the first position, move to beginning of previous screen line. \TC\ [TAB CURSOR] Move the cursor to the character at the next tab position. If cursor is at the end of a line, don't move. Note that this only moves the cursor, use the [TAB] function to insert a Tab character. \ZP\ [ZIP] Move the cursor to the end of the current text line. If it already is at the end of a line, move to the end of the next text line. \NL\ [NEXT LINE] Move the cursor to the beginning of next text line. \LT\ [LINE TOGGLE] Is a combination of [ZIP] and [BACK TAB]. First moves the cursor to the end of the text line. If it already is at the end of a line, it moves to the beginning of the screen line. \SU\ [SCROLL UP] Similar to [CURSOR UP], except that the cursor remains on the same screen line and the screen moves down  instead. \SD\ [SCROLL DOWN] Similar to [CURSOR DOWN], except that the cursor remains on the same screen line and the screen moves up instead. \SR\ [SCROLL RIGHT] Move the screen window right in order to view long lines going off the right side of the screen. \SL\ [SCROLL LEFT] Move the screen window left in order to view the beginning part of long lines. \PW\ [PREVIOUS WORD] Move the cursor to the first character of the current word, or if already there, to the beginning of the previous word. \NW\ [NEXT WORD] Move the cursor to the first character of next word. \PP\ [PREVIOUS PARA] Move the cursor to be beginning of the current paragraph, or if already there, to the beginning of the previous paragraph. \NP\ [NEXT PARA] Move the cursor to the beginning of next paragraph. \PU\ [PAGE UP] This scrolls the screen to give a similar effect to typing [CURSOR UP] for 3/4 screen lines. \PD\ [PAGE DOWN] This scrolls the screen to give a similar effect to typing [CURSOR DOWN] for 3/4 screen lines. \ST\ [SCREEN TOGGLE] Move the cursor fi% rst to the last allowed screen line, or if already there, to the first allowed screen line. \BS\ [BACKSPACE] Move the cursor left and delete the character at that position. \DC\ [DELETE] Delete the character at the cursor position. The  cursor doesn't move. A lone or will also be deleted, but a pair will both be deleted as one.  \EE\ [ERASE TO END OF LINE] Delete all characters from the cursor position to the end of the text line but not the final pair unless the text line only consists of the , in which case the is deleted. \EL\ [ERASE LINE] Delete the entire text line. Use of [BACK TAB] [EREOL] is actually preferable, since the latter does not close up the screen line and frequently allows the [UNDO] to restore the original line. \DP\ [DEL PREVIOUS WORD] Delete the previous word and any following spaces if the cursor is at the beginning of a word. Otherwise delete only that portion to the left of the cursor. \DN\ [DEL NEXT WORD] Delete the entire word and any following spaces if the cursor is at the beginning of a word. Otherwise delete that portion of the word at and to the right of the cursor. \UD\ [UNDO] Rewrite the screen and ignore the changes made to the text line the cursor is on. \TB\ [TAB CHARACTER] Enter character into text which also positions cursor at next tab position. Alternately, if "ES 1 1" switch is set, enter spaces to the next tab position. \LC\ [NEXT CHAR LITERAL] The next character, whether a displayable character, a control character, or a character with its high order bit set, will be placed into the edit buffer. \IN\ [SET INSERT MODE] Change the mode to INSERT if not already there. \RI\ [RESET INS MODE] Change the mode to NORMAL if not already there. \SI\ [SWITCH INS MODE] Switch the Insert / Normal mode to the opposite. \RE\ [REPEAT] The next text character or edit function is repeated. This is either a multiple of 4 or a number typed in. Press [CANCEL] to abort. \ID\ [INDENT] Increase the "Indent Position" by the amount of the "Indent Increment". VEDIT will then automatically pad with tabs and spaces to the Indent position following each RETURN. The padding will also take place on the current line if the cursor is before any text on the line. \UD\ [UNDENT] Decrease the "Indent Position" by the amount of the "Indent Increment", until it is zero. One [UNDENT] therefore effectively cancels one [INDENT]. \FI\ [FIND] Performs a search operation. Prompts for the search string, which may be up to 30 characters long and ends in RETURN. Use to search for RETURN. Press [FIND] again to search for the next occurrence. Pressing RETURN immediately following the "FIND"  prompt gives the search options prompt: OPTIONS (Begin / Global / Reuse) Select one or more options by typing the corresponding letters "B", "G" and/or "R" followed by a RETURN. Begin Starts search from beginning of edit buffer Global Causes search/replace to operate to the end of the file, performing disk buffering if necessary. Also causes "Beg& in" option to start search from beginning of the file. Reuse Causes the previous search and replace strings to be reused. \RP\ [REPLACE] Performs a selective replace. Prompts for string to be replaced, then prompts for replacement string. Searches for the next occurrence of the string, and if found gives the prompt: REPLACE (Y / N / REST / CANCEL)? Select one option by typing the corresponding letter "Y", "N", "R" or "C". Y Make the replacement. N Do not make the replacement. R Make the replacement and replace all other occurrences without prompting. C Do not make the replacement and cancel function. Press [REPLACE] again to replace the next occurrence. Use [REPEAT] nn [REPLACE] to replace up to "nn" occurrences with prompting. \CA\ [CANCEL] [FIND] and [REPLACE] reuse the previous strings until  they are canceled with [CANCEL] or the search string is not found. [CANCEL] will also abort any function taking place because of a [REPEAT] and will cancel any function prompting on the status line for a text register/marker number. \CT\ [COPY TO TEXT REG] The first time this key is hit, the position of the cursor is (invisibly) marked, and the message "1 END" is displayed on the status line. When the key is hit while "1 END" is set, the status line prompts for a  digit "0 - 9" indicating the text register to be used. The text block between the marked position and the current cursor position is copied to the text register. Optionally, preceding the digit with a "+" to indicates that the text is to be appended to any text already in the register. Assuming there is enough memory space for this "copy", the message "TEXT" is displayed on the status line in place of the "1 END". Hitting this key twice at the same cursor position  will empty the specified text register. Note that either the beginning or the end of the text block may be set first. \MT\ [MOVE TO TEXT REG] This is similar to [COPY TO TEXT REG], except that the text block is deleted from the edit buffer after it is moved to the text register. \IT\ [INSERT TEXT REG] Prompts for a digit "0 - 9" indicating which text register is to be inserted at the current cursor position. The register itself is not changed. The cursor will be moved past the inserted text if this option is selected with the command switch "ES 4". \PR\ [PRINT TEXT] This is activated similar to the [COPY TO TEXT REG], only no digit needs to be typed. The block of text is then printed. A will abort the printing. \SM\ [SET TEXT MARKER] Prompts for a digit "0 - 9". Sets an invisible text marker which will automatically adjust as text is inserted and deleted. \GM\ [GOTO TEXT MARKER] Prompts for a digit "0 - 9". Moves the cursor to the position of the specified text marker. If the marker has not been set or has been reset, moves the cursor home. \FP\ [FORMAT PARAGRAPH] Formats the paragraph that the cursor is in so that all of the text appears between a left and right margin. The left margin is the current Indent Position, and the right margin is the current ' Word Wrap column. Following the format, the cursor will be positioned at the beginning of the next paragraph. Print formatter commands will not be formatted. The paragraph will also be justified if this option is selected with the command switch "ES 11 1". \ES\ [VISUAL ESCAPE] This is identical to the [VISUAL EXIT], except that any current command execution is aborted. \EX\ [VISUAL EXIT] Visual Mode is exited to Command Mode. The current cursor position in the edit buffer will become the Command Mode edit pointer position. Depending upon the value of the "Clear screen on visual exit" switch, the command prompt will appear either on a clear screen or just below the status line. \VM\ [MACRO] Executes a command macro. Prompts for a digit "0 - 9" indicating which text register contains the macro to be executed.  \RS\ [RESTART] The entire file being edited is saved on disk (including any unappended portion of the input file).  A new edit session is then started on the same file. The edit position and text markers are all restored. \HE\ [HELP] You are successfully using the HELP function. In addition to help with the edit functions, the last help menu screen includes a menu of common Visual Mode topics. Help is available in the Command Mode with the "H" and "EH" commands.  \1END\ 1 END Appears when you have marked one end of the text with the [PRINT], [MOVE] or [COPY] functions. If you forget where the text is marked, type [GOTO] + RETURN to move the cursor to the marked position. Type it again to restore cursor position. \TEXT\ TEXT Indicates there there is text in at least one text register. \FULL\ FULL Appears when memory is full, or following a [COPY], [MOVE] or [INSERT] function if there was insufficient memory to perform it. \INS\ INSERT Indicates that you are in Insert Mode. Any typed text will be inserted and not overwrite the existing text. \FIND\ FIND This message is the prompt to enter the text string to be searched for the [FIND] or [REPLACE] functions. The text string may be up to 30 characters long and is followed with a RETURN. Use to search for a RETURN. If you  immediately type a RETURN you will be prompted for the search options. See help for [FIND] for more information. \REPL\ REPLACE This message is the prompt to enter the replacement string for the [REPLACE] function. The replacement string may be up to 30 characters long and is followed with a RETURN. Use to enter a RETURN. Abort by pressing [CANCEL]. \WRAP\ To enable word wrap, the word wrap column (the right margin for paragraphs) must be set in Command Mode with the command "EP 7 nn" where 'nn' is the desired column. \MARG\ Set the indentation (the left margin for paragraphs) with the [INDENT] and [UNDENT] keys. This changes the margin by an "increment", typically 4. Change the "increment" in Command Mode with the command "EP 3 nn" where 'nn' is the new increment. \FORM\ [FORMAT PARAGRAPH] will format (or re-format) a paragraph between the current left margin (set with [INDENT] and [UNDENT]) and the current word wrap column (set with the comman( d parameter "EP 7 nn"). Optionally the paragraph will be right justified if this is selected with the command switch "ES 11 1". \PR\ Print text in Visual Mode by first positioning the cursor to the beginning of the text to be printed and pressing [PRINT]. Then position the cursor PAST the end of the text to be printed (generally the beginning of the next line) and press [PRINT] again. Text should now print. Type to abort the printing. It is usually easier to print the entire document in Command Mode with the command "B #EO". \HZ\ The screen may be scrolled horizontally by pressing [SCROLL RIGHT] and [SCROLL LEFT]. The status line indicates which column the left edge of the screen is set to. The maximum line length with horizontal scrolling is set with the command parameter "EP 10 nnn". Lines longer than this margin are wrapped to the next screen line. The horizontal scrolling works in "increments", typically 20 columns. Change the scrolling increment with the  command parameter "EP 11 nn". \IC\ Control characters may be inserted into the text by first pressing [NEXT CHAR LITERAL] and then typing the desired control character such as , , etc. Control characters in the text are often needed to control printer functions such as font changes, underlining and overstrike. The Command Mode "EI" command can also be used to insert control characters. If you use a sequence of control characters over and over again, you may want to store it in a text register and then insert the text register when needed. \CONV\ Several options are available for converting lower case letters to upper case. They are control with the command parameter "EP 4 n". EP 4 0 No conversion is made EP 4 1 All lower case letters are converted to upper case EP 4 2 Only lower case letters to the left of the "conditional conversion character", typically ";" are converted to upper case. Useful for assembly language programming. EP 4 3 To the left of the "conditional conversion character", lower case letters are converted to upper case and upper case letters are converted to lower case. The "conditional conversion character" may be changed with the command parameter "EP 5 nn". \EXIT\ You can exit from Visual Mode to Command Mode with the functions [VISUAL EXIT] or [VISUAL ESCAPE]. In most cases there will is no difference and you can press either function. However, if a command macro or an iteration loop is executing, [VISUAL EXIT] will exit and leave the macro or loop executing, while [VISUAL ESCAPE] will abort any macro or iteration loop. \EMPTY\ It is best to empty a text register when its contents are no longer needed. This frees up more memory space too. In Visual Mode press [MOVE TO TEXT REGISTER] twice in succession. It does not matter where the cursor is. When prompted, type a digit "0 - 9" to specify which register to empty. Registers can also be emptied in Command Mode. The command to empty register 9 is "0P9", to empty register 5 is "0P5", etc. \\ )  {EXIT} Save text and exit VEDIT {SAVE} Save text and continue editing {QUIT} Quit - DO NOT save any edit changes {DIR} Display disk directory {NEW} Begin editing a new file {LOOK} Look at another file with line numbers {GET} Get (insert) a line range of another file {MEMORY} Make more memory space free {RECOVER} Recover from disk full errors More help on common editing tasks in available in Visual Mode using the [HELP] function. After [HELP] press RETURN several times until you see the menu of help topics. Type the word between "{" and "}" for help on above topics:  \EXIT\ When you are done editing your file and want to exit VEDIT, give the command: EX Save the file on disk and exit VEDIT. You will then be back  to the operating system. \QUIT\ Sometimes you will want to quit the editing and NOT SAVE any edit changes. This may be because you were only examining the file and want to return to the operating system as quickly as possible. Or perhaps you made a big editing mistake (like erasing the entire text) and want to "forget" these unwanted changes and start over. The command is: EQ Quit VEDIT and DO NOT SAVE any edit changes. You are prompted for confirmation. The "EQ" command quits the "edit session" and does not save any edit changes just made to the file from the time you began editing it or since the last "EA" command. Any changes made before the "EA" command are saved however. If you want to quit the edit session, but remain in VEDIT use the "EZ" command. This has the same effect as "EQ", but you will remain in VEDIT. \SAVE\ You should make it a habit to regularly save your text on disk during a long edit session. This way you won't lose all of your work in case of a power or hardware failure or a major editing mistake on your part. You can save your text on disk and continue editing from either Visual or Command Mode. In Visual Mode, press the [RESTART] function key. The message "PLEASE WAIT FOR DISK" will appear. When it is erased you can continue editing. In Command Mode give the command "EA" (followed by RETURN). When the  "COMMAND:" prompt appears you can continue editing. \DIR\ The Command Mode "ED" command is similar to the MS-DOS or CP/M "DIR" commands which display a directory of all the files on disk. Examples: ED Display the directory of the logged-in drive. ED B: Display the directory of all files on drive B. ED A:*.ASM Display the directory of all files with extension ".ASM" on drive A. \NEW\ It is not necessary to exit VEDIT and invoke it again in order to edit another file after you finish editing the current file. First enter Command Mode. Then give the following series of commands: EY This saves the current file on disk in the same way that the EX command does. The difference is that you remain in VEDIT. EB newfile.txt The "EB" command is followed by the name of the file you now want to edit. This can be a file which already exists, or a file you want to create. V Assuming you want to edit the file in Visual Mode, give the "V" command. \LOOK\  It is often desirable to look at all or a portion of another file. The command to look at another file is "EL" and is simila* r to the MS-DOS or CP/M "TYPE" command. However, "EL" also displays line numbers so that you can subsequently insert a line range of another file into the file you are editing. You can look at all or a portion of another file: EL myfile.txt Type out the file "myfile.txt" starting with line number one. EL myfile.txt[n,m] Type out the file "myfile.txt" starting with line number 'n' and ending with line number 'm'. This lets you zero in on the desired lines without typing out the entire file. Example: EL VHELP.HLP[35,60] Type out lines 35 through 60 of one of the help files. \GET\ It is often desirable to insert a portion of another file into the file you are editing. This inserted portion might be a paragraph you previously wrote or a programmers subroutine. The command is "EG myfile[n,m]" where 'myfile' is the file containing the text to be inserted, 'n' is the number of the first line to insert and 'm' is the number of the last line. Use the "EL" command to type a file with line numbers if you don't yet know which lines you want to insert. Example: EG VHELP.HLP[35,60] Insert lines 35 through 60 of the file VHELP.HLP into the file being edited at the edit pointer (cursor) position. EG VHELP.HLP Insert the entire file VHELP.HLP into the file being edited. \MERGE\ It is quite easy to merge two files together, i.e. append one file to the end of the file being edited. First position the cursor to the end of the file being edited. Then give the commands to append another file: _Z Position edit pointer (cursor) to end of file being edited. ER part2 Append the file "part2" to the current file. V Enter Visual Mode so that you can edit the file you just appended.  This is only one way of merging files. You can also merge two files together into a third and new file, or insert ane file into the middle of another file. The text registers can also be used for more complex merging tasks. See "Merging files" in the Manual index for more information. \SPLIT\ A large file can be split into two or more smaller files. For example, you  want to split "BIGFILE" into "PART1" and "PART2", without changing "BIGFILE". Since you must invoke VEDIT properly to do this, you may have to exit VEDIT first (use EX command). First invoke VEDIT without any file names and give the following commands: VEDIT Invoke VEDIT without any file names. ER BIGFILE Setup to read "BIGFILE" into memory. EW PART1 "PART1" is the first part to be written. V Go into Visual Mode and position the cursor on the first character for the file "PART2" (i.e. position the cursor just past the end of "PART1"). 0W EF Save the first part of the text on disk in the file  "PART1". In detail "0W" writes the text to disk and "EF" closes the output file. EW PART2 "PART2" is the second part to be written. EX Exit VEDIT, saving the rest of the text in the file "PART2". \MEMORY\ When using the text registers extensively, you may run out of memory space for performing the desired operations. This is indicated by a "FULL" message in Visual Mode or a "*BREAK*" in Command Mode. First try and empty any text registers which are no longer needed. If th+ is does not give you enough space, you can write some of the text in memory back to disk. It is easiest to write the beginning part of the text out to disk if it has already been edited. First position the cursor past the text which has already been edited and can be written to disk. Then enter Command Mode and give the commands: 0W Write the text up to the cursor position out to disk. More memory space is now available. V Enter Visual Mode to continue editing. Type to continue: If this does not free up enough memory (particularly if you are editing near the beginning of the file) you can also save the end of the text on disk. Position the cursor at the text which does not need to be edited right now and can be saved on disk. Then enter Command Mode and give the commands: -0W Save the text past the cursor position on disk. V Enter Visual Mode to continue editing. \RECOVER\ At times, especially if you are using floppy disks, you will run out of disk space while editing. This is indicated by the errors "NO DISK SPACE" or "NO DIR SPACE". Most often you can simply delete some unused files. First use the "ED" command to display a directory of all files. Then use the "EK" (kill) command to erase one or more files. Often, ".BAK" backup files can be erased. Last re-issue the command, typically "EX" or "EY" which resulted in the error. Example: ED Display directory of all files on current drive. EK *.BAK Erase (kill) all ".BAK" files. This makes more disk space available. EX Issue the "EX" command again to save the file being edited on disk and exit VEDIT. If the "EK" command cannot make enough disk space free, refer to the manual's index under "Disk full error recovery" for more information.  mode, and disable that function in command mode. A common use for this function is on terminals that have a numeric ker* PRINT.EXC - Simple print formatter macro r* r* You can save space by deleting all comment lines with the command: r* [Fr*<ESC> 0KK] r* r* The "b" alows printing to start from the beginning b r* The "yp" reroutes output to the printer r* The "1xs1" sets numeric register 1 used as a page counter to 1 r* First 1 blank line is printed r* yp 1xs1 [@yt/ / r* Then the file name and page number are printed r* @yt/FILE: / :yw @yt/ PAGE/ xt1 r* Next print 2 more blank lines r* @yt/ / r* Now print 58 lines of text r* Note: A "EO" command would not work, since it would disable the "yp" r* 58_t r* The command "58:L" will break out of the iteration if the end of the r* file is reached r* 58:l r* Otherwise print four more blank lines to start a new page r* Increment the page counter r* @yt/ / xa1 r* End the iteration loop r* ] r* Send out a form-feed to the printer r* @yt/ / r* r* Thats the end  SUPPORTING NEW CRT TERMINALS This file explains how to use the supplied program INTMOD to add a new CRT terminal to the menu of supported terminals used by the INSTALL program. INTMOD can also be used to change the table entries,  for an existing terminal. If your CRT terminal is already on the INSTALL menu, it is unlikely that you will need to use INTMOD. To use INTMOD, you will need the following items: 1) A copy of INTMOD.EXE and INSTALL.INI on your default (logged-in) disk drive. (INTMOD.COM for CP/M systems, INTMOD.CMD for CP/M-86). 2) A list of Control or Escape sequences used by your terminal or computer for controlling the display (consult your user's manual). 3)  An ASCII conversion chart. The file INSTALL.INI contains the names and associated tables of Escape sequences  for the supported CRT Terminals. These sequences are used by the program INSTALL to customize VEDIT to run on a particular machine or terminal. INTMOD allows you to work interactively with the file INSTALL.INI. New terminal entries can be added, while existing entries can be modified, deleted, displayed, or printed. The INTMOD program contains on-line help messages which should give the information necessary to effectively use the program. Note that any  changes made (including adding or deleting terminal entries) are not permanent until you exit INTMOD and specify that changes are to be saved. ADDING OR MODIFYING A CRT TABLE ENTRY ------------------------------------- At the operating system prompt, type: INTMOD INTMOD will display a brief description of its operation, followed by the main options menu: INTMOD : Modification Options 0. EXIT Program without update 1. DISPLAY terminal entries 2. ADD a new terminal entry 3. DELETE existing terminal entry 4. MODIFY existing terminal entry 5. PRINT ONE or ALL entries Enter option number (DISPLAY terminal entries) At the prompt, type the number of your selected option. A default selection is displayed in parentheses and can be selected by typing . 0. EXIT Program without update ------------------------------ This option allows you to exit INTMOD at any point without saving changes you have made. Each of the other options allows you to exit and save the changes to disk. 1. DISPLAY terminal entries --------------------------- This option displays an alphabetical list of currently supported terminals. At this point you can type the number corresponding to the terminal entry you wish to work with, or exit back to the main menu. The terminal you select in this option will be the default terminal for all other options. You can select this option to save your changes to disk. 2. ADD a new terminal entry --------------------------- This option allows you to create an all-new terminal entry. INTMOD will prompt you for the name of the new terminal, which can be up to 30 characters long. INTMOD then asks if you would like to initialize the new table from an existing entry. If you answer yes to this prompt, INTMOD asks for the number corresponding to that entry. Assuming the name you entered for the new entry does not already exist, INTMOD creates it and initializes the table to the same values as in the existing entry chosen above, or initial- izes all values to zero if no existing entry was used. If the name for the new table already exists, INTMOD issues an error message. It is usually easier to create a new entry from an existing one, rather that starting completely from scratch.  Try to choose a terminal that is close to the one you ultimately want. Once you have created a new terminal entry, you can proceed to the MODIFY option. Note: INTMOD automatically re-sorts the list of terminals into alphabetical order, so the number corresponding to some entries may change. It is a good idea to DISPLAY the list of terminals again before proceeding. 3. DELETE existing terminal entry --------------------------------- This option allows you to remove an unwanted terminal entry from the menu. INTMOD will prompt for the number of the terminal to be deleted (defaults to terminal chosen in DISPLAY option). Since this option will cause the list of terminals to be re-sorted, the number corresponding to some entries may change. 4. MODIFY existing terminal entry --------------------------------- This option allows you to change one or more of the escape sequences in a specific table. Use this option to 'fine tune' an existing table or a new table ADDed with option 2. After selecting the MODIFY option, you will be prompted with a sub-menu of terminal control functions (see notes below). Enter the number corresponding to the function you wish to modify. You will be asked to enter the hexadecimal values for the characters in the sequence. Typing when asked to enter a new value will keep the original setting. After modifying a table entry, you have the option of making additional changes to the entry, returning to the main menu, or exiting INTMOD. 5. PRINT ONE or ALL entries --------------------------- With this option, you can print the current values in a specific table entry, or optionally, all table entries. NOTES: ------ Below is an example CRT table entry. Each table consists of 16 control sequences of up to 7 bytes, plus cursor addressing information (ADDOFF) of 3 bytes. Each control sequence begins with a count byte of the number of characters in the sequence, followed by those characters, followed by a delay byte (in milliseconds). Most of the functions in the table should be self-explanatory. Those which may not be so obvious are described below. CURSOR ADDRESSING is broken down into three parts: Cursor Leadin, Characters between X and Y, and Cursor Lead Out. These are best described by example. In the table below, the sequence for direct cursor addressing is "ESC [ r ; c H", where 'r' is the row and `c` is the column. In this example, Cursor Leadin is "ESC [", Chars between X and Y is ";", and Cursor Lead Out is  "H". ADDOFF is a three byte sequence that performs several functions related to cursor addressing. Byte one determines whether the row or column value is sent first, and also whether these values are sent in binary or ASCII format. The second and third bytes are the values of any offset that is to be added to the row and column values. Example: Many termi. nals use a one byte binary value for row and column addressing. To avoid sending ASCII control codes, an offset of 20H is added to the row or column position to get the actual value sent to the terminal. ENABLE and DISABLE STATUS LINE are used on terminals that support an optional 25th status line. This can only be used by VEDIT if it can be addressed as a normal line (i.e. reserved status lines are not supported). If this function is supported, VEDIT will use the 25th status line as its own status line. ENTER and EXIT VISUAL MODE can be used to enable a terminal function in visual mode, and disable that function in command mode. A common use for this function is on terminals that have a numeric keypad that can also be used as function keys. In this case, VEDIT would put the keypad in alternate (function key) mode in visual mode, and return it to normal in command mode. Example Terminal Entry: 2,1bH,5bH,0,0,0,0 Cursor Leadin 1,3bH,0,0,0,0,0 Chars between X and Y 1,48H,0,0,0,0,0 Cursor Lead Out 80H,1,1 Addoff 4,1bH,5bH,32H,4aH,10H,0 Clear Screen 4,1bH,5bH,30H,4aH,10H,0 EOS (erase to end of screen) 4,1bH,5bH,30H,4bH,0,0 EOL (erase to end of line) 4,1bH,5bH,31H,4cH,0,0 Insert Line 4,1bH,5bH,31H,4dH,0,0 Delete Line 1,0aH,0,0,0,0,0 Forward Scroll 4,1bH,5bH,31H,4cH,0,0 Reverse Scroll 4,1bH,5bH,37H,6dH,0,0 Begin Reverse Video 4,1bH,5bH,30H,6dH,0,0 End Reverse Video 0,0,0,0,0,0,0 Enable Status Line (not used) 0,0,0,0,0,0,0 Disable Status Line (not used) 0,0,0,0,0,0,0 Enter Visual Mode (not used) 0,0,0,0,0,0,0 Exit Visual Mode (not used) As always, if you find that you need further assistance with INTMOD or any other CompuView program, you can call CompuView's Technical Support to receive expert advice.  Display disk directory {NEW} Begin editing a new file {LOOK} Look at another file with line numbers {GET} Get (insert) a line range of another file {MEMORY} Make more memory space free {RECOVER} Recover from disk full errors More help on common editing tasks in available in Visual Mode using the [HELP] function. After [HELP] press RETURN several times until you see t ADDITIONAL NOTES FOR CRT TERMINALS This file contains additional notes regarding the terminals supported by the INSTALL program. Hazeltine terminal users should note that there are two Hazeltine entries in the menu of terminals. One terminal entry is for Hazeltine and Volker Craig terminals which use the '~' character (code 7E hex) as an escape leadin, and the other is for terminals which use the "ESC" character as a leadin. On Hazeltine terminals you must set the "Auto LF" option switch to the OFF position. This will not affect the terminal's operation, but is necessary for VEDIT to work properly. Following your selection of a terminal from the menu, the customization program asks for up to two "Escape Mode Characters", in case you are using escape sequences from the keyboard. Your terminal may also send escape sequences when you type a function key. For example, the Heath/Zenith H19 sends escape s/ equences beginning with the ESC character. The Televideo 920C sends escape sequences beginning with "CTRL-A". The next two questions are "Enter Common 2nd Character #1 in Escape Sequence" and "Enter Common 2nd Character #2 in Escape Sequence". Simply answer with a if you are not using escape sequences or are typing them in by hand. However, some  terminal's special function keys send 3 letter escape sequences where the second letter is always the same and should be ignored. In this case, answer with this second character. For example, on the H19 using Heath Mode, the PF1 key sends an "ESC ? p", the PF2 key sends an "ESC ? r" and so on. In this case, the "?" is the "Common 2nd Character #1...". Answer RETURN to "Common 2nd Character #2...". On the VT-100, VT-180 and other ANSI standard terminals, the function keys send sequences such as "ESC O A", "ESC O B", "ESC [ H", "ESC [ I", etc, where both the "O" and "[" are common 2nd characters which are to be ignored. Therefore "Common 2nd Character #1..." should be answered with a "O" (capital letter O), and "Common 2nd Character #2..." should be answered with a "[". Some terminals, like the IBM 3101, also send a Carriage Return at the end of escape sequences. The keyboard customization detects this automatically and you need not be concerned with it. While most terminals have 24 lines, some have a 25th "Status Line". On some of these, it is possible for VEDIT to place its status line on the 25th line. To use the 25th line answer the question "Enter Number of Screen Lines" with a "25". Note that the Intertube must be specified as having 25  lines. VEDIT cannot use the status lines on the TELEVIDEO or IBM 3101 terminals. In the CRT version of VEDIT, the right-most column of the screen is not used. This is necessary because many CRT terminals perform a scroll when the last column in the bottom row is written. If loosing this last column is a problem to you, and you are sure that your CRT does not scroll when writing the last screen position, you may customize VEDIT with the screen length value one larger than the true length. Specifically, the H19 may be customized with a "81" for the screen length parameter (customization Task 10.2). If you have a terminal which is not mentioned in the menu, you can add or modify a table entry with the INTMOD program. See the file NEWCRT.DOC for further details on operation of this program. While we have made every effort to support each CRT terminal correctly, it is not feasible for anyone to test all models of every manufacturer. Should you notice any aberrations, such as scrambled lines or lost characters, it is almost certainly due to an incorrect setting on your terminal or an error in the support for your terminal.  Please be sure that any switches pertaining to cursor addressing, editing functions and correct "Escape Sequence Lead In" are enabled. Should you have any suggestions or difficulties, no matter how minor, please contact us. Should you w0 rite, please include your office and home phone numbers. art2 Append the file "part2" to the current file. V Enter Visual Mode so that you can edit the file you just appended.  / EP 12 10+"Y-"A eature which will automatically execute a startup file on disk as a command macro. When VEDIT is invoked, it will search the  default drive, followed by drive 'A', for a file named 'VEDIT.INI'. If this file exists, VEDIT will read it into text register #0, treat the contents of VEDIT.INI as command mode instructions and execute them before the edit session begins. After execution of the contents of VEDIT.INI, VEDIT will proceed with the edit session. It is important to remember that the auto-startup feature is optional. VEDIT will not give an error message if there is no VEDIT.INI file on the disk. If there is a VEDIT.INI file present on the disk, VEDIT will execute its contents EVERY TIME an edit session begins. The auto-startup file, VEDIT.INI, may contain any legal command mode commands, as described in the VEDIT 1.40/1.18 manual. Terminals such as the Ann Arbor Ambassador, VISUAL 200, the TeleVideo 950, etc., can be extensively initialized through the use of VEDIT's auto-startup file. This can be done by creating a VEDIT.INI file similar to the example  below, and having it read into TEXT REGISTER #1 an ASCII file containing programming information for the CRT terminal.  Another common use for the auto-startup is to load the text registers with text or command macros which you commonly  use. VEDIT's operating parameters (word-wrap column, conditional convert character, etc.) can also be setup in the VEDIT.INI file. For example, a simple VEDIT.INI file might be created to program the function keys on a CRT terminal. The Ann Arbor AMBASSADOR terminal may be programmed from the host computer to send custom ASCII codes for each of its special function keys. To program these output codes, an ASCII file must be sent to the terminal which contains the relevant escape sequences and control characters. In the example below, the file A2SETUP contains the neccessary codes for reprogramming the terminal. In order for VEDIT to send this file to the CRT, the following VEDIT.INI file must be created which will be executed by VEDIT at the start of the edit session: RL1 A2SETUP RD1 0P1 When VEDIT finds the supplied VEDIT.INI file, the contents of the file are copied into TEXT REGISTER #0. VEDIT then begins to execute the following commands: RL1 A2SETUP First, VEDIT is instructed to search the diskette for a file called "A2SETUP" and, if found, copy its contents into TEXT REGISTER #1. RD1 Second, VEDIT is instructed to type the contents of TEXT REGISTER #1 to the  screen. The 'RD' command tells VEDIT to NOT expand control characters as it types1  them to the CRT, but to send their actual values. 0P1 Third, VEDIT is instructed to clear the contents of TEXT REGISTER #1. r recovery" for more information. R* Sample .INI file 11/14/85 R* R* The following loads the MENU macro over top itself in Register Z R* and begins executing it. The "EP" statements are for turnkey R* operation to keep the user from using to break out while R* loading takes place. R* @RIY/10000EN R* Make room to load MENU.VDM EP 12 255 R* In case MENU.VDM not found, allow break out R*  now will defeat turnkey operation +RLZ MENU.VDM R* Load MENU.VDM into RZ. Use extended search EP 12 10+"Z-"A -0PYR* Menu Macro presumes it is being executed in Register Z. !START! EP 12 10+"Z-"A ES 8 2 .RVXS14 ES 9 1 .RVXS15 (Q16=0)[ 9[YT/ /] YT/ VEDIT PLUS MENU MACRO Version 2.02 Written by William J. Vollano Jr.  For use with Vedit Plus only / 4[YT/ /] YT/NOTE: Registers "Y" and "Z" are reserved for MENU. / XK8'Press any key to continue...' ] 1XS16 !BEGIN! 10[yt/ /] YT/ VEDIT PLUS - MAIN MENU By William J. Vollano Jr.  You Are Editing Buffer: /.B:YD YT/ File = / :YW .of=0[YT/'NONE'/] YT" 1 = Normal Exit, Saving Your File 2 = Quit - Any Edit Changes Are NOT Saved 3 = Edit a New File (Save Existing File) 4 = Edit Another File (Multiple File Editing) 5 = Directory 6 = Erase Files 7 = Examine / Change Edit Switches 8 = Examine / Change Edit Parameters 9 = Exit Menu to Command Mode 0 = Enter Visual Mode Enter Your Choice (0 - 9) : ? " [xk1// Q1=^M JP/VISUAL/ Q1>="0 & Q1<="9 JL] q1:yd q1="1 JP/SAVE/ q1="2 JP/QUIT/ q1="3 JP/NEW/ q1="4 JP/MULTI/ q1="5 JP/DIR/ q1="6 JP/ERASE/ q1="7 JP/ES/ q1="8 JP/EP/ q1="9 JP/COMMAND/ JP/VISUAL/ !DIR! RGY" Press RETURN for current directory, or enter your choice (i.e. B: / B:*.com / *.com) ? " 15yt/ / YT/ *************************** ** VEDIT PLUS ** ** USER'S DIRECTORY ** *************************** / ED|RY XK8/ Press RETURN to continue.../ JP/BEGIN/ !QUIT! 14[YT/ /] YT/ 1 = Quit this edit session (EQ) 2 = Quit but remain in current buffer (EZ) 3 = QUIT VEDIT discarding changes to all open files (EQA) OR RETURN to Main Menu /  XK8/ ? / q8:yd q8="1[EQY] q8="2[EZY] q8="3[EQA] JP/BEGIN/ !ES! 10[YT/ /] YT/ *************************** ** VEDIT PLUS ** ** EDIT SWITCHES ** *************************** EDIT SWITCH SETTING NUMBER / yt/ 1) Expand Tab with Spaces  /es 1 (.RV>0)[YT/YES/][YT/ NO/] YT/ / yt/ 2) Auto Buffering in Visual Mode /es 2 (.RV=1)[YT/YES/][ 2  (.RV=0)[YT/ NO/][ YT/BIDIRECTIONAL/]] YT/ / yt/ 3) Start in Visual Mode /es 3 (.RV>0)[YT/YES/][YT/ NO/] YT/ / yt/ 4) Point Past Text Reg. Insert /es 4 (.RV>0)[YT/YES/][YT/ NO/] YT/ / yt" 5) Ignore UC/LC Search Distinction "es 5 (.RV>0)[YT/YES/][YT/ NO/] YT/ / yt/ 6) Clear Screen on Visual Exit /es 6 (.RV>0)[YT/YES/][YT/ NO/] YT/ / yt/ 7) Reverse Upper and Lower Case /es 7 (.RV>0)[YT/YES/][YT/ NO/] YT/ / yt/ 8) Suppress Search Errors /(q14>0)[YT/YES/][YT/ NO/] YT/ / yt/ 9) Explicit String Terminators /(q15>0)[YT/YES/][YT/ NO/] YT/ / yt/ 0) Global File Operations /es 10 (.RV>0)[YT/YES/][YT/ NO/] YT/ / yt/ X) Justify Paragraphs /es 11 (.RV=1)[YT/YES/][  (.RV=0)[YT/ NO/][ YT/UNJUSTIFY/]] YT/ Press RETURN for Main Menu or, Press the number of switch to change... ? / [xk8// Q8=^m JP/BEGIN/ q8>="0 & q8<="9 ^ q8="X ^ q8="x JL] q8:yd q8="0 JP/ES10/ q8="2 JP/ES2/  q8="X JP/ES11/ q8="x JP/ES11/ YT/ CHANGE ES NUMBER /Q8:yd YT/ Press "Y"(switch on) or "N"(switch off) : / [xK7// q7=^M JP/ES/ q7&95XS6 q6="Y ^ q6="N JL] q7:yd YT/ / q8="9JP/ERROR/ q8="8JP/ERROR/ q6="Y[ES q8-"0 1 ][ES q8-"0 0 ] JP/ES/ !ERROR! q8="8 [q6="Y [1xs14 ][ 0xs14]] q8="9 [q6="Y [1xs15 ][ 0xs15]] JP/ES/ !ES2! YT/ CHANGE ES NUMBER 2/ YT/ Press "Y" for yes, "N" for no, "B" for bidirectional. Auto buffering in visual mode? / [xK7// q7=^M JP/ES/ q7&95XS6 q6="Y ^ q6="N ^ q6="B JL] q7:yd YT/ / q6="Y[ES 2 1 ][ Q6="N[ES 2 0 ][ ES 2 2 ]] JP/ES/ !ES10! YT/ CHANGE ES NUMBER 10/ YT/ Press "Y"(switch on) or "N"(switch off) : / [xK7// q7=^M JP/ES/ q7&95XS6 q6="Y ^ q6="N JL] q7:yd YT/ / q6="Y[ES 10 1 ][ES 10 0 ] JP/ES/ !ES11! YT/ CHANGE ES NUMBER 11/ YT/ Press "Y" for yes, "N" for no, "U" for unjustify. Justify Paragraphs? / [xK7// q7=^M JP/ES/ q7&95XS6 q6="Y ^ q6="N ^ q6="U JL] q7:yd YT/ / q6="Y[ES 11 1 ][ Q6="N[ES 11 0 ][ ES 11 2 ]] JP/ES/ !EP! 10[YT/ /] YT/ *************************** ** VEDIT PLUS  ** ** EDIT PARAMETERS ** *************************** / yt/EDIT PARAMETER  VALUE NUMBER / yt/ 1) Cursor Type (0,1,or 2) /ep 1 .rv yt/ 2) Cursor Blink Rate (5 - 100) /ep 2 .rv yt/ 3) Indent Increment (1 - 200) /ep 3 .rv yt/  4) Lower Case Convert (0,1,2 or 3) /ep 4 .rv yt/ 5 Conditional Convert Char /ep 5 .rv:YD YT/ / yt/ 6) Display Line and Column Position (0,1,2 or 3) /ep 6 .rv yt/ 7) Word Wrap Column  (0 - 255) /ep 7 .rv yt/ 8) Bit 8 Allowed (0 - 7) /ep 8 .rv yt/ 9) Cursor Position Mode (0 - 2) /ep 9 .rv yt/ 0) Virtual Line Length with Scrolling (40 - 255) /ep 10 .rv yt/ X)3  Horizontal Scrolling Increment (1 - 78) /ep 11 .rv YT/ Press RETURN for Main Menu or Press the number of the parameter you want to change... ? / [xk8// Q8=^m JP/BEGIN/ q8>="0 & q8<="9 ^ q8="X ^ q8="x JL] q8:yd q8="0 JP/EP0/ q8="5 JP/SETEP5/ q8="X JP/EP1/ q8="x JP/EP1/ JP/EPCHANGE/ !SETEP5! YT/ CHANGE EP NUMBER 5  Press new conditional convert char. key : / XK9// q9:yd q9=^M JP/EP/ EP 5 q9 JP/EP/ !EP0! YT/ CHANGE EP NUMBER 10 Enter number followed by RETURN: / xg9// q9:yd .n=0 JP/EP/ ep 10 q9 JP/EP/ !EP1! YT/ CHANGE EP NUMBER 11 Enter number followed by RETURN: / xg9// q9:yd .n=0 JP/EP/ ep 11 q9 JP/EP/ !EPCHANGE! YT/  CHANGE EP NUMBER /Q8:yd YT/ Enter number followed by RETURN: / xg9// YT/ / q9:yd .n=0 JP/EP/  ep q8-"0 q9 JP/EP/ !ERASE! RGY/ Enter name of file to erase or RETURN to Main Menu.../ .Uy<=2 JP/BEGIN/ EK|rY JP/BEGIN/ !NEW! .OF=0 JP/NEW2/ YT/ FILE NAME = /YW YT/ 1 = SAVE FILE AND EDIT ANOTHER 2 = SAVE FILE AND RETURN TO MAIN MENU RETURN FOR MAIN MENU / [XK8// Q8=^M JP/BEGIN/ Q8 ="1 ^ Q8="2 JL] q8:yd q8="1 JP/NEW2A/ q8="2[EY] JP/BEGIN/ !NEW2A! EY RGY/ Enter name of file to edit followed by a RETURN... / eb|rY JP/BEGIN/ !EMPTY! YT/ (No text, Nothing has been saved), Do you want to open a file (Y,N) ? / [XK8// q8=^M JP/BEGIN/ q8&95xs6 q6="Y ^ q6="N JL] q8:yd q6="Y JP/NAME/ JP/BEGIN/ !NAME! RGY/ Enter name of file to edit followed by a RETURN... / eb|ry JP/BEGIN/ !NEW2! .BXS9 .U#9 = 0 JP/EMPTY/ @YT/ *** CAN NOT SAVE CURRENT EDIT SESSION 1 = OPEN FILE AND INSERT TEXT AT BEGINNING 2 = SAVE TEXT AND EDIT ANOTHER RETURN FOR MAIN MENU / [xk8// q8=^M JP/BEGIN/ q8="1 ^ q8="2 JL] q8:yd q8="1[RGY/ Enter name of file to edit followed by a RETURN... / eb|ry] q8="2[RGY/ Enter name of the file to save the text in, followed by a RETURN.../ eb|ry ey RGY/ Enter name of new file to edit followed by a RETURN.../ eb|ry] JP/BEGIN/ !SAVE! 20[@yt/ /] yt/ Press RETURN for Main Menu or a 1 to save file and exit Vedit... ? / [XK8// q8=^M JP/BEGIN/ q8="1 JL] q8:yd q8="1[EX] JP/BEGIN/ !VISUAL! ES 9 q15 ES 8 q14 v @JP/START/ !MULTI! XK24/ Press RETURN for Main Menu or Press the number of the register number to edit... ? / q24=^M JP/BEGIN/ q24&95xs6 q6="Y JP/MERROR/ q6="Z JP/MERROR/ EE#24 YT/ REGISTER: /.B:yd JP/BEGIN/ !MERROR! YT/ SORRY YOU MAY NOT EDIT REGISTERS Y OR Z, THEY ARE IN USE FOR MENU... / JP/MULTI/ !COMMAND! 24[YT/ /] yt/ENTERING COMMAND MODE TYPE "MZ" TO RE-ENTER MENU/ ES 9 q15 ES 8 q14 ep 12 255 JO ! COMPARE.VDM ! ! VEDIT PLUS file comparison macro ! ! Copyright (c) 1985 CompuView Products, Inc. ! ! Written by Thomas C. Burt ! November, 1984 ! ! Last change: September 27, 1985 ! !Compare two text files, excluding4  those with file extension ".BAK". ! !To use: RX0 COMPARE.VDM (or any other appropriate number of your choice) ! !Reuse:  If the registers containing the COMPARE submacros have been left ! undisturbed, this macro may be reused without having to be reloaded. ! Execute the startup macro, MS. (The initially loaded register is ! not needed). ! ! The user will be prompted for the names of the files to be compared. ! If a difference is found, the active file will be displayed with the !  visual mode cursor at the spot of the difference. The user merely ! moves the cursor to a spot where the files again match and presses ! [EXIT VISUAL]. Visual mode operations may be performed on the active ! file. To look at the template file or to abondon the comparison ! early, press [ESCAPE VISUAL]. ! !Internal process: ! ! 1) Submacros are loaded into their registers. ! ! 2) The startup macro S is then invoked (see end of this macro file). ! ! 3) The initially loaded macro is replaced by the command RCS. ! This makes additional memory space available while allowing additional ! file comparisons to be made later by just the "M#" command without ! having to reload COMPARE.VDM from disk. COMPARE can also be ! restarted by the command MS. ! ! 4) Macro S then obtains the names of the files to be compared from the ! user and opens them for editing. If either file has the extension ! ".BAK" the macro prints a warning message and quits. ! ! 5) Macro S invokes macro C to carry on with the file comparison. Macro ! C may be invoked directly by the user later to restart an ! interrupted comparison session (the edit pointer in each file ! should be hand aligned first). ! ! 6) When a discrepancy is discovered, the user is put into the active ! buffer in visual mode with the cursor at the point of discrepancy. ! The user may perform any editing he wishes at this time. After ! adjusting the active cursor to a point where the active and ! template files begin to match again he may press [EXIT VISUAL] ! and the file comparison will resume. He may also press ! [ESCAPE VISUAL] for more options (see 7 just below). ! ! 7) Conditions that would normally cause macro operations to cease are ! trapped into macro X where the user is given the option of stopping ! the file comparison, viewing either the active or the template file, ! or of continuing the file comparison from the current spot. ! ! Buffers/registers used by this macro: ! ! A Active input file name register; name obtained from user. ! B Check for files with extension ".BAK".  ! C Comparison driver macro. May be re-entered. ! D Actually does the file comparison. ! E Restores evnironment parameters and exits to command mode ! F Re-alignment macro. Finds user specified line from active file ! in the template file. ! K Echo any visible character in Q0. ! M "Match" buffer. Macro F stores user specified synchronization ! line in M. ! P Buffer used for the template or "pattern" file. ! Q Queries user for options when comparison macro terminates. ! R Reports results of the file comparison. ! S Setup macro. ! T Template input file name register; name obtained from user. ! ! W Wipes out buffer5 s & registers employed by this macro. ! X Traps [Escape Visual] and other macro-abort conditions. ! ! Numerical variables used by this macro: ! ! Q0 Commonly used, especially for interactive 1-key input ! Q1-Q4 Locally used variables ! Q5 Contains name of original startup buffer for this macro ! Q6 Line number in active buffer of current discrepancy ! Q7 Line number in active buffer where user adjusted the cursor ! Q8,Q9 Line numbers in template buffer, local to Macro F. ! Q10 Flag implying files are still the same if <> 0. ! Q15 Save user-configured Upper/Lower case distinction. ! This macro distinguishes between upper and lower case. ! Q18 Save user-configured unsuccessful-search error handling code ! !************ Check for available registers ***************************** ! (.U@>0)[ !Text in main edit buffer? If so, give message. @YT" Please dispose of text in main edit buffer before using VEDIT's file comparison macro. Also check that buffers A,B,C,D,E,F, K,M, P,Q,R,S,T, V, W & X are empty. " RU JO !then show buffer usage and exit to command mode ] !If any other needed buffers are in use,... (.UA>0^.UB>0^.UC>0^.UD>0^.UE>0^.UF>0^.UK>0^.UM>0^.UP>0^.UQ>0^.UR>0^.US>0^.UT>0^.UV>0^.UW>0^.UX>0)[ ^MYD @YT"VEDIT'S file comparison macro uses buffers A,B,C,D,E,F, K,M," ^MYD @YT"P,Q,R,S,T, V, W & X, not all of which are currently empty."  ^MYD RU ^MYD @YT"Alright to erase needed buffers?" ^MYD @XK/(Press "Y" if so, any other key if no): / MK ^MYD ((Q0&95)<>"Y)[ ^MYD @YT"Please dispose of needed buffers before using this macro." ^MYD JO  ] (.UA>0)[-EEA @EQY] (.UB>0)[-EEB @EQY] (.UC>0)[-EEC @EQY] (.UD>0)[-EED @EQY] (.UE>0)[-EEE @EQY] (.UF>0)[-EEF @EQY] (.UK>0)[-EEK @EQY] (.UM>0)[-EEM @EQY] (.UP>0)[-EEP @EQY] (.UQ>0)[-EEQ @EQY] (.UR>0)[-EER @EQY] (.US>0)[-EES @EQY] (.UT>0)[-EET @EQY] (.UV>0)[-EEV @EQY] (.UW>0)[-EEW @EQY] (.UX>0)[-EEX @EQY] ] ! !************ Loading remaining subroutines ***************************************** ! @YT"Loading register macros ..." R****************** Macro B ***************************************** R* R* Macro B checks for files with extension ".BAK". R* If such a filename is found in the current edit buffer, a warning message R* is printed out and COMPARE is aborted. @RIB\ B [@:F/.BAK/; @YT' Unable to compare files with extension ".BAK". Please return to the operating system and rename or copy this file to one having some other extension. ' JO] \ !End of Macro B R****************** Macro C **************************************** R* R* Macro C performs the actual file comparison and reports the results. R* Re-enterable. The user may start up an abandoned comparison by hand R* aligning the edit pointers of the active and template files (in buffers R* '@' and 'P') and then issuing the command MC. @RIC\ ! !Set parameters for this macro, saving values for restoring when done. ! ES 5,0 .RVXS15 !Don't consider upper & lower case the same. ES 8,2 .RVXS !Just set error flag on unsuccesful search EP 12,"X-"A+10 !Have Macro X trap all macro escape attempts ! MD !Do the comparison. MR6  !Report results. RCQ !Query user for termination option. \ !End of Macro C R****************** Macro D **************************************** R* R* Macro D does the actual file comparison. R* On entry, upto 100 lines of text are in the template (pattern) buffer P. R* A full auto buffered read has been done on the main viewing file. @RID\ @YT" Comparing ... " [ !LOOP until break out. -EE@ !Ensure the main buffer is selected. _RMP !Compare pattern buffer P with main edit buffer. (.C=^Z)&(.EF)JM !End of main buffer implies process done. EEP !Otherwise check for end of pattern buffer. (.C=^Z)&(.EF)JM !Also done if at end of pattern file. (.C=^Z)[ 0W 100A !If just at end of pattern buffer, replenish ^m:YD .y-1: JN] !buffer and continue the file comparison. !SHOW MISMATCH 0XS10 !Clear files-match flag. -EE@ !Reselect main edit buffer. .yXS6 !Save current line number MV !Show point of discrepancy to user in visual mode. .yXS7 !Save user adjusted line number MF !Re-align pattern file (cursor at start of !re-alignment string). !(F aborts with error message if not successful.) ] !Repeat \ !END Macro D R****************** Macro E ***************************************** R* R* Macro E restores startup VEDIT parameters at end of file comparison R* @RIE\ ES 5 Q15 !Restore Upper/Lower case distinction ES 8 Q18 !Restore error-handling code EP 12 255 !Allow command mode to be entered \ !End of Macro E R****************** Macro F ***************************************** R* R* RG-F realigns the template file with the active file. R* R* 1) A realignment string is created in buffer M (match) from the 24 R* characters following the current edit position in the main buffer. R* 2) The template/pattern buffer P is made the current edit buffer. R* 3) If the user had moved the active cursor back towards the beginning of R* the active file, then the template cursor is likewise backed up. R* 4) The template text is buffered out/in such that no more than 24 lines R* remain before the cursor position, and at least 60 lines follow it. R* 6) A search is made for an occurrence of the realignment string. R* 7) When the realignment string is matched, the template cursor is R* reset to the start of the matching string and control is returned. R* 8) If there is no match, various recovery attempts are made. R* 9) If there is still no match, a message is printed and the comparison R* is aborted. (Error trapped by Macro X). @RIF\ (.EF & .C=^Z) @JP.EOT. !Just in case 0XS2 !Want to go through the following code at most !ALIGN! !1-1/2 times. Use Q2 for control. ! ! 1) -EEM @EQY !Convert M into empty text register -EE@ .p,.p+24_Pm !Put 24 chars from main buffer into M -EEM B #@:S/||/||/ !Replicate each wild card char in M ! 2) -EEP !Activate template/pattern buffer P ! 3) (Q724)[0W]  !Write out excess processed text Z ((.y-Q9)<60)[60-(.y-Q9)A] !Arbitrarily want at least 60 additional lines -(.y-Q9)_:L Q47 _C !Restore position ! 5) !Align pattern file by finding M in P. [@:F'|RM'; !Search on Reg-M. On success ! 6) -.nC JM] !back up to start of string and exit. ! 7) !Unsuccessful Z 100A !Go to end of buffer and read more text (.c=^z) @JP.EOT. !If no more text, print message & quit -24C [@:F'|RM'; -.nC JM] !Else back up 1 pattern length and retry. ! ! Still unsuccessful. One time only, allow user to reposition Active File cursor. ! XA2 (Q2=1)[ @YT' Unable to re-align template file. Please select another position. Press any key to continue. ' -(.y-Q9)_:L Q4C !Move template cursor back to original spot @XK0"" -EE@ MV @JP_ALIGN_ ] !End (Q2=1) ! ! That didn't work either. Ask whether alright to start global search. ! @XK0' Still unable to re-align files. Alright to start searching to the end of the template file? (Press "Y" if so, any other key if no): ' MK ((Q0 & 95)<>"Y) JO !8.0) B [_@:F/|RM/; -.nC JM] ! ! Unalignable. ! !EOT!  !Premature end of template file R* 8) @YT" End of template file reached. Unable to align template file with active file. " JO \ !End of Macro F R****************** Macro K ***************************************** R* R* Macro K echos the character in Q0 if it is visible. @RIK\ ( 31" [ ("0 files same. RCC !Execute the actual file comparison macros \ !End of Macro S R****************** Macro V ******************************************** R* R* Macro V tries to avoid problems with cursor positioning when entering R* visual mode. If there is less than 24 lines to the end of the buffer, R* 24 lines are appended. This should eliminate auto buffering. @RIV\ .pXS16 .yXS17 z (.y-Q17<24)[24A] Q16_EJ V \ R****************** Macro W ******************************************* R* R* Macro W wipes out the file buffers and text registers used by COMPARE. @RIW/ -EEA @EQY -EEB @EQY -EEC @EQY -EED @EQY -EEE @EQY -EEF @EQY -EEK @EQY -EEM @EQY -EEP @EQY -EEQ @EQY -EER @EQY -EES @EQY -EET @EQY -EEV @EQY -EEX @EQY 0P#5 -0PW / !END Macro W R****************** Macro X ***************************************** R* R* Macro X traps macro escape/abort occurrences. Offers options to the user. @RIX\ @YT" File comparison interrupted. Please select one of the following options: 1) Examine template file 3) Resume, no realignment 2) Examine active file 4) Realign template & resume 5) Stop. Get termination options menu Enter Option: " [@XK0"" (Q0="1)[-EEP MV RCC] (Q0="2)[-EE@ MV .yXS7 MF RCC] (Q0="3)[ RCC] (Q0="4)[ MF RCC] (Q0="5)[ RCQ] ] \ !End of Macro X R************* End of sub macros section ********************************* R* .MXS5 !Find out where COMPARE is running from RCS !Do setup, then perform file comparison !END OF FILE COMPARISON MACRO @``````?`@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@R* R* VEDIT SORT MACRO R* R* Written by Thomas C. Burt R* December, 1984 R* R* Updated October 8, 1985 R* R* To run this macro: RX0 SORT.VDM R* R* Enter the name of the file to be sorted when prompted. R* The file is sorted one record at a time into edit buffer S. R* R* To re-run: MG R* R* This macro loads its self-conained submacros into their proper registers R* then jumps to the main driver macro G for execution. R* R****************** Macro B ***************************************** R* R* Macro B does a binary search from the current position back towards the R* beginning of the sort buffer S. When the proper position is located for R* the current input record that record is inserted. R* @RIB\ (Q2+Q1)/2_EJ MU (.p=q1)[RCW] RCM \ R****************** Macro D ***************************************** R* R* Macro D moves down and sets Q5 to the top of the next sort record. R* @RID\ [ @:F/|L|L/ [ #@EM/|L/ @EM/|W/ (.rv<>0)[0L .pXS5 JM] ] 9  ] Z .pXS5 \ R****************** Macro F ***************************************** R* R* Macro F moves forward in the file to the record that is about midway R* between the records pointed to by Q1 & Q2 (moving forward to the next R* record from the exact midpoint. R* R* When this point = Q2, the edit point is set to Q1 and control is R* given to Macro W to find the correct insertion point for the new record. R* Otherwise control is given to Macro M to continue the binary search process. R* @RIF\ (Q2+Q1)/2_EJ MD (.c=^z)[Q1_EJ RCW] RCM \ R****************** Macro G ***************************************** R* R* Macro G is the main driver macro (Go) R* @RIG\ ES 8 0 .RVXS18 ES 9 0 .RVXS19 EP 12 "Q-"A+10 15[@YT/ / ]@YT/ VEDIT's Mail List Sorter / -EE@ EZY EES EZY 12[@YT/ / ] @:RGO/Please enter name of mail list: / @YT/Opening / RTO ^MYD ER|RO 0P0 @RG0/ Please enter filename for sorted output (RETURN if same): / EE@ (.u0=0)[EW|RO ][EW|R0 ] @YT/Sorting ... / 0XS5 0XS6 !Begin looping! [ R* Check whether entire source list has been sorted, if so exit  -EES (.c=^z)&(.ef)[RCX] R* Check whether there is enough text in current buffer. If not, get more Z .yXS25 B .yXS24  (Q25-Q24 < 13)[ 31 A] R* Get next record & put 1st line into pattern register P [ #@EM/|L/ @EM/|W/ (.rv<>0)JL ] 0L -#K 1PP R* Insert source record into main buffer. R* Start by comparing to last record inserted followed by the record before R* or after it. If the new record doesn't go there, use binary search to find R* where it does go. -EE@ 0XS1 Z .pXS2 Q5_EJ !LP! RMP (.rv=0)[ MD @JP.LP.] (.rv=1)[ Q5XS2 MB JN ] (.rv=2)[ MD (.c=^z)[MI JN ] Q5XS1 MF JN] ] \ R****************** Macro I ***************************************** R* R* Macro I inserts the current source record into the main edit buffer R* at the beginning of the current sort record pointed to by Q5. R* @RII\ Q5_EJ -EES .pXS1 [ @:F/|L|L/ [#@EM/|L/ @EM/|W/;] 0L .pXS2 Q1,Q2_P0 Q1,Q2_K -EE@ G0 XA6 ^m:YD Q6: JM ] Z .pXS2 Q1,Q2_P0 Q1,Q2_K -EE@ G0 XA6 ^m:YD Q6: \ R****************** Macro M ***************************************** R* R* Macro M matches the current source sort line in pattern record P R* against the current record in the main edit buffer. R* R* If there is a match, the Macro I is invoked to insert the source record. R* Otherwise, control is given to macro B (back) or F (forward) to find the R* next sorted record to be examined (and perform the insertion if there R* is none.) R* @RIM\ RMP (.rv=0)[MD RCI] (.rv=1)[Q5XS2 RCB] (.rv=2)[Q5XS1 RCF] \ R****************** Macro Q ***************************************** R* R* Macro Q quits the sort process and exits to VEDIT after restoring R* user configured edit parameters that may have been altered by SORT. R* R* This macro has been defined as the macro-interrupt handler. R* @RIQ\ ES 8 Q18 ES 9 Q19 EP 12 255 -EE@ JO \ R****************** Macro U ***************************************** R* R* Macro U moves up and sets Q5 to the top of the current sort record. R* @RIU\ 0L (.c=^z)[-1_:l] [ @EM/|W/ @EM/|L/ (.rv <> 0)_JL -2L ] [ -: :L @EM/|W/ @EM/|L/ (.rv=0)[.pXS5 JM] ] 0XS5 \ R****************** Macro W *****************************************  R* R* Macro W walks through the main edit buffer until pattern buffer P R* is less than the current record. The current source record is thereupon R* inserted. R* @RIW\ .pXS5 [(.c=^z)[RCI] RMP (.rv=1)[RCI] MD] \ R****************** Macro X  ***************************************** R* R* Macro X exits normally, saving the sorted output file. R* @RIX\ -EE@ @YT/ Saving / :yw EY RCQ \ R****************** End of sub-macros section *********************** R* RCG !Go to it R* End of Mail list sort macro GToo many args.; < = > ? @ A  B  C  D E F G H I  J  K  L