home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / draco / draco-1.ark / DED.DOC < prev    next >
Text File  |  1986-11-12  |  26KB  |  597 lines

  1.         Ded - the Draco Screen Editor
  2.  
  3.      Ded is a screen editor for CP/M-80 systems which can be
  4. configured to run on a variety of terminals. Also, it's 62
  5. commands can be assigned by the user to any desired keystroke or
  6. keystroke sequence. It is NOT a word processor. It has no
  7. concept of boldface, italics, footnotes, etc. It does have some
  8. commands and features (such as automatic word-wrap) which are
  9. useful in editing text files. It has several commands and
  10. features (such as automatic indentation and block shifts) which
  11. are designed specifically for working with source files for
  12. structured programming languages.
  13.  
  14.      Ded is invoked from CP/M by the command
  15.  
  16.     ded file.typ
  17.  
  18. where 'file.typ' is the name of the file to be edited. If the
  19. file doesn't exist, it will be created. If the file does exist
  20. then it will be renamed as 'file.BAK' and a new file called
  21. 'file.typ' will be created. When Ded terminates normally, it
  22. writes the new version of the file to the newly created file,
  23. thus the entire editing session can be later discarded by ERAsing
  24. 'file.typ' and RENameing 'file.BAK' to be 'file.typ'. Note,
  25. however than any existing 'file.BAK' is deleted when Ded first
  26. reads in 'file.typ'. If more than one file is given on the
  27. command line then Ded edits them one after another.
  28.  
  29.      Internally, Ded is a line editor. This means that it treats
  30. a file as a sequence of lines of text. This has little effect on
  31. the user, but will show up in some situations. One minor point is
  32. that Ded will always put a CR/LF sequence at the end of each line
  33. of text in a file.
  34.  
  35.      One aspect of this nature is that Ded does not handle lines
  36. longer than 79 characters. The user will be warned when an
  37. operation attempts to make a longer line. Similarly, lines are
  38. truncated to 79 characters when files are read in.
  39.  
  40.      Ded does not do disk buffering. This means that the entire
  41. file being edited must fit in memory. Ded uses a compressed form
  42. of internal storage in which sequences of blanks are stored as
  43. single bytes (the high order bit is set and the remaining 7 bits
  44. are a count of the number of blanks). This compressed form can be
  45. used for file storage, to reduce the space used by files
  46. containing a lot of whitespace. Ded will also generate standard
  47. 8-column tabs or fully expanded blanks. If Ded runs out of memory
  48. space, it will inform the user gracefully, and allow editing to
  49. continue.
  50.  
  51.      User-settable typewriter-style tabstobs are available in
  52. Ded. When it is initially run, the tab-stops are set at the
  53. standard 8-column boundary, but they can be cleared and set to
  54. any arbitrary columns. The TAB key causes blanks to be generated
  55. until the cursor is at the next tab-stop. When not in insert
  56. mode, the character under the cursor is replaced by the blanks.
  57.  
  58.      Since Ded uses special characters internally to represent
  59. sequences of blanks, these characters should not appear (as other
  60. than the intended compressed blanks) in any files edited with
  61. Ded. As a special case, if these characters are between matching
  62. quotes (as scanned left-to-right), they are acceptable and will
  63. be displayed in highlighted mode on the screen. The ASCII HT
  64. character is similarly restricted. Control characters other than
  65. CR, LF, SUB and HT can appear anywhere in a line with no ill
  66. effects. They will be displayed in reverse video as their
  67. non-control forms.
  68.  
  69.      One of the concepts used in Ded is that of a region of
  70. lines. Such a region can be shifted, aligned, printed, written to
  71. a file, etc. A region is defined by first selecting the start
  72. point of the region with the POINT command, moving to the
  73. end-point of the region, and then executing the command which is
  74. to affect the entire region. Regions must be marked in the
  75. forward direction, i.e. the end-point must be later in the file
  76. than the start point, whether on the same line or on a later
  77. line.
  78.  
  79.      Ded's screen display consists of 23 lines for the text of
  80. the file, each of which is 79 columns long (the last column is
  81. not used other than by the cursor). Also present is a status line
  82. at the bottom of the screen. This line contains 7 indicators, the
  83. name of the file being edited, the line and column of the cursor
  84. and an area which is used for error messages, status messages,
  85. and user prompts. The 7 indicators are as follows:
  86.  
  87.     1 - the first end of a region has been marked
  88.     T - there is currently text in the 'text buffer'
  89.     I - insert mode is enabled
  90.     W - word-wrap mode is enabled
  91.     M - multi-column mode is enabled
  92.     S - a search subject has been given
  93.     C - a global change 'to' has been given
  94.  
  95.      Insert mode should be familiar to all computer users:
  96. characters typed are inserted before the one under the cursor
  97. instead of replacing the ones currently on the line. Characters
  98. to the right are moved over to make room. Word-wrap is also
  99. fairly common - when typing, if a character is about to be typed
  100. just beyond the word-wrap column, then an automatic carriage
  101. return is generated. Also, if the character to be typed is a
  102. non-blank, then the full word which that character is part of is
  103. moved down to the new line. Any left indent set is applicable to
  104. the newly inserted line.
  105.  
  106.      Multi-column mode is a special feature of Ded. It interacts
  107. with the carriage return and word-wrap operations. Instead of
  108. causing a new line to be inserted, these operations move the
  109. cursor to the left indent column of an existing next line. Blanks
  110. are added to that line only as needed to reach the left indent
  111. and any word carried over by word-wrap is moved to the next line
  112. replacing any text that might have been there. Multiple columns
  113. can be easily made by setting the left indent at the desired
  114. left edge of the column (remember that the left indent is the
  115. number of spaces before the first character of the column) and
  116. the word-wrap column to the desired right edge of the column.
  117. Such columns can be entered in any order, and with careful typing
  118. and the use of insert mode, columns can even be inserted.
  119.  
  120.      Since the keystrokes which select the various commands can
  121. be modified by the user, it is not possible to discuss the
  122. commands based on the keys typed to execute them. Thus, all of
  123. the commands in Ded have been named. The detailed description of
  124. the commands is arranged in several related groups. A separate
  125. page included with this writeup lists the commands in a short
  126. form, with space in which the user can write in the keystrokes
  127. which have been selected to perform the commands.
  128.  
  129.  
  130. Cursor Movement Commands
  131.  
  132. LEFT - the cursor moves left one column. Moving left past the
  133.     first column will cause the cursor to wrap to the next
  134.     available column in the previous line.
  135.  
  136. RIGHT - the cursor moves right one column. Moving right past the
  137.     right-hand edge of the screen causes the cursor to wrap to
  138.     the first column of the next line.
  139.  
  140. UP - the cursor moves up one line. If the cursor was originally
  141.     on the top line of the screen, then the file is windowed
  142.     backwards one line first.
  143.  
  144. DOWN - the cursor moves down one line. If the cursor was
  145.     originally on the last line of the screen, then the file is
  146.     scrolled up one line first.
  147.  
  148. SKIPWORD - the cursor moves forward to the beginning of the next
  149.     word. It will not move past the end of the line.
  150.  
  151. BACKWORD - the cursor moves backward to the beginning of the
  152.     previous word. It will not move past the beginning of the
  153.     line.
  154.  
  155. BOL - the cursor moves to the first column of the current line.
  156.  
  157. EOL - the cursor moves to the next free column of the line. (Just
  158.     past the last character on the line.)
  159.  
  160. NEXTLINE - the cursor moves to the first column of the next line.
  161.  
  162. TOP - the cursor moves to the top line on the screen.
  163.  
  164. BOTTOM - the cursor moves to the bottom line on the screen.
  165.  
  166. PAGEUP - the screen is scrolled backwards 20 lines through the
  167.     file. The cursor will stay at the same screen position unless
  168.     the full 20 line scroll was not possible.
  169.  
  170. PAGEDOWN - the screen is scrolled forwards 20 lines through the
  171.     file. The cursor will stay at the same screen position unless
  172.     the full 20 line scroll was not possible.
  173.  
  174. HOME - the cursor (and screen window if necessary) is moved to
  175.     the first column of the first line in the file.
  176.  
  177. GOTO - the user is asked to enter a number. The cursor (and
  178.     screen window if necessary) is moved to that line.
  179.  
  180. GOPOINT - the cursor is moved to the position last set using the
  181.     POINT command. The presence of a marked point is indicated by
  182.     a highlighted '1' (for 1st region end) in the status line.
  183.  
  184.  
  185. Commands Which Change the Current Line
  186.  
  187. DELCHAR - the character under the cursor is deleted. Characters
  188.     which were to the right of it are moved left one space.
  189.  
  190. BACKSPACE - the character before the cursor is deleted and the
  191.     cursor backs up one column.
  192.  
  193. TAB - if insert mode is active (an 'I' is showing in the status
  194.     line), then blanks are inserted before the character under
  195.     the cursor to move that character to the next tab-stop. If
  196.     insert mode is not active, the character under the cursor is
  197.     deleted first (it is replaced or typed over by the TAB).
  198.  
  199. DELWORD - the next word is deleted. If the cursor is within a
  200.     word, then the trailing portion of that word is deleted.
  201.  
  202. DELBACKWORD - the previous word is deleted. If the cursor is
  203.     within a word, then the leading portion of that word is
  204.     deleted.
  205.  
  206. DELEOL - the characters from the current position to the end of
  207.     the line are deleted.
  208.  
  209. INSERTSPECIAL - a special character is inserted before the
  210.     current character. The user is asked for the decimal value of
  211.     the character to be inserted. Characters with the high-order
  212.     bit set, or the ASCII HT character, should only be inserted
  213.     inside matching quotes, else they will be expanded into
  214.     blanks. CP/M end-of-file characters (decimal 26), carriage
  215.     returns (decimal 13) or linefeeds (decimal 10) should never
  216.     be inserted into the file.
  217.  
  218. UNDO - any changes made to the current line since the cursor was
  219.     moved onto that line are undone. Commands which require user
  220.     input or redraw the screen will finalize the line so that
  221.     changes made before then cannot be undone.
  222.  
  223. REDRAW - the entire screen is redrawn. This is useful if your
  224.     terminal goes bonkers.
  225.  
  226.  
  227. Commands Which Affect Entire Lines
  228.  
  229. DELLINE - the current line is deleted.
  230.  
  231. RETURN (this key cannot be redefined) - the normal action here is
  232.     to insert a new line after the current one, add blanks to
  233.     that line to make up the current left indent, and leave the
  234.     cursor after the indent column. The cursor does not have to
  235.     be at the end of a line for RETURN to work. The new line is
  236.     considered to be inserted, since that is the action when
  237.     RETURN is given when the cursor is not on the last line of
  238.     the file. The action of RETURN is modified when the multi-
  239.     column flag is set (an 'M' appears in the status line).
  240.  
  241. INSERTLINE - a new line is inserted after the current one, and
  242.     blanks will be added to it to come up to the current left
  243.     indent column. This command is NOT affected by the multi-
  244.     column flag.
  245.  
  246. JOIN - the next line is joined to the end of the current line.
  247.  
  248. SPLIT - the current line is split into two lines. The characters
  249.     from the cursor position onwards are moved to the next line.
  250.     The left indent column is ignored.
  251.  
  252. INDENT - the left indent is incremented by the current value of
  253.     the indent increment. The current line is adjusted to the new
  254.     indent amount if the line is longer than the new indent.
  255.  
  256. OUTDENT - the left indent is decremented by the current value of
  257.     the indent increment. The current line is adjusted to the new
  258.     indent amount if the line is longer than the old indent.
  259.  
  260. ADJUSTLINE - the current line is adjusted to the current indent
  261.     amount.
  262.  
  263.  
  264. Commands for Doing Global Changes and Searches
  265.  
  266. CHANGE - the user is asked for a subject ('from') string, a 'to'
  267.     string, and a count. The first 'count' occurrences of the
  268.     'from' string are changed to the 'to' string. The cursor will
  269.     be left at the end of the last changed string. If not enough
  270.     are found, the cursor will be left at the end of the file.
  271.     The changes done by CHANGE cannot be undone by UNDO even if
  272.     the last change is on the line the cursor ends up on. The
  273.     presence of a 'to' change string is indicated by a
  274.     highlighted 'C' in the status line.
  275.  
  276. CHANGENEXT - the previously selected 'from' and 'to' (if still
  277.     active), are used for a single further search. CHANGENEXT
  278.     freezes changes to the line before it operates, but the
  279.     single change it makes can be undone using UNDO. CHANGENEXT
  280.     can only be done if the 'C' and 'S' indicators are on.
  281.  
  282. FIND - the user is asked to enter a subject string and Ded
  283.     searches for the first occurence of that string after the
  284.     current position. The cursor is moved to just after the first
  285.     found occurrence. If none is found, the cursor is left at the
  286.     end of the file.
  287.  
  288. FINDNEXT - the next occurrence of the given search subject is
  289.     scanned for. The presence of a search subject is indicated by
  290.     an 'S' in the status line.
  291.  
  292.  
  293. Commands Dealing With Entire Regions of the File
  294.  
  295. POINT - this command marks the first end of a region. The
  296.     presence of such a first end is indicated by the presence of
  297.     a '1' in the status line.
  298.  
  299. ADJUST - the lines in the selected region are adjusted to the
  300.     current left indent.
  301.  
  302. SHIFTLEFT - the lines in the selected region are shifted left by
  303.     'IndentIncrement' characters, where 'IndentIncrement' is the
  304.     current value of the indent increment (default 4).
  305.  
  306. SHIFTRIGHT - the lines in the selected region are shifted right
  307.     by 'IndentIncrement' characters (blanks are inserted at the
  308.     beginning of the lines).
  309.  
  310. YANK - the text in the selected region is removed from the file
  311.     and put into the 'text buffer'. If the two end points are in
  312.     the same line and the same column, then the entire line is
  313.     taken. If they are in the same line but different columns,
  314.     then the text moved is a string from the single line. If the
  315.     end points are in different lines, then the entire region
  316.     between the end points (inclusive) is moved. This is the
  317.     quickest way to delete a large group of lines from the file.
  318.     Any previous text in the text buffer is freed first. The
  319.     presence of text in the 'text buffer' is indicated by a 'T'
  320.     in the status line.
  321.  
  322. COPY - a copy of the selected region is made in the 'text
  323.     buffer'. Other than copying instead of moving, this command
  324.     is the same as the YANK command.
  325.  
  326. PUT - a copy of the text in the 'text buffer' is inserted into
  327.     the file. If the buffered text is a string from a single
  328.     line, then it is inserted into the current line at the
  329.     current cursor position. If the buffered text is a group of
  330.     lines, then a copy of those lines is inserted before the
  331.     current line.
  332.  
  333. FORMAT - the format command is fairly simple in what it does, but
  334.     the effects of it can be quite complex. Basically, it takes
  335.     the text in the 'text buffer' and feeds it through the input
  336.     routine just as if the user had typed it in. Initially, the
  337.     user is asked whether or not to do line-by-line formatting.
  338.     If the answer is no, then the text on the saved lines is
  339.     pushed through in a single stream. Multiple blanks in the
  340.     buffered text are replaced by a single blank. If a line being
  341.     processed doesn't end in a blank, then a blank is generated
  342.     (this prevents words from being joined together). If the line-
  343.     by-line mode is selected, the further option of deleting
  344.     instead of inserting is offered. Ignore the delete option for
  345.     now. In line-by-line mode, a carriage return is generated at
  346.     the end of each of the processed lines. The key to this
  347.     command (and why it is called FORMAT) is that the word-wrap
  348.     flag is forced on during the processing, thus the text being
  349.     processed is formatted within the current left-indent to
  350.     wrap margin space. The multi-column flag is also respected,
  351.     so FORMAT can be used to create new columns. Paragraph
  352.     indents and hanging indents can be created in the new text by
  353.     properly positioning the cursor when issuing the FORMAT
  354.     command - the first character will be placed at the cursor
  355.     position, and the left indent will not take effect until the
  356.     next line. See the section on hints for more information on
  357.     using the FORMAT command. Currently, the FORMAT command has
  358.     some minor problems concerning the definition of "words".
  359.  
  360. PRINT - the selected group of lines is printed on the printer.
  361.     Output to the printer always uses fully expanded blanks.
  362.  
  363. WRITE - the user is asked for a file name, and the selected group
  364.     of lines is written to that file. The file is deleted and
  365.     re-created first. A disk-full condition during this operation
  366.     will be reported.
  367.  
  368. READ - the user is asked for a file name and a first and last
  369.     line number in that file. Those lines are copied into the
  370.     current file before the current line.
  371.  
  372.  
  373. Commands for Manipulating Files
  374.  
  375. DELETEFILE - the user is asked for the name of a file to delete.
  376.     This is useful for handling the 'disk full' condition.
  377.  
  378. NEWFILEEXIT - the user is asked for the name of another file to
  379.     edit. The current file is written out and the new file is
  380.     read in and edited. The sequence of files given on the CP/M
  381.     command line which ran Ded is not disturbed. A disk-full
  382.     condition during the write operation will be reported and the
  383.     user will be left editing the original file.
  384.  
  385. NEWFILEQUIT - the user is asked for the name of another file to
  386.     edit. All changes made to the current file in this editing
  387.     session are abandoned.
  388.  
  389. EXIT - the current file is written out, and the next one in Ded's
  390.     parameter list is read in and edited. If no more files
  391.     remain in the list (the usual case), Ded returns to CP/M.
  392.     Again, the disk-full condition is reported and the user is
  393.     left still editing the intact file.
  394.  
  395. QUIT - all changes made to the current file in this editing
  396.     session are abandoned and Ded moves on to the next file.
  397.  
  398.  
  399. Commands for Setting Options and Tabstops
  400.  
  401. SET - this command is used to set any of 3 different numeric
  402.     values, depending on the character typed after the SET
  403.     command (this character will not be echoed anywhere, but the
  404.     appropriate prompt will appear). The 3 parameters and their
  405.     code letters are:
  406.  
  407.     i - indent increment (any value from 0 to 70, default 4)
  408.     l - the current left margin (any value from 0 to 1 less
  409.         than the current wrap column, default 0)
  410.     w - the current word-wrap column (any value from 1
  411.         greater than the current left margin to 79, default
  412.         79)
  413.  
  414. BLANKMODE - this command cycles through the three modes of
  415.     storing blanks in disk files. The default mode, that of using
  416.     standard 8-column tabs, is compatible with CP/M, MSDOS, Dec
  417.     operating systems, etc. Blank-count mode is compatible only
  418.     with Ded, but is handled by the Draco compiler also. Fully
  419.     expanded mode is handled by everything, but takes up more
  420.     disk space and I/O time.
  421.  
  422. CLEARALL - all tabstops are cleared
  423.  
  424. TABSET - a tabstop is set for the current column
  425.  
  426. TABCLEAR - any tabstop in the current column is cleared
  427.  
  428. INSERT - the character insert mode is toggled between on and off.
  429.     Insert mode on is indicated by an 'I' in the status line.
  430.  
  431. WRAP - the word-wrap mode is toggled between on and off. Wrap
  432.     mode on is indicated by a 'W' in the status line. For the
  433.     purposes of word wrapping, along with word movement and word
  434.     deletion, characters of a word are letters, digits, '_', '^',
  435.     '"', ''', and '$'.
  436.  
  437. MULTICOLUMN - the multicolumn mode is toggled between on and off.
  438.     Multi-column mode on is indicated by an 'M' in the status
  439.     line.
  440.  
  441.  
  442. Some Hints and Tricks
  443.  
  444.      The left margin is of great use when typing in structured
  445. program source. Indentation tends to change a lot, so the INDENT
  446. and UNDENT commands should be on easily reached keys. Similarly
  447. the ADJUST, SHIFTLEFT and SHIFTRIGHT commands are of great use
  448. when modifying programs.
  449.  
  450.      A useful(?) trick involves the combination of word-wrap and
  451. multi-column mode. Set the left indent and wrap-column 1 column
  452. apart, then pick a key (say the vertical bar) and let it
  453. auto-repeat. You will get a column of that character stretching
  454. vertically down the file. Such a column can be inserted as a
  455. separator by setting insert mode on also.
  456.  
  457.      Because of the way the INDENT and OUTDENT commands operate,
  458. they can be used to create hanging indents in text. When a
  459. hanging indent is desired, use carriage return to go to the line
  460. to be hanging left, then use OUTDENT to move left to the desired
  461. outdent position. Type in the first few words of the line and
  462. then use INDENT to re-set the proper indent level. The current
  463. line will not move since the cursor is beyond the indent column.
  464. You can then continue typing and word-wrap will take over.
  465. Similarly, when entering structured program text, the INDENT or
  466. OUTDENT commands for the next line can be entered before hitting
  467. return or after hitting return. After is usually easiest.
  468.  
  469.      Additional capabilities of the FORMAT command can be used to
  470. manipulate columns of text. An example should suffice to
  471. illustrate some of the possibilities. Enter Ded editing a new
  472. file and enter the following (Ded command names are in upper
  473. case, comments are indicated by a '*', and additional
  474. instructions are indicated by ':'):
  475.  
  476.     SET w 20
  477.     WRAP
  478.     Now is the time for all good men to come to the aid of
  479.         their party. Now is the time for all good men to come
  480.         to the aid of their party. Now is the time for all
  481.         good men to come to the aid of their party.
  482.     HOME
  483.     EOL
  484.     WRAP
  485.     : space to column 22 (cursor in column 22)
  486.     SET w 79
  487.     SET l 21
  488.     MULTICOLUMN
  489.     : hit RETURN until cursor is in last line of text
  490.     * You have now created a rectangular block of text - the
  491.         last set of RETURNs served to pad all of the lines
  492.         to exactly 21 characters each.
  493.     HOME
  494.     POINT
  495.     : move cursor to last line
  496.     COPY
  497.     * the rectangular region is now in the text buffer
  498.     HOME
  499.     EOL
  500.     SET l 21
  501.     FORMAT y n
  502.     * we have created a second, identical column - nothing
  503.         special so far.
  504.     TOP
  505.     INSERT
  506.     FORMAT y n
  507.     * the new column has been INSERTED between the other two.
  508.     TOP
  509.     FORMAT y y
  510.     * the new third column has been DELETED (if nothing else,
  511.         it's fun to watch!)
  512.  
  513.      With appropriate use of the FORMAT command and the various
  514. modes, it is possible to change a single column of material into
  515. 2 or more columns, and vice versa (SHIFTLEFT is useful here to
  516. wipe away the left-hand column, and FORMAT with the delete option
  517. to wipe away the right-hand column). 
  518.  
  519. Configuring Ded
  520.  
  521.      Configuring Ded for your system and preferences takes two
  522. steps. The first step is that of configuring it to generate the
  523. appropriate terminal control sequences for your terminal or
  524. computer. This is normally only done once. The process is
  525. described in the writeup for the CONFIG program, which is also
  526. used to similarly configure other programs written using the
  527. Draco terminal independent CRT routines. In summary, perform the
  528. following steps:
  529.  
  530.     1) Have files CONFIG.COM, CONFIG.DAT and DED.SET on your
  531.     default drive. Enter
  532.  
  533.         config ded
  534.  
  535.     2) Issue the CONFIG command 'L' and find your terminal on the
  536.     list of terminals. If it isn't there, use the information
  537.     provided with your terminal to create a new entry in the
  538.     database using the 'C' command.
  539.  
  540.     3) Issue the CONFIG command 'S' and select your terminal
  541.     type.
  542.  
  543.     4) Issue the CONFIG command 'P' to configure Ded.
  544.  
  545.     5) Issue the CONFIG command 'Q' to return to CP/M.
  546.  
  547.     6) Enter
  548.  
  549.         ren ded.cnf=ded.com
  550.  
  551.      The second configuration step is used to assign keystroke
  552. sequences to the various Ded commands. This can be done as many
  553. times as desired until you are happy with your assignment. Ded
  554. allows keystroke sequences to be any of the following:
  555.  
  556.     a single control character (other than CR, also known as
  557.     CONTROL-M).
  558.  
  559.     a single character in the range (hex) 0x80 - 0xff
  560.  
  561.     a common escape character (usually ESC, CONTROL-[) followed
  562.     by any single character
  563.  
  564.     the common escape character followed by one of a set of
  565.     'second escape characters', followed by any single
  566.     character
  567.  
  568. During the configuration process, you must inform the
  569. configuration program (DCONFIG.COM) of the common escape
  570. character and any 'second escape characters' (up to 5).
  571.  
  572.      To perform the keystroke configuration, make sure files
  573. DED.CNF (created by the other configuration process) and
  574. DCONFIG.COM are on your default drive. Enter
  575.  
  576.     dconfig
  577.  
  578. The program will read in a copy of Ded from DED.CNF and present
  579. you with a menu of 4 choices. Choice 1) allows you to examine the
  580. current set of keystroke assignments in file DED.CNF. Choice 2)
  581. allows you to define your own keystoke assignment. You will have
  582. to enter your common escape character, any 'second escape
  583. characters' and your keystroke choices for the various Ded
  584. commands. When entering keystroke choices, the program will
  585. display the current value. You can keep this value by pressing
  586. RETURN, or replace it by typing the chosen keys. The program will
  587. not allow any duplicate sequences or invalid keystrokes. The keys
  588. you type will not be echoed in any way, so it is a good idea to
  589. examine the assignments (using choice 1) when you are done.
  590.  
  591.      Choice 3) writes the current settings out to a new file
  592. called DED.COM, along with all of the code for Ded. The only
  593. difference between DED.CNF and DED.COM is the selected keystroke
  594. sequences, thus you can rename an existing DED.COM as DED.CNF and
  595. configure from it. Choice 4) returns you to CP/M. Ded should now
  596. be ready to run.
  597.