home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ENTERPRS / CPM / UTILS / S / VDE231K.LZH / VDE23.DOC next >
Text File  |  2000-06-30  |  45KB  |  774 lines

  1.                                   VDE23.DOC
  2.                                   ---------
  3.                 Instructions for VDE (Video Display Editor):
  4.                              VDE, VDM 2.30 (9/86)
  5.  
  6.                               (c)1986, E. Meyer
  7.  
  8. ==============================================================================
  9.  
  10.  
  11.     VDE is a small, powerful text editor for CP/M computers.  It offers:
  12.     ---
  13.            * full-screen editing         * full block operations
  14.            * windowing                   * disk file input/output
  15.            * auto horizontal scroll      * powerful macro functions
  16.            * wordwrap and formatting     * find/replace
  17.            * pagination                  * undelete
  18.            * disk utilities              * many user options
  19.  
  20.      VDE is small (under 10k) because it is written in assembler.  VDE is fast
  21. because it edits a file entirely in memory.  (This does impose a limit on the
  22. maximum file size; however, VDE compresses text, so you can actually edit a
  23. file somewhat larger than the available memory.)
  24.      VDE produces standard ASCII text files, compatible with virtually all
  25. other software.  This makes it an ideal programmer's editor.  On the other
  26. hand, with wordwrap and similar features, it is an efficient (though not
  27. fancy) word processor as well.  VDE can even read in WordStar "document"
  28. files, though it will convert them to plain ASCII ("non-document") text.
  29.      VDE requires a Z80 CPU, and fully supports both CP/M 2.2 and 3.0 (Plus).
  30. The generic version of VDE can be installed for practically any terminal, and
  31. is fast enough in its screen operations that it even works well on laptop
  32. computers with slow LCD displays.  There is also a special version VDM for
  33. computers with memory-mapped video (MMV) only, which is even faster if your
  34. hardware supports it.  See the section on using the VINSTALL program, below. 
  35. Hereafter "VDE/M" refers to either version; "VDE" alone may also refer to
  36. either, unless a distinction is being drawn between generic VDE and VDM.
  37.  
  38.  
  39.                                   USING VDE
  40.  
  41.      VDE is invoked from CP/M:   A>vde [filename]
  42.  
  43. If you omit the filename, VDE will ask you for it.  If it's a new file, it
  44. will of course be empty.  If an existing file is too large to fit in memory,
  45. VDE will not be able to edit it.
  46.      VDE gives you a "status line" at the top of the screen which includes the
  47. filename, cursor position, INSERT toggle (if on), and prefix flag (if on).
  48. The position is given by page, line, and column, according to the page length
  49. value you have installed.  At first, the prefix flag will be reminding you
  50. "ESC-? = menu".  If you hit ESC-?, you will get a brief menu of the various
  51. VDE commands.  The menu, like all command prompts and error messages, appears
  52. temporarily in the top portion of the screen; it is removed when a command is
  53. selected.  It also includes the amount of free memory.
  54.      VDE/M can handle lines of up to 255 characters.  When the cursor moves
  55. past the edge of the screen, the VDM display will scroll horizontally.  [VDE
  56. scrolls a single line, then after a delay the rest of the screen.]
  57.      The VDE command set is similar in many respects to WordStar's, though not
  58. identical.  There are ESC- commands, which mostly correspond to WordStar ^K
  59. (Block) commands; ^Q- and ^O- commands; and other single-control-key commands.
  60. The similarities are strong enough that a WordStar user should have no trouble
  61. adapting to VDE.  Differences remain because of the extra functions provided
  62. by VDE, and the need to support both WordStar and CP/M arrow keys.
  63.  
  64.                            THE STATUS LINE AND MENU
  65. ------------------------------------------------------------------------------
  66.  File  D:FNAME.TYP        Pg 1     Ln 1     Cl 1       INSERT      ESC-
  67.                          VDE 2.30 (46174 bytes free)
  68. ESC-    Take   Print | ^Q-   <udrl>  | ^O-  B  fmt  | ^F,A wd r,l  ^V INSERT
  69. <udrl>  Copy   Name  |   B  block    | L,R  margins | ^R,C pg u,d  ^N insrt CR
  70. Block   Macro  Load  | R,C  TOF,EOF  | X  rel mrgns | ^B reform   DEL,^G d l,r
  71. Write   Key    Save  |   F  find     | C,F ctr,flsh | ^^ tog case ^T,Y " wd,ln
  72. Read    Files  eXit  |   A  replace  |  P tog pagn  | ^P pr code  ^U,^QU undel
  73. Delete  Erase  Quit  | DEL,Y del l,r |  W  window   | ^W wait     ^Z rpt find 
  74. ------------------------------------------------------------------------------
  75.  
  76. ==============================================================================
  77.  
  78.  
  79.                                COMMAND SUMMARY
  80.  
  81.  
  82. I. CONTROL KEYS:  single keystroke commands, function without prefix.
  83.  
  84.      Basic keys:  CR is a carriage return.
  85.                   BS is a nondestructive backspace.
  86.                   TAB is a real Tab, ^I.
  87.  
  88.      Arrow keys:      CP/M: ^K up, ^J dn, ^L rt  [Can be reconfigured];
  89.                   WordStar: ^E up, ^X dn, ^D rt, ^S lft.
  90.      ^F =  word right.
  91.      ^A =  word left.
  92.  
  93.      ^R =  scroll upward one screen.
  94.      ^C =  scroll downward one screen.
  95.  
  96.      ^G =  delete character to the right of the cursor.
  97.     DEL =  delete to the left.  [Can be reconfigured]
  98.      ^U =  undelete a character.
  99.      ^T =  delete word to right of cursor.
  100.      ^Y =  delete current line.
  101.  
  102.      ^N =  insert a carriage return at present position.
  103.      ^V =  toggle INSERT mode on and off.
  104.  
  105.      ^^ =  toggle case (upper/lower) of character at cursor.
  106.      ^P =  insert following control code.
  107.      ^B =  reform a paragraph with current margins.
  108.      ^Z =  repeat find.  (Repeats the last ^QF command.)
  109.      ^W =  wait.  (Brief pause, useful during Macros.)
  110.  
  111.  
  112. II.  QUICK COMMANDS:  first hit ^Q, then the key shown.  (ESC cancels)
  113.  
  114.      ^Q Arrows:  The Right and Left arrows (including ^S/D), when pressed
  115.                 after ^Q, move the cursor quickly to the beginning or end
  116.                 of the line.  The Up and Down arrows (including ^E/X) move
  117.                 to the top or bottom of the screen.
  118.  
  119.      ^Q B =  move to block marker (if set with ESC-B).
  120.      ^Q R =  move to top of file.
  121.      ^Q C =  move to end of file.
  122.  
  123.      ^Q F =  find next occurrence of a string.
  124.      ^Q A =  global find/replace (see below).
  125.  
  126.      ^Q Y =  delete from cursor to end of current line.
  127.      ^Q DEL =  delete from cursor to beginning of current line.
  128.      ^Q U =  undelete a line.
  129.  
  130.  
  131. III.  ONSCREEN COMMANDS:  first hit ^O, then the key shown.  (ESC cancels)
  132.  
  133.      ^O R =  set right margin (column 1 turns off wordwrap/reformatting).
  134.      ^O L =  set left margin.
  135.      ^O X =  release margins (do ^OX again to restore).
  136.      ^O C =  center current line with respect to margins.
  137.      ^O F =  align a line flush to the right margin.
  138.      ^O B =  format a paragraph with left margin at current cursor
  139.               column to a new set of margins.
  140.  
  141.      ^O P =  toggle pagination on/off.
  142.      ^O W =  toggle windowing on/off.
  143.  
  144.  
  145. IV. ESCAPE COMMANDS:  first hit ESC, then the key shown.  (ESC cancels)
  146.  
  147.      ESC ? =  menu.  Display a brief menu of all VDE commands.
  148.                     Also shows free memory.  Press ESC to clear.
  149.  
  150.      ESC TAB:   The TAB key, when pressed after ESC, moves to the next tab
  151.                stop by inserting spaces (instead of an actual Tab).
  152.  
  153.      ESC Arrows:  The Up and Down arrow keys, when pressed after ESC,
  154.                 scroll the screen vertically by 4 lines, without moving
  155.                 the cursor unless necessary.
  156.                   The Right and Left arrows, pressed after ESC, scroll
  157.                 the screen horizontally by 30 columns, if this can be
  158.                 done without moving the cursor.
  159.  
  160.      ESC F =  Files.  Look at the directory of a disk.
  161.      ESC E =  Erase.  Erase a disk file.
  162.      ESC L =  Load.  Load a brand new file to begin editing.
  163.                     (Asks for confirmation (Y/N) first)
  164.      ESC N =  Name.  Change the current filename (affects Save, eXit).
  165.      ESC S =  Save.  Save the current file, but continue editing it.
  166.      ESC X =  eXit.  Do a Save, then a Quit (no confirmation needed).
  167.      ESC Q =  Quit.  Abandon current file and exit VDE.
  168.                     (Asks for confirmation (Y/N) first)
  169.  
  170.      ESC B =  Block.  Mark the start of a Block.
  171.      ESC D =  Delete.  Delete everything from Block start to cursor.
  172.      ESC T =  Take.  Take text from Block start to cursor into copy buffer.
  173.      ESC C =  Copy.  Copy text from copy buffer to present cursor position.
  174.      ESC W =  Write.  Write everything from Block to cursor to a disk file.
  175.  
  176.      ESC R =  Read.  Read a disk file into text at cursor position.
  177.      ESC P =  Print.  Print the file as it now stands, from memory.
  178.  
  179.      ESC M =  Macro.  Execute a string of commands repeatedly.
  180.      ESC K =  Key.  Store Macro on function Key for later recall.
  181.      ESC 0..9 =  Use stored Key.  (In macro mode: label.)
  182.      ESC !,=,~,#   Used in Macro programming (see below).
  183.      
  184. ==============================================================================
  185.  
  186.  
  187.                        EXPLANATION OF SELECTED COMMANDS
  188.  
  189. BLOCK COMMANDS (ESC-B,D,T,C,W, ^QB) - ESC-B marks the beginning of a Block.
  190.      (The marker will display according to your terminal installation, quite
  191.      likely as a highlighted "B", and will remain until deleted or reset.) 
  192.      There is no Block end command;  wherever the cursor is when you execute a
  193.      block operation (ESC-D,T,W) is the end of the block.  (If the Block
  194.      marker is not set, block operations will not work.)
  195.          Modest block moves and copying can be done using ESC-T to Take the
  196.      block into the copy buffer, (ESC-D to Delete the original if desired,)
  197.      and ESC-C to Copy it back elsewhere in the file (or in another file).
  198.      The block remains in the copy buffer until replaced.
  199.          The ^QB command moves the cursor back to the Block marker.
  200.  
  201. DISK OPERATIONS (ESC-F,E,R) -  On using the ESC-F command, you will be asked
  202.      to specify a drive, and its directory will be shown.  If there is not
  203.      enough room to fit all the files on the screen, you will see "..." at the
  204.      end to indicate that there were still more.  Press ESC to return to
  205.      editing.  [ESC-F may be configured to ignore SYStem files.]
  206.           ESC-E can erase a disk file.  (Like all VDE commands, it will not
  207.      accept wildcards in the filename.)
  208.           ESC-R reads in an entire disk file, placing the text at the current
  209.      cursor position.
  210.  
  211. FIND, REPLACE (^QF, ^Z, ^QA) -  Once a string is "found" with ^QF its next
  212.      occurrence can be found with ^Z.  (^Z does not repeat ^QA.)  Matching is
  213.      case sensitive, and there are no wildcards; but control codes (including
  214.      newline, ^M) may be included with ^P.
  215.           ^QA is the global find/replace command.  It goes to the top of the
  216.      file, asks for a string to find, and what to change it to.  The cursor
  217.      will be placed in succession on each occurrence of the string in the
  218.      file.  To change it, press "Y"; anything else skips to the next.  If you
  219.      want to change all further occurrences without being asked, press "*".
  220.      ESC cancels at any time.
  221.  
  222. MACROS (ESC-M) -  The macro string may contain text, control keys, escape
  223.      commands, etc as desired, and will execute exactly as if you had typed in
  224.      that same sequence.  You will then be asked for a "Repeat count".
  225.      Usually you will simply type a number for the repeat count (0-9, or "*"
  226.      for "global" -- actually 255 times).  You will see the results as the
  227.      macro executes, and you can abort it at any time by pressing ESC.
  228.           If you want to put a brief pause in the execution of a Macro, use
  229.      the Wait command, ^W.  (Example: "^C^W" is a simple Macro to browse
  230.      through a file.)
  231.           If you are sure you know what you're doing, you can speed up Macro
  232.      execution by specifying "Quiet" mode: press "Q" before the repeat count.
  233.      Only the line/column counts will be updated as the Macro runs.  (This is
  234.      particularly useful on laptop computers with slow LCD screens.)
  235.           Macros also stop any time an error occurs; the error message will be
  236.      visible, and can be cleared by pressing ESC.  Many commands (like Find or
  237.      Reformat) are designed to generate errors at the end of the file so
  238.      that a global ("*") Macro containing them will halt there.  Other global
  239.      Macros may need to be aborted manually.
  240.           CAUTION:  Macros can be confusing, even dangerous; be careful.
  241.      Macros don't nest; if you use ESC-M in a macro, the original is simply
  242.      replaced.  A repeat count of "*" will insist on repeating 255 times, even
  243.      once the end of the file is reached, unless an ERROR occurs.
  244.           ESC-M turns INSERT OFF first for consistency, so that the same macro
  245.      will always work the same way.
  246.           Here is an example of a macro.  Can you figure out what it does?
  247.      (Answer:  .elif eht fo dne eht ta meht fo tsil a gnikam elif a fo tuo
  248.      sesehtnerap ni stnemmoc lla ekat lliw tI)
  249.             ^QR,^QF,(,CR,^G,ESC-B,^QF,),CR,^G,ESC-T,ESC-D,^QC,CR,ESC-C
  250.                (Onscreen you will see: QRQF(MG[BQF)MG[T[DQCM[C )
  251.           VDE Macros are very powerful tools, particularly given their program
  252.      ability (see below) and storage on function keys.  They can be used to
  253.      customize VDE for any task, such as the formatting requirements of
  254.      specialized writing or programming languages.
  255.  
  256. MACRO KEYS (ESC-K) -  The Key function gives you a convenient way to store
  257.      Macros for later use.  Up to 10 Macros can be stored (0..9), by entering
  258.      them with the ESC-M command, then using ESC-K to save them.  They can
  259.      then be recalled and used simply by typing ESC-<number>.  Example: typing
  260.      ESC-K-0 will store the last Macro used as Key 0, and it can be recalled
  261.      and reused at any future time simply by typing ESC-0.  [VINSTALL also
  262.      allows you to install a default set of macro Keys.]
  263.           Ordinarily, Keys operate just like the original Macro:  they will
  264.      ask for "Quiet/Repeat count" when executed.  If you want to suppress this
  265.      (giving something more like a "function key", that only executes once)
  266.      you can type "N" (for No repeat) before storing the key number.  Example:
  267.      ESC-K-N-0 stores a Macro in Key 0 as a once-only function key.  Similarly
  268.      you can make it a QUIET once-only key with "Q": eg ESC-K-Q-0.
  269.           If the Macro (ESC-M) string is empty, using ESC-K will delete any
  270.      Key definition.  Using a Key replaces whatever was previously in the
  271.      Macro string.  Trying to use an undefined Key results in an error. 
  272.      Redefining a Key simply replaces its former value.
  273.           There are 245 bytes total available for all 10 Keys (and a 65 byte
  274.      limit for any one Key.)  If your request to store (ESC-K) exceeds the
  275.      limit an error will result.
  276.           Besides simply storing Macros, here are some useful function Keys:
  277.        1.  Showing a ruler line.  The following sequence:
  278.                 ^V, CR, TAB,!,TAB,!,TAB,!,TAB,!,TAB,!,TAB,!, CR, ^V
  279.      can be used to display a ruler line showing tab stops.
  280.        2.  Storing different sets of margins (eg for quotes): for example,
  281.                              ^OR, 12, CR, ^OL, 66, CR
  282.        3.  Typing any frequently repeated phrase; "ESC-6" is much more
  283.      convenient than "World Wide Widgets Inc."
  284.  
  285. MACRO PROGRAMMING (ESC-0..9, ESC-!,=,~,#) -  VDE has several commands which
  286.      function only in a Macro string, and give you control over the execution
  287.      of a macro, allowing real programming.
  288.           ESC-0..9, when in a Macro, function as "labels" 0..9.  They have no
  289.      effect, but can be "jumped" to by other commands.
  290.           ESC-! followed by 0..9 is a simple "jump" instruction, causing macro
  291.      execution to resume with the command following the label ESC-0..9.  As
  292.      two special cases, ESC-!-[ jumps to the beginning of the Macro, and ESC-
  293.      !-] jumps to the end (aborts).
  294.           ESC-= and ESC-~, followed by a character and then a label (or "[",
  295.      "]"), are conditional jumps: they will jump to that label IF the
  296.      character at the cursor position does (or for "~", doesn't) match that
  297.      specified.
  298.           ESC-= and ESC-~, followed by a character and then ">" or "<", are
  299.      search loops.  They will continue to move the cursor right (or for "<",
  300.      left) as long as the character at the cursor does(n't) match, or until
  301.      the beginning or end of the file.
  302.           ESC-#, followed by 0..9, is used to "chain" to another macro key.
  303.      In this way you can build up strings longer than the 65-byte limit on
  304.      any one key.  It does not "call" the key; there is no returning.
  305.           Macro programs are stored just like any other macro string (usually,
  306.      though not necessarily, with no repeat count).  If these commands are
  307.      misused, you will probably get an error.  If you program in an endless
  308.      loop, you will at some point have to abort with ESC.  Don't make macro
  309.      programs "quiet" until you're sure they work.
  310.           Example: stripping (varible numbers of) leading spaces.  The macro:
  311.                             ^QS, ESC-=-sp->, ^Q-DEL, CR
  312.      will delete all leading blanks on a line (give any desired repeat count).
  313.  
  314. MARGINS, WORDWRAP, CENTER, FLUSH, FORMAT (^OR,L,X, ^OF,C, ^B,^OB) - 
  315.           ^OR sets the RIGHT margin, and turns ON wordwrap, formatting, and
  316.      centering.  The default is column 1, which turns OFF wordwrap, etc.  At
  317.      the prompt "Column:" enter the column number (1-255), or just hit RETURN
  318.      for the current cursor column.  If this value is to the left of the left
  319.      margin, the left margin will be reset to 1.
  320.           ^OL sets the LEFT margin where the cursor is.  Must be to left of
  321.      the right margin, which must have been set first.  The default is 1.
  322.           Wordwrap automatically aligns text, as it is typed in, within the
  323.      current margin settings.
  324.          ^OX temporarily RELEASES the margins (sets them to 1); use ^OX again
  325.      to restore the previous margins.
  326.           ^OC CENTERS a line with respect to the margins, if set.
  327.           ^OF FLUSHES a line over to the right margin, if set.
  328.           ^B REFORMS from the line the cursor is on, to the end of the
  329.      paragraph, according to the current right margin (the LEFT margin must
  330.      remain the same).  Paragraphs must either be indented beyond the current
  331.      left margin with spaces or tabs, or separated by a blank line; otherwise
  332.      they will all run together.  (VDE doesn't use soft spaces or CRs; it has
  333.      to guess what you want when you try to reformat text.  Usually this works
  334.      pretty well; but be cautious with formatted columns and tables, etc.)
  335.           ^OB FORMATS text (like ^B), but can also handle text created with
  336.      a different left margin.  Place the cursor in the original left margin
  337.      column of the existing text, then type ^OB.
  338.           CAUTION: ^B and ^OB are different.  Trying to change the left margin
  339.      with ^B, or using ^OB in the wrong column, can create a mess!
  340.           VDE can't actually hyphenate, but it does recognize hyphens ("-")
  341.      that you have put in the text yourself.  If VDE needs to break up a line,
  342.      it will treat a hyphen as a legitimate place to do so.  (If you have a
  343.      long word that you'd like to have broken up, put a hyphen in it some-
  344.      where.)  If VDE is trying to recombine lines and finds a hyphen at the
  345.      end of one, it will quit with an error.  You must join the lines (and
  346.      delete the hyphen, if desired) manually, then press ^B again.
  347.  
  348. PAGINATION (^OP) -  The ^OP command toggles pagination.  When on, the default
  349.      page length is reflected in the VDE header ("Pg xx..."), and all page
  350.      functions in the Print routine (formfeeds, headers, start/stop print) are
  351.      enabled.  When off, the header will say "Pg 0", and the line count ("Ln
  352.      xx...") will be the line number in the file; also, printing sends the
  353.      whole file out at once, with no pagination from VDE.
  354.           [You cannot toggle pagination on if the default page length is 0.]
  355.  
  356. PRINTING (ESC-P, ^P) -  The ESC-P command Prints the file from memory.  You
  357.      will be asked for a set of "Options:", at which point you may enter one
  358.      or more of the following, in any order:
  359.        ^      causes control characters ^X to be FILTERED to ASCII "^X".
  360.        *nn    causes the job to print out nn TIMES (nn=1..255).
  361.        @nn    causes printing to begin AT page nn.
  362.        #nn    causes a MAXIMUM of nn pages to print.
  363.        "..."  causes quoted string to print out as a HEADER.  The string will
  364.      print at the left, and the page number will appear near the right margin. 
  365.      (Maximum header length is 50 characters; use an empty string, "", to get
  366.      numbered pages with no header text.)
  367.           The last three options are NOT allowed if pagination is off (^OP).
  368.           Example:      Options:  *2 "Instructions" @6#1 
  369.      will print out page six of the file twice, with the header shown.
  370.          [Codes to initialize the printer can be specified in the Printer
  371.      Installation section of VINSTALL.]
  372.           You can abort at any time with ESC (though this may take a moment,
  373.      or a few keystrokes, depending on your BIOS).
  374.           For printer control, VDE supports a subset of WordStar ^P print
  375.      codes.  These can be entered with ^P, then the control code.  First there
  376.      are simple embedded codes:
  377.           ^H - overstrike previous character
  378.           ^L - formfeed  (Not recommended when pagination (^OP) is on)
  379.      Then there are seven user-definable codes: three toggles, four switches.
  380.      The Printer Installation in VINSTALL allows you to choose what codes you
  381.      want, and install the control sequences your printer needs.  The defaults
  382.      are              toggles  ^D, ^S, ^Y
  383.                  and switches  ^Q, ^W, ^E, ^R.
  384.      These correspond to the Doublestrike, Underline, and Ribbon toggles, and
  385.      the four User Codes, in WordStar.  Toggles are well suited to features
  386.      (like ^Sunderline^S) that will be turned on and off.
  387.           Control codes other than the 7 installed ones will simply print out
  388.      "as is", that is, ^[ will print as ESC, etc.  The only codes you cannot
  389.      enter into a file are ^B and ^Z.  Control codes display on screen as (if
  390.      possible, highlighted) letters.  Unfortunately, VDE does count these
  391.      codes when reformatting text.  Where format is critical, insert ^P codes
  392.      last.
  393.  
  394. TABS (^I) -  The TAB key alone produces a single ^I.  When preceded by ESC,
  395.      it moves the cursor over the same amount, but by spaces instead.  Either
  396.      way, whether it overwrites existing text depends on the INSERT toggle.
  397.           [The Tab stops are configurable to 2, 4, 8, 16 (etc) columns.]
  398.  
  399. UNDELETE (^U, ^QU) -  The undelete functions can be used (repeatedly if
  400.      necessary) to recover up to 2k of text deleted by overstriking, or with
  401.      ^G, ^T, ^QY/^Y, ^Q-DEL, or ESC-D, as long as the cursor has not been
  402.      moved since.  ^U undeletes one character; ^QU does a whole line.
  403.           (Restriction: After DEL, ^U is only good for one character.)
  404.           Further use after all deleted text is recovered will produce either
  405.      duplicates of existing text or junk.
  406.  
  407. WINDOWING (^OW) -  The ^OW command takes the 11 lines of text beginning on the
  408.      cursor line, and splits the screen into two Windows.  The bottom window
  409.      retains a copy of this text, while the top window continues to function
  410.      normally.  This is useful when comparing different portions of text
  411.      within a file, or even between different files.  Use ^OW again to remove.
  412.           Windowing only works on 24 line screens.
  413.  
  414. ==============================================================================
  415.  
  416.  
  417.                              FURTHER INFORMATION
  418.  
  419. BACKUP FILES -  When you edit a previously existing file, VDE will normally
  420.      create a backup (BAK) file each time you save (with ESC-S or ESC-X). 
  421.      This can be suppressed entirely with VINSTALL.
  422.           There is one exception: if the ESC-N command has been used to change
  423.      the filename, BAK files will no longer be made.  (Thus you can tempor-
  424.      arily avoid BAK files by renaming a file to itself.)
  425.           The block write command (ESC-W) does not create BAK files.
  426.  
  427. INTERRUPTION -  If VDE gets interrupted by a message from some other software
  428.      (BIOS error, resident utilities, etc), it may lose control of the screen.
  429.      You can always restore the text by, for example, scrolling up and back
  430.      down again (^R^C).
  431.  
  432. RUNNING OUT OF ROOM -  VDE has excellent error recovery, under both CP/M 2.2
  433.      and 3.0:  BDOS errors are trapped entirely within VDE, so you will never
  434.      lose any text.
  435.           If you run out of disk space, you can just swap disks (you should
  436.      always keep a blenk FORMATTED disk around).  Alternatively, you can use
  437.      the ESC-F and ESC-E commands to delete unneeded files.
  438.           If you want to Take a block to copy it, but run out of memory, write
  439.      it out to a disk file instead.
  440.           Remember that the copy block remains in memory.  If you run low on
  441.      memory, you may want to delete it (by Taking nothing, ESC-B ESC-T).
  442.      If you want to Copy it back but don't have room, delete some text or Load
  443.      a new file first.
  444.           You can always find the amount of free memory in the ESC-? Menu.
  445.  
  446. SPACE COMPRESSION -  VDE 2.1 uses a new text compression algorithm that can
  447.      effectively increase memory capacity by over 25%.  (I have loaded a 67k
  448.      text file into 53k of free RAM.)  Of course this compression is undone
  449.      when writing the file back to disk.
  450.           (Earlier versions of VDE used a compression algorithm inherited from
  451.      VDO, that was about half as efficient.)
  452.  
  453. STRING ARGUMENTS -  When confronted with a prompt like "Find:", you are
  454.      expected to type in a string (up to 65 characters) then hit CR.  During
  455.      this process, you can correct mistakes with BS, DEL, or any left arrow;
  456.      and ^X will delete the whole entry.  Note that to get any of these codes
  457.      into the string itself, you must precede it with ^P (this includes ^P).
  458.           Examples: to find a line beginning with a "*" (find "CR,*") type
  459.                      ^QF, ^P,CR, *, CR.
  460.      Now to get this into a Macro with ESC-M, you would have to type (whew)
  461.                      ESC-M, ^QF, ^P,^P, ^P,CR, *, ^P,CR,  CR.
  462.  
  463. ==============================================================================
  464.  
  465.  
  466.                                    MESSAGES
  467.  
  468.           All messages appear in the line just below the header.  First
  469.      there are PROMPTS requiring user input (though most assume a natural
  470.      default, or exit, if you just type RET):
  471.  
  472.               "Abandon file?" - please confirm ("Y") a Quit or Load request.
  473.                  "Find:", etc - enter the string argument for the command.
  474.                "Column:", etc - enter a number 0..255
  475.      "[Quiet], Repeat count:" - enter [opt. "Q" and] repeat count for Macro.
  476. "[No rpt/Quiet], Key number:" - enter [opt. "N/Q" and] key number for Key.
  477.  
  478.           Then there are the (temporary) INFORMATIONAL messages:
  479.  
  480.    "I/O working... please WAIT" - disk or printer operations in progress.
  481.  
  482.           Then there are ERROR messages: you need to press ESC to continue.
  483.  
  484.    "Out of Memory" - the file, block, or key string won't fit in RAM.
  485.      "Invalid Key" - an illegal control or ESC sequence was pressed.
  486.      "I/O Failure" - file not found, disk full, empty/invalid drive, etc.
  487.  "Cannot Reformat" - end of file; hyphen at end of line; or word too long.
  488.        "Not Found" - the search string was not found.
  489.     "Syntax Error" - a macro programming command was misused.
  490.            "Error" - the command used won't work in this situation.
  491.                      (Example: block isn't marked...)
  492.  
  493. ==============================================================================
  494.  
  495.  
  496.                          INSTALLING AND MODIFYING VDE
  497.                          ----------------------------
  498.  
  499.      As distributed, VDE is set up for Osborne computers, and VDM is set up
  500. for an Osborne Executive.  If you use another computer/terminal, you will most
  501. likely have to re-"install" VDE/M; otherwise it will make more or less of a
  502. mess on your screen, and (possibly, with VDM) crash.
  503.      The default printer installation is empty.  You will probably want to
  504. redo this, so you will have access to your printer's special features.
  505.      There are also many options affecting the operation of VDE that you can
  506. select or modify to suit your taste.
  507.      All this can be done using the VINSTALL program, which should be
  508. distributed as part of VDE.LBR.
  509.  
  510.    VINSTALL SYNTAX:    A>vinstall [d:]vde/m [termname]
  511.  
  512.      You can use VINSTALL to modify VDE/M.COM simply by typing:
  513.                        A>vinstall vde
  514. Alternatively, you can use (or create) an INSTALLATION FILE by typing:
  515.                        A>vinstall vde termname
  516. In this case, VINSTALL will load the file TERMNAME.VDE (or VDM) and install
  517. it, if it already exists; and will create or update it at the end, when you
  518. save and exit.  Example: you can create the file OSBEXEC.VDM, to install VDM
  519. for the Osborne Executive, simply by typing:
  520.                        A>vinstall vdm23 osbexec
  521. and then choosing to "SAVE", since that is how VDM is already installed by
  522. default.  Alternatively, you can create KAYPRO84.VDE, to install VDE for New
  523. Kaypro (84) computers, by typing:
  524.                        A>vinstall vde23 kaypro84
  525. Then go through the "Terminal Installation" routine.  (The only values you
  526. would need to change are "erase to end of line" and "alternate video".)  When
  527. you save, the new configuration will be written to KAYPRO84.VDE as well.
  528.      Each installation file (VDE or VDM) is 1k, and includes only the terminal
  529. installation data (not options, printer, keys, etc).  Once you've created one
  530. for your terminal, please circulate it for the benefit of others.
  531.  
  532.      The version numbers of VDE/M, VINSTALL, and any installation files must
  533. "agree" or you will get an error.  The match need not be exact, as there may
  534. be a new release of VDE without modifying the installation areas.  But if
  535. there has been a change in these, a new version of VINSTALL will be provided,
  536. and you will have to create new installation files.
  537.  
  538.      VINSTALL is largely self-documenting, and steps you through each item
  539. individually.  If this is your first time running the program, take advantage
  540. of the "Help" option before you start in, for some basic instructions.  What
  541. follows is a more detailed explanation of installation items, in about the
  542. same order as in the VINSTALL procedure.
  543.      Note that all the number entry in VINSTALL is hexadecimal; you will find
  544. a good ASCII/base-conversion chart helpful.  The only error that VINSTALL can
  545. detect is the attempt to define a longer hex string than will fit; it can't
  546. check for legal values.  Don't install illegal values, or VDE will behave very
  547. strangely.
  548.  
  549. CONFIGURING USER OPTIONS
  550.        Create BAKup files (Y/N) - Do you want backup files to be made when you
  551.     save a file with VDE?
  552.        Default insert on (Y/N) - Do you want the INSERT toggle to start out on
  553.     when VDE loads a new file?
  554.        Left and Right margin columns (00-FF hex) - Default margin settings. 
  555.     Set both to 1 to turn off wordwrap and reformatting.
  556.        Tab spacing -1 (01,03,07,0F,1F...) - The tab spacing can be 2, 4, 8, 16
  557.     (etc) columns, any power of 2.  Enter one less than the value desired, in
  558.     hex, as shown above.  Other values cause the TAB key to act erratically.
  559.        Page length (00-FF) - Set the page length to affect header display and
  560.     printer pagination.  Set to 0 to turn off pagination entirely.  [Note: 
  561.     this is the number of lines you want to print, not the physical length of
  562.     the sheet, and does not include an extra 3 lines for a header if used.]
  563.        Scroll overlap (00-lines) - This is the number of lines overlap between
  564.     screens when scrolling with ^R/^C.  The smaller, the faster the scroll.
  565.        Show system files (Y/N) - Do you want files with the SYStem attribute
  566.     to show in the VDE directory display?
  567.        Ring bell on error (Y/N) - Do you want your terminal bell to ring when
  568.     a VDE error message displays?
  569.        Clock speed in MHz (01-FF) - Set this to your CPU clock speed; many
  570.     CP/M computers are 4.0 MHz (use 40 here).  Can also be adjusted to vary
  571.     length of delays in VDE.
  572.  
  573. TERMINAL INSTALLATION (Both versions)
  574.      VDE will run on nearly all computers, and is very easy to install.  If
  575. you have memory-mapped video, you may be able instead to use VDM, which is
  576. much faster, but requires a bit more skill to install.  First there are some
  577. things in common in both installations:
  578.        Terminal ID - This is just a place to put the name of the terminal you
  579.     are installing (up to 16 characters).
  580.        Viewable screen columns (28-FF) - Enter the width of your screen in
  581.     columns.  The normal value is 50 for eighty columns.
  582.        Screen lines -1 (07-1F) - Enter one less than the number of lines on
  583.     your screen.  Normally 17 for twenty-four line screens.
  584.        DELete character (00-7F) - Normally 7F.  If your keyboard can't
  585.     generate this, and you want a DEL key, change it to something else.
  586.        Arrows up, down, right, left (00-7F) - Enter the ASCII codes for your
  587.     terminal arrow keys in this order, one byte each.  Ignore parity.  Use a
  588.     value of FF to mean "not used".  (Wordstar arrows ^E,^X,^D,^S and
  589.     backspace ^H are always accepted, and should not be redefined here.)  The
  590.     default set is CP/M ^K,^J,^L, entered as 4B4A4CFF.
  591.        Terminal init, uninit - Enter the codes you want sent to initialize
  592.     your screen on entry into VDE, and to uninitialize on exit, in the form
  593.     (# of bytes),bytes.  You will at least want to clear the screen, and can
  594.     optionally do other things as well.  Example: ^Z alone is common, (01)1A. 
  595.  
  596. TERMINAL INSTALLATION (Generic)
  597.      VDE should run with adequate speed on most terminals.  If your BIOS
  598. doesn't buffer the keyboard well, you might lose characters when typing while
  599. the screen is being updated.  If so, consider the following hints:
  600.   (1) Installing Scroll Up/Down [see below] correctly makes a big difference.
  601.   (2) Response speed improves if you have INSERT OFF while typing in text.
  602. Installation:
  603.        Horizontal scroll delay (01-FF) - This controls the delay between
  604.     scrolling the current line and scrolling the rest of the screen, when
  605.     working beyond column 80.  The average value is 80h; adjust as you like. 
  606.     Also affected by the setting of clock speed, above.
  607.        Clear to end of line - Enter the ASCII string to clear to the end of
  608.     the line, as (#),bytes.  Example: (02)1B54.  If your terminal can't do
  609.     this then zero it out (00).
  610.        Alternate video on/off - Enter the codes (#),bytes to turn some video
  611.     mode (eg inverse), that you want to use to highlight control codes, on and
  612.     off.  If your terminal can't do this, zero them out (00).
  613.        Use high bit for alt. video (Y/N) - If your terminal needs the high bit
  614.     set on characters to get them in alternate video, zero the above strings
  615.     out and say Yes here; otherwise, No.
  616.        Console filter (7D-FF) - This is the highest ASCII code that will be
  617.     sent to the screen.  Normally 7F; if your terminal can't display codes 7F
  618.     or 7E (DEL and tilde), lower this to 7E or 7D.
  619.        Cursor column before row (Y/N) - Normally No; if your terminal expects
  620.     column,row order when positioning the cursor instead of row,column, say
  621.     Yes.  (Don't worry; if you get this wrong, you'll notice!)
  622.        Position cursor at (0,0) - Enter the 4-byte sequence for addressing the
  623.     cursor to the top left:  two lead bytes, then two row/column values.  Most
  624.     terminals use ESC,=,20h+row,20h+col, or 1B3D2020.  If you have only one
  625.     lead byte, make the first something innocuous.
  626.        Scroll up and down - What is wanted here is to get the text to scroll
  627.     up or down a line, by either deleting or inserting a line at the top.  A
  628.     common way to do this is to send the cursor to the second screen line
  629.     (first text line) and delete/insert a line.  Example: on an ADM3-style
  630.     terminal, 1B3D2120 puts the cursor on line 2, 1B52 deletes a line, and
  631.     1B45 inserts a line.  So what you need for scroll up is (06)1B3D21201B52,
  632.     and for scroll down (06)1B3D21201B45.  Some terminals require different
  633.     approaches; if yours can't do this at all, zero this out (00).
  634.  
  635. TERMINAL INSTALLATION (Memory-mapped)
  636.      VDM assumes the following about video memory:  (1) its high bit can be
  637. used to highlight and provide a cursor; (2) its absolute address is at or
  638. above 3000h (above VDM code itself).  Installation:
  639.        Unused columns of RAM (00-FF) - Enter the number of unused bytes in
  640.     video RAM between the end of one visible line and the start of the next. 
  641.     Example: many computers have 128 bytes of RAM per line, but only show 80
  642.     of them.  So there would be 48 unused columns (30 hex).
  643.        Cursor on/off - Enter the codes (#),bytes to turn the regular CP/M
  644.     cursor on and off, so it won't appear on the VDE screen.  If you can't do
  645.     this zero them out (00), and the cursor will remain visible at the upper
  646.     corner of the screen.
  647.        Video RAM start (3000-FFFF) - Enter the starting address of your video
  648.     memory, in hex.
  649.        Video in/out code - If your video RAM is in the ordinary bank of
  650.     memory, just put C9000000... here (that's a RET instruction).  Otherwise,
  651.     you will need the machine-language code to switch video memory in and
  652.     out.  There are 16 bytes for each routine, and you must preserve all the
  653.     CPU registers, and end with a RET.  You should find the assembler code to
  654.     do this in your terminal manual; to convert it to hex, either look up the
  655.     hex values in a Z80/8080 reference book, or use DDT or ASM/MAC to write
  656.     and assemble the code to hex form.
  657.  
  658. PRINTER INSTALLATION
  659.        Printer ID - Just room for a text string (16 bytes) to identify the
  660.     printer you are installing.
  661.        Printer initialization - Enter a string of codes (#),bytes to send to
  662.     the printer before printing text, to set print mode, margins, etc.  If
  663.     none, zero it out (00).
  664.        Send LF after CR (Y/N) - Normally Yes.  But with some printers, which
  665.     manufacture their own LF on receiving a CR, you will want No here.
  666.        Toggles and switches - Enter the ASCII codes for the three toggles,
  667.     then four switches, as described above.  Toggles turn a feature on and
  668.     off again; switches just send the same code each time.  The defaults,
  669.     which correspond to Wordstar, are toggles ^D,^S,^Y (doublestrike,
  670.     underline, and ribbon) and switches ^Q,^W,^E,^R.  You can use any codes
  671.     here EXCEPT ^B,^H,^I,^J,^L,^M,^Z, which are used for other purposes.
  672.        Codes for toggles (on/off) - Enter the codes (#),bytes to send to the
  673.     printer on encountering each of the three toggle codes.  See your printer
  674.     manual.
  675.        Codes for switches - Enter the codes (#),bytes to send to the printer
  676.     on encountering each of the four switches.
  677.  
  678. MACRO KEYS
  679.        VINSTALL gives you the ability to install a default set of macro keys. 
  680.     (It also lets you see the keys, which VDE can't.)  Keys defined with ESC-K
  681.     while running VDE override the defaults, but are only temporary.  VINSTALL
  682.     gives you a display much like this:
  683.  
  684.     MACRO KEYS:  (C7 bytes free)    <---- note free bytes (up to F5 = 245)
  685.     <0><>
  686.     <1><>                           <---- "<>" flag means empty
  687.     <2><>
  688.     <3>^C^W                         <---- normal macro key
  689.     <4><>
  690.     <5><N>World Wide Widgets Inc.   <---- "<N>" flag means no-rpt key
  691.     <6><>
  692.     <7><Q>^QR^[B^QC^[T^[C           <---- "<Q>" flag means quiet key
  693.     <8><>
  694.     <9><>
  695.     Select <0-9>, <Z>ap, or <CR> to save:
  696.  
  697.     This is pretty straightforward; you just select the number of the Key you
  698.     wish to redefine, then type in the new definition, much as you would in
  699.     VDE (though the display is a bit different).  All the same rules apply. 
  700.     To erase all the keys and start over, press "Z".
  701.  
  702. FURTHER USER PATCHING
  703.        The address of the user patch area will be given to you by VINSTALL. 
  704.     This small region in VDE can be used to install any extra patch code you
  705.     need.  (Example:  if your video in/out routines won't fit into 16 bytes,
  706.     you can jump to the user patch area and put more code there.)  This is the
  707.     ONLY such area available, as VDE uses all memory after its own code for
  708.     editing text.
  709.        VINSTALL also tells you the addresses of the command tables in VDE/M.
  710.     You may find this useful if you need to go in and change a VDE command key
  711.     that conflicts with your computer's firmware.  There are four command
  712.     tables: basic, ESC, ^Q, and ^O.  Each is a list of 3-byte entries, with a
  713.     one byte keycode, then a two byte address.  (Examples: you will find the
  714.     ^T command and the ESC prefix in the basic table; and the ^OX command
  715.     appears in the ^O menu, as ^X.)  Find the problem keycode, and use DDT or
  716.     another utility to change it.  (You will also see the keycodes 80-84h in
  717.     the tables; these are the arrow keys and DEL, as installed in the Terminal
  718.     section above.)
  719.  
  720. ==============================================================================
  721.  
  722.  
  723.                                ANCIENT HISTORY
  724.  
  725.      The original VDO (Fritz Schneider, 1982) was modified by George Peace to
  726. run on Osborne computers (VDO-EX, 1984).  This is where my own VDE began from.
  727.      My first Osborne VDE, VDE-2, 2B, 2C series (1984) was followed by
  728. VDE-OS,OX 2.4-2.7; this has now developed into VDM, adaptable to most MMV
  729. computers.  My Epson Geneva adaptation VDE-PX (1985) has now become the
  730. generic terminal version of VDE.
  731.      (VDE and VDM are both clearly identified by a version message at the
  732. beginning of the COM file.  You can view this with DDT or a similar utility.
  733. Do not alter this in any way.)
  734.      There are other descendants of VDO; each has evolved in a different
  735. direction, with its own advantages and compromises.  VDE reflects my own
  736. tastes, and has by now been thoroughly enough rewritten that I consider it
  737. (and the name "VDE/M") mine.  Please respect this, particularly if you begin
  738. to play with the source code for an earlier version of VDO or VDE.  I do not
  739. plan to release the source for VDE 2.xx, but I welcome suggestions.
  740.  
  741.                                MODERN HISTORY
  742.  
  743.      Versions 2.00 of VDE and VDM are equivalent in features and format. 
  744. Future revisions will attempt to maintain this correspondence in the first two
  745. digits (#.#), possibly with separate bug fixes in the third.  RECENT UPDATES:
  746.  
  747.      v 2.10 (6/86) - Macro Key (ESC-K) function; window; undelete;
  748.                     new compression algorithm; true block marker;
  749.                     directory; improved pagination and scrolling;
  750.                     printer installation; small fixes.
  751.      v 2.20 (8/86) - Larger, more Wordstar-compatible command set;
  752.                     left margins; hyphenation; macro programs.
  753.      v 2.30 (9/86) - New VINSTALL program replaces overlays.  New
  754.                     functions ^F,^A,^T, ^QE/X, and ^QU.  New global
  755.                     replace ^QA.  New Print options; restrictions
  756.                     on ^P entry removed.  Macro key chaining.
  757.                     Several small bugs fixed.
  758.  
  759.   *************************************************************************
  760.   *****  The VDE editor and this documentation are (c)1986 E. Meyer.  *****
  761.   *****  They may be freely copied and distributed for NONPROFIT use  *****
  762.   *****  only.  No changes are to be made to this documentation, nor  *****
  763.   *****     to the VDE program itself (except as detailed above).     *****
  764.   *************************************************************************
  765.  
  766.      I want VDE to continue to be a valuable utility for all CP/M users.
  767. Please direct problem reports and suggestions to:
  768.  
  769.               Eric Meyer
  770.               427 N. Washington
  771.               Bloomington  IN 47401      CompuServe [74415,1305]
  772.  
  773. ==============================================================================
  774. gton  IN 47401