home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / misc / xed / xed.doc < prev    next >
Encoding:
Text File  |  1994-07-15  |  48.0 KB  |  1,212 lines

  1.  
  2.  
  3.                    XED version 1.0a heX EDitor
  4.  
  5.  
  6.              A Unique Hexadecimal/Binary file editor
  7.  
  8.  
  9.               (c) Copyright 1993-94 David L. Dight
  10.                       All Rights Reserved.
  11.  
  12.  
  13.        P.O. Box 280, Kings Cross, N.S.W.  2011  AUSTRALIA
  14.          Fax: +61 2 233 2929,  On CompuServe:100033,2563
  15.            or the Internet davidd@interconnect.com.au
  16.  
  17.  
  18.                                -+-
  19.  
  20.  
  21.                           User's Guide
  22.  
  23.  
  24.                   Revision 1.0.a.4 16-Jul-1994.
  25.  
  26.  
  27.                                -+-
  28.  
  29.  
  30.                             Contents
  31.                             ========
  32.  
  33.         1. XED - an overview.
  34.  
  35.         2. Features
  36.  
  37.             a) Unlimited file size
  38.             b) Modify file length
  39.             c) Mouse support
  40.             d) EGA/VGA alternate screen modes
  41.             e) Undo and Undo all
  42.             f) Edit entire paragraphs as strings
  43.             g) Bitwise and binary
  44.             h) Create compiler readable data definitions
  45.             i) Online help, ASCII tables and Text filter
  46.             j) Multiple markers
  47.             k) Unassembler
  48.  
  49.         3. Command line
  50.  
  51.         4. Movement
  52.  
  53.         5. Editing
  54.  
  55.         6. Other functions and notes
  56.  
  57.             a) Searching
  58.             b) Goto offset
  59.             c) Save
  60.             d) Insert paragraph
  61.             e) Copy paragraph
  62.             f) Delete paragraph
  63.             g) Seven/Eight bit ASCII
  64.             h) File information
  65.             i) DOS shell
  66.             j) Quit
  67.             k) Help menu
  68.             l) Bitwise operations
  69.             m) Binary display/edit
  70.             n) Assignment expressions
  71.             o) Fonts
  72.             p) C data definition creation
  73.             q) ASCII tables
  74.             r) Text filter
  75.             s) Using markers
  76.             t) Using the unassembler
  77.  
  78.         7. Program Environment
  79.  
  80.         8. Keyboard Summary
  81.  
  82.         9. Notes, Disclaimer
  83.  
  84.  
  85.                                -+-
  86.  
  87.  
  88. 1. XED - an overview.
  89. =====================
  90.  
  91. XED is a simple to use hex file editor. XED permits binary files
  92. to  be  edited in much the same way as normal text files.  Files
  93. are  initially viewed as containing (bytes/16) paragraphs. Bytes
  94. from  these paragraphs are presented on the screen as hex digits
  95. to left, and as ASCII characters to the right. In this document,
  96. the meaning of "line" and "paragraph" will be the same.
  97.  
  98. Typical  uses include repair  of backup file headers; editing of
  99. string constants in executables; creation or expansion of binary
  100. data  files or  any  other  situations which  require  low-level
  101. modification to a file.
  102.  
  103. Unlike  many other hex editors, XED is not restricted to editing
  104. the  file  as  it appears on the disk. The file is viewed  as  a
  105. stream  of binary characters. This allows you to edit and change
  106. any  binary file. The only restriction to the size of the edited
  107. file is your hard disk capacity.
  108.  
  109. XED  starts  in  hex mode. To toggle over to the  ASCII  window,
  110. press  the  TAB  key. The cursor may be moved  with  the  normal
  111. cursor/page  keys.  A  simple reverse video  block  selects  the
  112. current byte which may be edited on screen. You may also edit an
  113. entire  paragraph by pressing the INS key. If you are  in  ASCII
  114. mode,  the current paragraph can be edited as a string.  In  hex
  115. mode, XED converts the paragraph into a hex string (2 hex digits
  116. per  byte).  The  length of the paragraph can  be  increased  or
  117. decreased.
  118.  
  119. To search, press Shift+F8. Depending on the mode you are in. XED
  120. will  prompt for a hex or an ASCII string. F8 repeats  the  last
  121. search.
  122.  
  123. To move to  specific  offset press F9. Offsets can be entered in
  124. decimal, hex or octal.
  125.  
  126. F4  will save the current file to disk and by default, create  a
  127. backup copy of your original file.
  128.  
  129.  
  130.                                -+-
  131.  
  132.  
  133. 2. Features.
  134. ============
  135.  
  136.  a) Unlimited file size
  137.  
  138.     XED  can  edit files as big as your disk storage permits.  By
  139.     default,   XED  will  use  extended  memory.   If   that   is
  140.     unavailable or full, expanded memory will be used.  If  again
  141.     this  is  unavailable or full, XED will use the TMP  or  TEMP
  142.     environment  variable to locate the drive  and  directory  to
  143.     store  the file buffer on disk. For small files the hard-disk
  144.     will  never be required. However for larger files, this  will
  145.     be  used.  (A  note: if you use a ramdisk and have  your  TMP
  146.     variable  set  to  that  drive, make sure  you  set  the  TMP
  147.     variable to your hard disk. XED will need about two to  three
  148.     times  the  size of the file in bytes for buffer  storage  on
  149.     the disk).
  150.  
  151.  
  152.  b) Modify file length
  153.  
  154.     XED  permits bytes to be inserted or deleted from any  binary
  155.     file.  This  means  that executable files, hidden  files  and
  156.     device  files  can be modified. Of course,  you  should  know
  157.     what  it  is you are editing before attempting to  do  so.  A
  158.     typical  example  may  be  to repair/insert  a  header  in  a
  159.     corrupted backup file. Blank paragraphs and paragraph  copies
  160.     can  also  be  inserted.  XED displays  a  '+'  next  to  any
  161.     paragraph  that is longer than 16 bytes, and a  '-'  next  to
  162.     paragraphs less than 16 bytes.
  163.  
  164.  
  165.  c) Mouse support
  166.  
  167.     XED  can  be  used with a mouse. You can click  on  bytes  to
  168.     edit;  scroll the edit window; select paragraphs to be edited
  169.     and  select  commands from a menu. The  use  of  a  mouse  is
  170.     recommended.
  171.  
  172.  
  173.  d) EGA/VGA alternate screen modes
  174.  
  175.     XED  will default to the 25 line display. If you have an EGA,
  176.     you can  also use the 43 line  display mode. If  you  have  a
  177.     VGA,  28, 43 or 50 line modes are also available. See the  -l
  178.     option.
  179.  
  180.  
  181.  e) Undo and Undo all
  182.  
  183.     When  a paragraph has been modified, XED retains the original
  184.     contents.  The  paragraph may then be undone  at  anytime  by
  185.     pressing  ALT+U.  All  paragraphs that have  changed  can  be
  186.     undone as well by pressing ALT+A. XED displays a '!' next  to
  187.     any paragraph that has changed.
  188.  
  189.  
  190.  f) Edit entire paragraphs as strings
  191.  
  192.     An  entire paragraph can be edited as an ASCII string  or  as
  193.     an  ASCII string of hex digits. This permits the insertion or
  194.     deletion   or  modification  of  any  paragraph,   with   any
  195.     character.  The  normal inline editing  functions  are  fully
  196.     supported.  Any  ASCII character that is used  by  XED  (e.g.
  197.     TAB) can be entered in hex mode.
  198.  
  199.  
  200.  g) Bitwise, binary and assignment expressions
  201.  
  202.     XED supports a number of bitwise operations when in hex mode,
  203.     e.g. shift, rotate and 1's complement.   The current byte can
  204.     be viewed and edited in binary (see Editing/binary display).
  205.  
  206.     Simple assignment expressions can be executed on  the current
  207.     byte. For example, the following expression can be entered to
  208.     switch off the first 3 bits:
  209.  
  210.         [<offset>] &= ~0x7
  211.  
  212.     XED supports the full set of 'C' assignment  operators plus a
  213.     few non 'C' operators. See Section 6.n.
  214.  
  215.  
  216.  h) Create compiler readable data definitions
  217.  
  218.     It is often necessary to convert a binary file into a compiler
  219.     readable format. This usually requires a program to be created
  220.     to do the task. XED can  do this for  you by creating 'C' data
  221.     definitions from any file.
  222.  
  223.  
  224.  i) Online help, ASCII tables and Text filter
  225.  
  226.     Various help screens are available within XED depending on the
  227.     situation.  A Dec/Hex/Oct/Bin/ASCII table is also provided. An
  228.     additional feature in these tables displays individual charac-
  229.     ter counts for the current file.
  230.  
  231.     XED  allows  you  to  view  the  current  file  through  three
  232.     different text filters, which permits easier comprehension  of
  233.     data in particular editing situations.
  234.  
  235.  
  236.  j) Multiple markers
  237.  
  238.     XED permits up to 39 file markers to be set within the current
  239.     file. A mark list window  is also  available for  quicker mark
  240.     retrieval.  Multiple  markers  can be  very useful  if you are
  241.     working on a number of different offsets within the file.  The
  242.     mark list permits easy viewing and retrieval of your marks.
  243.  
  244.  
  245. k) Unassembler
  246.  
  247.     XED permits data to unassembled for viewing. A feature of this
  248.     capability allows you to align starting byte offsets to decode
  249.     various  instructions correctly. The 80x86  family opcodes are
  250.     fully  supported including true  32 bit,  floating point 80x87
  251.     and emulated instructions.
  252.  
  253.  
  254.                                -+-
  255.  
  256.  
  257. 3. Command line.
  258. ================
  259.  
  260.     XED  accepts the name of the file to edit (no wildcards) plus
  261.     a number of switchable options.
  262.  
  263.     An  optional response file can be specified. A response  file
  264.     is   simply  a  text  file  containing  a  list  of  switches
  265.     (including  a filename).  To specify a  response file, prefix
  266.     the response filename with the at '@' character, for example:
  267.  
  268.         xed @myopts
  269.  
  270.     You can debug your response file switches by appending the -h
  271.     switch to the parameter list.  XED will respond with the help
  272.     message, with  your correctly parsed switches  and or  values
  273.     listed in the respective switch 'default' values.
  274.  
  275.     If no file or response file is given, XED will search for the
  276.     default response file "XED.RSP".  If this  file is present in
  277.     the current directory, it will be read.
  278.  
  279.     Response files provide a way  of configuring  XED  yet  still
  280.     permit different files to be edited. For example, the default
  281.     response file could contain your display or backup options or
  282.     other switches you may need, but  not the filename.  XED will
  283.     then read the response file and prompt for the file to edit.
  284.  
  285.     The switches are summarised below:
  286.  
  287.        usage: XED [-abdefghijlmnprstuvx7?!] <[@]file>
  288.  
  289.        -a start in ASCII mode, default False
  290.        -b make Backup before save, default True
  291.        -d force Disk based virtual memory, default False
  292.        -e Expert mode, default False
  293.        -f use system Font, default False
  294.        -g show system characters, default False
  295.        -h(help) print this Help message, default True
  296.        -i Ignore machine test, default False
  297.        -j enable mouse Jump ("snapto"), default True
  298.        -l <set screen Lines [25 28 43 50]>, default 25
  299.        -m Mono screen, default False
  300.        -n biNary display, default False
  301.        -p disable Pointing device, default False
  302.        -r Read only, default False
  303.        -s enable Sound, default True
  304.        -t <start in Text filter#>, default 1
  305.        -u Display hex bytes using Upper case, default False
  306.        -v <resident Virtual memory (Kb)>, default 128
  307.        -x <eXecute DOS command on startup>
  308.        -7 start with 7 bit ASCII display, default False
  309.        -? print Usage message, default False
  310.        -! about XED
  311.  
  312.  
  313.                                Notes.
  314.     Switches that do not require  a  parameter  can  be  'stacked'
  315.     together on one switch (which can be a '-' or a '/'). The last
  316.     switch stacked can also be a switch that takes a parameter for
  317.     example:
  318.  
  319.             xed -p -f -a -l28 -d myfile.bin
  320.  
  321.     can be regrouped and passed as follows:
  322.  
  323.             xed myfile.bin -pfadl28
  324.  
  325.     The file name can appear any where on the command  line. If a
  326.     file  is not  specified, XED will  prompt  for  the filename.
  327.     Similarly, if a switch that  requires  a  parameter  is given
  328.     without  the parameter,  XED  will prompt you for it.  If the
  329.     filename is omitted, XED will prompt for it last.
  330.  
  331.     Notes about each switch follows:
  332.  
  333.    -a    XED  defaults to hex mode on startup. Use this switch  to
  334.          start in ASCII mode.
  335.    -b    By  default,  XED creates a backup of any file  that  has
  336.          been  saved,  in the directory where the  file   resides.
  337.          Use this switch to disable backup creation.
  338.    -d    Forces  XED to use the disk only for buffering. This  may
  339.          be  necessary  if your  extended/expanded memory  is  not
  340.          large  enough to hold the  file buffer. XED will normally
  341.          detect  this  situation anyway.  Use this switch  if  you
  342.          still experience problems.
  343.    -e    Disables yes/no prompts with non-trivial operations.
  344.    -f    Disable   internal   font.  XED  reprograms   the   video
  345.          controller  to  use  a  different text  font.   Use  this
  346.          switch  if characters appear corrupted. CGA  and  certain
  347.          EGA  adaptors will need this switch.  You may also select
  348.          this option if you are examining files  that use some  of
  349.          the redefined font characters.
  350.    -g    By default, XED uses 32 characters in the  font table for
  351.          system  purposes.  These are  not displayed.  This option
  352.          forces XED to display these characters.
  353.    -h    Prints a switch summary with switch descriptions.
  354.    -i    XED  will  only  run  on  PC/AT  or  greater  (386's  and
  355.          greater  are  of course ok).  XED will test your  machine
  356.          to  see  if it conforms.  On some early systems,  machine
  357.          ID's may not be recognised. If this is the case, and your
  358.          system is a 286 or greater, use this switch.
  359.    -j    By default, the mouse cursor will jump to the exit button
  360.          in most windows or to  the scroll characters in  the text
  361.          filter and ASCII tables. After leaving a window, XED will
  362.          move the cursor to the position it was prior to executing
  363.          the command. To disable this, use this switch.
  364.    -l<n> If  you  have an EGA, you can use 43 line mode (eg -l43).
  365.          With VGAs, you can choose from 28, 43 or 50 line modes.
  366.    -m    Force monochrome display attributes.
  367.    -n    When the binary display flag is set, the currently selec-
  368.          ted byte will be displayed in binary at  the far  left of
  369.          the screen (replacing the paragraph offset), see F5.
  370.    -p    XED will use the  mouse by default if present.  The mouse
  371.          can be disabled with this switch.
  372.    -r    The current file cannot be written (read only).
  373.    -s    XED  uses  bleeps  when issuing warning  messages.  These
  374.          can be disabled with this switch.
  375.    -t<n> This switch will force XED to enter the text filter wind-
  376.          ow number n (1-3) on starting.
  377.    -u    By default, XED displays hex digits (A-F) in lower case.
  378.          This  switch  forces upper case.  Hex  offsets are always
  379.          displayed using upper case.
  380.    -v<n> By  default,  XED will use 128Kb of DOS  memory  for  the
  381.          virtual heapspace.  This  can  be  adjusted  to suit your
  382.          memory availability (maximum value is 640).
  383.    -x<s> Execute DOS command on startup.  The  command  string can
  384.          contain  parameters  as  along  as  the  entire string is
  385.          enclosed in double quotes.
  386.    -7    By  default, XED displays the full  8 bit ASCII character
  387.          set. This switch selects 7 bit display.
  388.    -?    Print a short usage message.
  389.    -!    Print the About XED message.
  390.  
  391.  
  392.     Return value
  393.     ------------
  394.  
  395.     XED will return the following values to DOS:
  396.  
  397.         0   -   normal exit, no error.
  398.         1   -   either the file was not found or the response
  399.                 file was not found.
  400.         2   -   XED couldn't initialise the argument parser.
  401.         3   -   the executable XED.EXE is corrupt.
  402.         4   -   insufficient memory to execute.
  403.         5   -   XED couldn't initialise virtual memory.
  404.        +6   -   _vm_errors + 5 if any.
  405.  
  406.  
  407.     !!  if you are interested in the command line argument parsing
  408.         routine used in XED, please contact me on CompuServe or on
  409.         the Internet and I will upload it to you. The routines are
  410.         written in C++  and are a collection of  argument  parsing
  411.         objects. Compiles in DOS/UNIX.
  412.  
  413.  
  414.                                -+-
  415.  
  416.  
  417. 4. Movement.
  418. ============
  419.  
  420.     The  cursor keys will locate the software cursor anywhere  on
  421.     the  screen  in  either hex or ASCII modes. The  screen  will
  422.     scroll  one page at a time if up or down are pressed  on  the
  423.     first  or  last  lines respectively. HOME/END  moves  to  the
  424.     first and last byte on the current paragraph. PGUP/PGDN  move
  425.     one  page,  Crtl+PGUP/PGDN will move 10 pages. Crtl+HOME  and
  426.     Crtl+END will move to the first and last paragraph.
  427.  
  428.     If  you  are using the mouse, the scroll bar to the right  of
  429.     the  screen supports mouse activated movement. If  you  click
  430.     on  the  top  or bottom arrows, XED will execute a PGUP/PGDN.
  431.     If  you  hold the button down, XED will continue to page.  If
  432.     you  click  anywhere  on  the  bar,  XED  will  move  to  the
  433.     approximate  position  relative to the  whole  file.  If  you
  434.     click  on the bar position just below the top arrow  or  just
  435.     above  the  bottom  arrow, XED will execute  a  Crtl+HOME  or
  436.     Crtl+END.
  437.  
  438.     The relative offset block in the scroll bar can be picked  up
  439.     and  moved  within the scroll bar, moving the current  offset
  440.     relative to the whole file.
  441.  
  442.     The UP/DOWN arrows will scroll the page on the window limits.
  443.  
  444.  
  445.                                -+-
  446.  
  447.  
  448. 5. Editing.
  449. ===========
  450.  
  451.     A  reverse  video  software  cursor  points  to  the  current
  452.     offset.  The offset is displayed in both hex and  decimal  at
  453.     the  top right of the screen. Moving the cursor or page  keys
  454.     will  relocate  the cursor. If you are using the  mouse,  you
  455.     can  click on any byte to relocate the cursor (if you are  in
  456.     hex  mode you can click on a byte in the ASCII window  -  and
  457.     vice-versa).  Press TAB  to toggle between  the ASCII and hex
  458.     windows.
  459.  
  460.     In  hex mode, you can enter hex digits directly at the cursor
  461.     and  in  ASCII, normal ASCII characters can be  entered.  XED
  462.     will move  the cursor to  the right after a valid  entry.  To
  463.     save the changes you have made to the current paragraph,  you
  464.     must  press ENTER. XED will tag the current paragraph with  a
  465.     '!'.
  466.  
  467.     If  the current  paragraph  has changed but  has not yet  been
  468.     committed (i.e. ENTER has not been pressed),  XED will display
  469.     a '' to left of the Hex display.
  470.  
  471.     When in Hex mode, the following bitwise operations are recogn-
  472.     ized:
  473.  
  474.         press   <   to shift left by 1 bit
  475.           "     L   "  rotate left by 1 bit
  476.           "     >   "  shift right by 1 bit
  477.           "     R   "  rotate right by 1 bit
  478.           "     +   "  increment
  479.           "     -   "  decrement
  480.           "     ~   "  bitwise NOT (1's complement)
  481.           "     `   "  negate (2's complement)
  482.  
  483.     These keys operate on the currently selected byte.
  484.  
  485.     As with any edit, you must press ENTER before moving off  the
  486.     line to keep your changes.
  487.  
  488.     When in Hex mode, the current byte can be  edited  in  binary
  489.     mode by pressing Shift+F5.  (You  must  first  select  binary
  490.     display mode by pressing F5 if you are not in this mode).  If
  491.     you are using the mouse, you  can click on the binary display
  492.     at the left of the screen to edit in binary.
  493.  
  494.     The cursor  will move to the far left of the screen where the
  495.     byte is displayed.  You  may  move the  cursor to any bit and
  496.     enter a 1 or a 0.  The bitwise operator  keys described above
  497.     are  also active. Mouse users can also toggle individual bits
  498.     on or off by  clicking on  any bit.  To save  the byte, press
  499.     ENTER (or click the right button). This will exit from binary
  500.     mode and take you back to Hex mode. To save any binary  edits
  501.     you must press  ENTER again before leaving the line. To abort
  502.     binary editing, press ESCAPE.
  503.  
  504.     'C'  like  assignment expressions can be executed by pressing
  505.     F6.  After  entering  the  expression,  XED  will  update the
  506.     current byte with  the result.  Press  ENTER  to  accept  the
  507.     changes. See section 6.n below for more details.
  508.  
  509.     To  edit  an entire paragraph, press INS. If you are  in  hex
  510.     mode,  the current paragraph will be translated into an ASCII
  511.     string  of  two  digit hex bytes.  This string  can  then  be
  512.     edited on the bottom  line of the screen. XED recognises  the
  513.     usual  in-line  editing keys (such as DEL,  INS,  HOME,  END,
  514.     LEFT,  RIGHT,  BACKSPACE,  and so on).  In  ASCII  mode,  the
  515.     string is presented for editing on the last line.  For inline
  516.     editing help, press F1 (or click on the '?').
  517.  
  518.     Up  to  80  ASCII or 40 hex bytes can be inserted or  deleted
  519.     per  paragraph.  When  in hex mode, two hex digits are needed
  520.     for each byte - bytes that require one hex digit only must be
  521.     entered with a leading '0'.  To save changes you have made to
  522.     the  current paragraph, you must press ENTER. To abort, press
  523.     ESCAPE. XED displays  a  '+' if the paragraph is greater than
  524.     16 bytes, and '-' if it  is  less.  The  new  length  of  the
  525.     paragraph is printed on the bottom line.
  526.  
  527.     If  you  are using the mouse, you can click on the  paragraph
  528.     offset at the left of the screen to edit that paragraph.  The
  529.     cursor can be located within the string using the mouse.
  530.  
  531.     You  may  return  to  an  edited paragraph  and  restore  its
  532.     original   contents   by  pressing   ALT+U.   If   you   then
  533.     subsequently  re-edit  the paragraph,  XED  will  retain  the
  534.     previously  edited paragraph in the undo buffer.  This  means
  535.     you  can  still  lose the original contents! (of  course  you
  536.     don't have to save the file).
  537.  
  538.     Inline  editing is available on any operation that takes  the
  539.     cursor  to  the  bottom line (this includes  whole  paragraph
  540.     edits, search specs and goto  offset). Apart from  the normal
  541.     cursor  keys,  backspace and INS/DEL,  XED  recognises  ALT+D
  542.     (delete to end of line) and F3 (get last edited string).
  543.  
  544.     All  changes  can be undone by pressing ALT+A. Unfortunately,
  545.     this will NOT undo whole paragraph insertions or deletions.
  546.  
  547.     Press  F1  for help or click on the '?' on the top line.  The
  548.     help  screen  can also be used as a menu.  Any command can be
  549.     entered or clicked on from the menu to execute.
  550.  
  551.     If  you click on the filename, XED will execute F10 file info
  552.     function. If you click on the two shutter characters  at  the
  553.     top left. XED will exit.
  554.  
  555.     When in any edit  mode, if  the mouse  location when the left
  556.     button is clicked is not valid, the  left button will execute
  557.     an ESCAPE.  The  mouse buttons default to ESCAPE for the left
  558.     button and ENTER for the right button.
  559.  
  560.  
  561.                                -+-
  562.  
  563.  
  564. 6. Other functions and notes.
  565. =============================
  566.  
  567.  a) Searching
  568.  
  569.     To  search  for  a string or byte, press Shift+F8.  In  ASCII
  570.     mode,  you can enter an ASCII string on the bottom  line.  In
  571.     hex  mode,  you can enter one or more hex digits.  To  search
  572.     again, press F8. You  can  interrupt  a  search  by  pressing
  573.     ESCAPE.
  574.  
  575.     To automatically mark  the search find, press Crtl+F8 instead
  576.     of F8.  In this  way you  can record  search finds  for later
  577.     review.
  578.  
  579.  
  580.  b) Goto offset
  581.  
  582.     To goto  an offset, press F9. XED will prompt you to enter an
  583.     offset. You can enter the value in Decimal, Hex or Octal, for
  584.     example:
  585.  
  586.             285053      (dec)
  587.             0x4597D     (hex)
  588.             01054575    (oct)
  589.  
  590.     You can also goto  a mark by entering the desired mark number
  591.     prefixed with a '%'.
  592.  
  593.  
  594.  c) Save
  595.  
  596.     To  save the current file press F4. XED will create a  backup
  597.     of  the  current file by default. To disable this, start  XED
  598.     with the -b switch (see above).
  599.  
  600.  
  601.  d) Insert paragraph
  602.  
  603.     F2  will  insert  a blank paragraph (16 bytes  -  all  nulls)
  604.     below  the  current paragraph. Use this to insert  data.  The
  605.     length  of the new paragraph can be modified by editing  (see
  606.     INS  above).  By default XED will prompt you to  confirm  any
  607.     editing  function  such  as insert paragraph.  XED  will  NOT
  608.     prompt in expert mode.
  609.  
  610.  
  611.  e) Copy paragraph
  612.  
  613.     F3 will copy and insert the current paragraph below.
  614.  
  615.  
  616.  f) Delete paragraph
  617.  
  618.     Shift+F2  will  delete  the  current  paragraph regardless of
  619.     whether it has been expanded or  contracted.   XED  will  NOT
  620.     prompt in expert mode.
  621.  
  622.  
  623.  g) Seven/Eight bit ASCII
  624.  
  625.     By  default, XED will display ASCII characters (in the  ASCII
  626.     window) as 8 bit characters. To toggle between 7 and  8  bit,
  627.     press F7. Some of the low order ASCII characters and all  the
  628.     high bit characters will displayed as a period '.'
  629.  
  630.  
  631.  h) File information
  632.  
  633.     To  obtain information about the current file, press F10. XED
  634.     will  display  the file size (both on disk  -  in  bytes  and
  635.     paragraphs,  and edit size in bytes), the time/date  of  last
  636.     modification,  any  attributes (A=archive  H=hidden  S=system
  637.     R=read-only) and the number of changes (if any). A change  is
  638.     any  change  to one paragraph. Also calculated and  displayed
  639.     is the file CRC32 and the free disk buffer space.
  640.  
  641.     Mouse  users can  click on the  filename on the first line of
  642.     the screen to execute this command.
  643.  
  644.  
  645.  i) DOS shell
  646.  
  647.     To  start  a DOS shell press ALT+X. XED will swap itself  out
  648.     to expanded/extended memory or to disk if necessary.
  649.  
  650.  
  651.  j) Quit
  652.  
  653.     To  exit press ESCAPE. XED will prompt you to confirm. If you
  654.     are  in  expert mode, XED WILL NOT PROMPT, EVEN IF  THE  FILE
  655.     HAS  CHANGED.  Mouse users can click on the button    at  the
  656.     top  left  of the screen to execute this command.  Note:  the
  657.     right  mouse  button defaults to ENTER when in  XED  and  can
  658.     therefore be used for confirmations.
  659.  
  660.     Shift+F4 aborts XED without  prompting.  You can  abort while
  661.     XED is loading a file by pressing 'q'.
  662.  
  663.  
  664.  k) Help menu
  665.  
  666.     Press  F1 for the help screen. Mouse users can click  on  the
  667.     question mark on the top line of the screen. The help  screen
  668.     also doubles as a simple menu.  Any command  can  be  entered
  669.     from the menu. PGUP/PGDN move between the two help screens.
  670.     Mouse  users can  click on   any character  within a  command
  671.     to execute that command.
  672.  
  673.  
  674.  l) Bitwise operations
  675.  
  676.     These are available only in  Hex and Binary edit  modes.  See
  677.     Section 5 for more details. To edit in binary, you must first
  678.     select binary display mode by pressing F5.
  679.  
  680.  
  681.  m) Binary display and edit
  682.  
  683.     F5  toggles  the  binary  display.   When  on,  the currently
  684.     selected byte will be displayed in binary at the far  left of
  685.     the screen (replacing the current paragraph offset).  To edit
  686.     the  current byte in binary,  press  Shift+F5 or click on the
  687.     binary displayed byte.  Mouse users can  click on  individual
  688.     bits in the byte which will toggle the bit on or off.
  689.  
  690.  
  691.  n) Assignment expressions
  692.  
  693.     To enter an assignment expression, press F6. XED will convert
  694.     the current byte to  a simple  assignment expression,  in the
  695.     form:
  696.  
  697.         [<offset>] = 0x<hex byte>
  698.  
  699.     for example:
  700.  
  701.         [4CD0] = 0xe7
  702.  
  703.     You  can  only  edit  the  operator  and  value  parts of the
  704.     expression, which is printed on  the bottom line for editing.
  705.     Use the cursor keys, backspace, etc, to edit  the expression.
  706.     You may enter any  of the standard 'C' assignment  operators.
  707.     The  right value (rval) must be  an integer  constant, in the
  708.     form:
  709.  
  710.         0x??        hex digit(s) (e.g. 0xF6, 0x7)
  711.         0???        octal digit(s) (e.g. 045)
  712.         ?????       decimal digit(s) (e.g. 45)
  713.         ????????b   binary digit(s) (e.g. 10101010b, 1100b)
  714.  
  715.     and no subexpressions or parentheses are recognised.
  716.  
  717.     The following 'C' assignment operators are recognised:
  718.  
  719.         a = b    simple assignment
  720.         a += b   plus equals          (a = a + b)
  721.         a -= b   minus equals         (a = a - b)
  722.         a *= b   times equals         (a = a * b)
  723.         a /= b   divide equals        (a = a / b)
  724.         a &= b   bitwise AND equals   (a = a & b)
  725.         a |= b   bitwise OR equals    (a = a | b)
  726.         a ^= b   bitwise XOR equals   (a = a ^ b)
  727.         a %= b   modulus equals       (a = a % b)
  728.         a <<= b  left shift equals    (a = a << b)
  729.         a >>= b  right shift equals   (a = a >> b)
  730.         a <op> ~<val>               1's complement
  731.  
  732.     and the following non 'C' assignment operators:
  733.  
  734.         a l= b    left rotate equals  (lrot (a, b))
  735.         a r= b    right rotate equals (rrot (a, b))
  736.         a <op> `<val>                2's complement
  737.  
  738.     The 1's '~' complement operator is also  recognised. This can
  739.     precede any rval, to 'NOT' the value before assignment. A 2's
  740.     complement operator is also available, '`'.  This is used  in
  741.     the same way as  the 1's complement operator, and returns the
  742.     1's  complement  plus 1  (the same as the 'C' '-' unary minus
  743.     (sign change) operator).
  744.  
  745.     When editing  an expression,  you can view a summary  of  the
  746.     expression types by pressing F1 (or click on the '?').
  747.  
  748.     Examples:
  749.  
  750.         [<offset>] |= 0x3           (switch on bits 0-1)
  751.         [<offset>] &= ~0x3          (switch off bits 0-1)
  752.         [<offset>] *= 10            multiply by 10 (dec)
  753.         [<offset>] += 1             increment
  754.         [<offset>] <<= 3            shift left 3 bits
  755.         [<offset>] l= 3             rotate left 3 bits
  756.         [<offset>] ^= 10011b        xor with 0x13
  757.         [<offset>] = `111b          assign 2's complement of 111b
  758.                                     (=0xF9)
  759.         [<offset>] >>= `0376        right shift by the 2's
  760.                                     complement of octal 376 (0xfe)
  761.                                     (=0x2)
  762.  
  763.  
  764.  o) Fonts
  765.  
  766.     XED reprograms the video  controller to accommodate both  the
  767.     use of  special characters  and to emulate the graphics mouse
  768.     cursor.  Consequently, certain extended characters  (eg. some
  769.     ruling graphics) will not be displayed  in the  ASCII window.
  770.     In their place, XED will display a small 'x'. In order to see
  771.     these characters, use the -g switch (see section 3).
  772.  
  773.     To force XED to display the default  character  set, use  the
  774.     following command line:
  775.  
  776.         xed -pf <file>
  777.  
  778.     which disables the mouse and uses the system font.
  779.  
  780.     The following characters are used by the system:
  781.  
  782.         0x8c 0x8d 0x8e 0x8f 0x90 0x91 0x92 0x93 0x94
  783.         0x95 0x9b 0x9f 0xc7 0xc9 0xcd 0xce 0xcf 0xd0
  784.         0xd1 0xd2 0xd3 0xd4 0xd5 0xd6 0xd7 0xd8 0xdc
  785.         0xf6 0xf7 0xf8 0xff 0x00
  786.  
  787.  
  788.  p) C data definition creation
  789.  
  790.     To create a 'C' data definition using the current file, press
  791.     Crtl+F4. XED will create the definition to the current  file-
  792.     name with .HEX extension, in the following format:
  793.  
  794.     typedef struct
  795.     {
  796.         char paragraph[16];
  797.     }
  798.     PARAGRAPH;
  799.  
  800.     PARAGRAPH untitled[] =
  801.     {
  802.         { "\x4d\x5a\xa3\x01\x11\x00\x05\x00\x20\x00\xe1\x02\xff\xff\x5b\x04" },
  803.         { "\x00\x08\x00\x00\x14\x01\x00\x00\x1e\x00\x00\x00\x01\x00\x22\x01" },
  804.             .
  805.             .
  806.             .
  807.         { "\x4d\x5a\xa3" },
  808.     };
  809.  
  810.     For  example,  if the current  file is  MYFILE.BIN, XED  will
  811.     create the definition to the file  MYFILE.HEX.  The  file can
  812.     then be included in your program as a header file.
  813.  
  814.     Note: the data generated  may cause an  overflow in the  DATA
  815.     segment if  the  data  definition  is  too large.  Check that
  816.     the  data created  will fit  your target  memory model.  As a
  817.     guide, the  generated file will be approx.  4 to 5 times  the
  818.     size of the binary file.
  819.  
  820.     If the length  of  the  last  paragraph is  not 16 bytes, the
  821.     definition will  still compile to  16 bytes in length, padded
  822.     with nulls. You need to be aware of this.  Some compilers may
  823.     require pragmas to align the data on 1 byte boundaries.
  824.  
  825.     To assist you to incorporate the  definitions generated,  XED
  826.     will generate the following #define statements:
  827.  
  828.         #define FILESIZE <size of file in bytes>L
  829.  
  830.             e.g. #define FILESIZE 12389L
  831.  
  832.     and:
  833.  
  834.         #define PARAGRAPHS (sizeof(untitled)/sizeof(PARAGRAPH))
  835.  
  836.     which corresponds to the number of 16 byte paragraphs defined.
  837.     If  the  last  paragraph  is  not  16  bytes in  length,  the
  838.     following statement is also produced:
  839.  
  840.         #define BYTES_ON_LAST <bytes on last paragraph>
  841.  
  842.             e.g. #define BYTES_ON_LAST 11
  843.  
  844.     See the file COLOURS.HEX which is an example data definition
  845.     that was generated by XED. The program file  MKBIN.C  is  an
  846.     example  that  uses  the  definition  file   to   create  an
  847.     executable file called COLOURS.COM
  848.  
  849.  
  850.  q) ASCII tables
  851.  
  852.     To view the ASCII tables,  press Shift+F6.  XED  will display
  853.     two columns of 13 bytes. Each byte  is displayed  in decimal,
  854.     hexadecimal,  octal, binary and its ASCII character.  You can
  855.     page through the table with PGUP/PGDN. Mouse users can  click
  856.     on the up/down arrows at the top  right of the window.  Press
  857.     HOME/END to go to the start/end of the table.
  858.  
  859.     Note: the ASCII characters displayed will contain some chara-
  860.     cters used by XED,  which are replaced with a small 'x'.  See
  861.     6.o above.
  862.  
  863.     To see the standard 3 character names for the first 32 chara-
  864.     cters, press F1. Mouse users can click on the word  "Asc"  to
  865.     toggle the name display.
  866.  
  867.     F2 toggles the  binary/character count fields.  The character
  868.     counts are calculated when you run the file info command F10.
  869.     Mouse users can click on the words  "Binary"  or  "Count"  to
  870.     toggle the display.
  871.  
  872.     Character counts can be useful when analysing a  data or text
  873.     file. The counts shown will reflect changes made to the file.
  874.     To update the counters, press F10 then Shift+F6.
  875.  
  876.     F3 will resort  the table  from  lowest to  highest character
  877.     frequencies.  If you press F3 again,  the table will resorted
  878.     back to the default ASCII order. Mouse users can click on the
  879.     words "Dec" to toggle the sort.
  880.  
  881.     To exit, press ESCAPE.
  882.  
  883.  
  884.  r) Text filter
  885.  
  886.     To view the current file through the text filter, press Shift
  887.     +F7. The current page is displayed as text lines in a window.
  888.     Extended and non-printable characters are  shown as a '.'  By
  889.     default, XED filters all characters below 0x20 (32 dec), only
  890.     displaying CR (0xd),  LF (0xa), EOF (0x1a) and ESC (0x1b)  by
  891.     their string names enclosed in angle brackets, e.g <ESC>.  To
  892.     view all the string names (for characters 1 - 32 only), press
  893.     F2. To view strictly text only press F2 again.  F2 will cycle
  894.     through these three types of filter. Mouse users can click on
  895.     the filter number in the window title to execute F2.
  896.  
  897.     The 1 to 32  character  string  name  filter  is  useful  for
  898.     viewing raw data  packets or  other communications  data.  To
  899.     save  space, the name <NUL> (0) is not displayed  since  this
  900.     character is usually the most common in binary files.
  901.  
  902.     XED displays the first character of  each paragraph in  bold,
  903.     allowing you to see the relative position  of the text in the
  904.     file.
  905.  
  906.     XED will  display all  characters from  the current  page and
  907.     possibly some  or  all characters from the next page (to fill
  908.     the text window). Characters from the next page are displayed
  909.     in GREY attribute.
  910.  
  911.     You can scroll  through  the file with PGUP/PGDN. Mouse users
  912.     can click on the arrows at the top right of the text window.
  913.  
  914.     Mouse users can click on any character in the window to go to
  915.     the byte. For this to work properly, select filter number 3.
  916.  
  917.     To exit, press ESCAPE.
  918.  
  919.  
  920.  s) Using markers
  921.  
  922.     To set a mark at the current offset, press Crtl+F9.  XED will
  923.     assign the next available mark from a list  of 39.  To remove
  924.     this  mark or  any mark, go to the  marker and  press Crtl+F9
  925.     again.  To retrieve a mark, press F9 (goto offset)  and enter
  926.     the mark number prefixed with a '%', for example:
  927.  
  928.         Enter offset: %3
  929.  
  930.     will go to  marker number 3.  To view  the  mark list,  press
  931.     Shift+F9. XED will display each mark slot with the offset and
  932.     hex byte at that  offset in bold.  Unused slots  will display
  933.     'free'. Press ESCAPE to exit the list.  Mouse users can click
  934.     on a marker to retrieve (goto) that mark.
  935.  
  936.     When in the mark list window, you can press DEL to remove all
  937.     marks.
  938.  
  939.     To retrieve the next mark, press Alt+F10. XED  will go to the
  940.     next  logical  active mark  (the  next  mark after the   last
  941.     retrieved or  set).  To  retrieve  the previous  mark,  press
  942.     Crtl+F10. This feature is useful  when you wish to work at  a
  943.     few different offsets.  Set a  mark at  each offset then move
  944.     between them with these command keys.
  945.  
  946.  
  947.  s) Using the unassembler
  948.  
  949.     The  unassembler  interprets  the 80x86  and   80x87   family
  950.     instruction set in both 16 and 32 bit modes.
  951.  
  952.     To unassemble the current file commencing at the current file
  953.     offset, press Shift+F10. XED will disassemble as much data as
  954.     is  necessary to fill the window. PGUP and PGDN move the file
  955.     pointer one paragraph  which, depending  on the  instructions
  956.     will decode to on average 10 lines.  Crtl+PGDN/PGUP will move
  957.     the file pointer one page (16 * (screen lines - 1)) bytes.
  958.  
  959.     XED will  display assembly  lines whose  offsets  begin  on a
  960.     paragraph  boundary in  bold attribute.  This  permits easier
  961.     reading of the mnemonics generated.
  962.  
  963.     Clearly much of the data will not unassemble correctly. There
  964.     are a number of reasons for this:
  965.  
  966.         a)  The data are not opcodes - they may be program data
  967.             or perhaps packed/compressed values;
  968.         b)  The unassembler has commenced disassembly at an odd
  969.             or incorrect offset;
  970.         c)  The opcodes are co-processor instructions, or
  971.         d)  The opcodes are invalid.
  972.  
  973.     When the commencement  offset  is incorrect, the  unassembler
  974.     will not resolve  instruction sequences properly.  To correct
  975.     this problem, press LEFT or RIGHT  which will  move the  file
  976.     offset  back  or forward  one byte.   Alternatively, you  can
  977.     press ESCAPE to exit the window, reposition the cursor and re
  978.     -enter the unassembler.  You will often find the instructions
  979.     are now  correct.  This ability  will permit  disassembly  of
  980.     packed or  oddly aligned instructions.  Mouse users can click
  981.     on the left/right arrows on the title line to realign.
  982.  
  983.     Crtl+LEFT  will set the offset  to the start of the paragraph
  984.     and Crtl+RIGHT will set the offset to the end (0xf).
  985.  
  986.     The title line of the window  will display  the current  view
  987.     flags. These are:
  988.  
  989.        toggle key            on                      off
  990.  
  991.        F2       '32' assume 32 bit code       '16' assume 16 bit code
  992.        F3       'FP' use 80x87 instructions   'EM' use 80x87 emulator
  993.        F4       'NS' ignore operand sizes     'SZ' show operand sizes
  994.                  e.g. mov [0456],0076          e.g. mov word ptr [0456],0076
  995.        F5       'ND' ignore jump distances    'UD' show jump distances
  996.                  e.g. call 4560:0076           e.g.  call far 4560:0076
  997.  
  998.     To view 80x87 co-processor instructions (and not their emula-
  999.     tions - the default), press F3.  To view 32 bit instructions,
  1000.     press F2. To ignore byte/word pointer display,  press F4.  To
  1001.     ignore the distance of calls/jumps, press F5. Mouse users can
  1002.     click on the two letter flag tags on the title line to toggle
  1003.     these flags.
  1004.  
  1005.     Some instructions when expanded may not fit in the window.
  1006.     This is usually due to the operand size/distance, e.g.
  1007.  
  1008.             jmp    far word ptr es:[bx+56]
  1009.  
  1010.     These lines will end in a small right hand  arrow. To see the
  1011.     entire instruction sequence, toggle the 'SZ' or 'UD' flags.
  1012.  
  1013.     In 16 bit mode, offsets are  displayed in  the segmented form
  1014.     segment:offset, from the start of the  file.  In 32 bit mode,
  1015.     single 32 bit values are displayed.
  1016.  
  1017.     When the unassembler  cannot interpret  byte  sequences,  XED
  1018.     will   display   the  sequence  followed  by  '<invalid>' and
  1019.     then skip  to the  next byte.  On a few  rare occasions,  the
  1020.     unassembler  may get confused and print rubbish, which should
  1021.     be ignored.  The is usually  the result  of multbyte   opcode
  1022.     sequences when   the second   or  subsequent   bytes  in  the
  1023.     expected sequence are invalid.
  1024.  
  1025.  
  1026.                                -+-
  1027.  
  1028.  
  1029. 7. Program Environment.
  1030. =======================
  1031.  
  1032.     XED  stores  each  paragraph separately in a  dynamic  linked
  1033.     list.  Paragraphs are stored in virtual memory - some in  DOS
  1034.     memory,  maybe  some  in extended/expanded  memory  and  that
  1035.     which  doesn't  fit in memory is buffered to disk.  XED  will
  1036.     attempt  to  retain paragraphs that are 'near' the  currently
  1037.     selected  paragraph by caching when necessary.  Consequently,
  1038.     operations local  to  the  current  paragraph will be quicker
  1039.     than those at distant offsets and overall performance will be
  1040.     contingent on the capabilities of individual hard drives.
  1041.  
  1042.     Operations  on  large  files (say 3Mb) that  require  XED  to
  1043.     traverse the entire buffer may take longer depending  on  the
  1044.     speed  of  your hard drive. Large files will also  take  some
  1045.     time  to  read into the buffer as XED reads the  ENTIRE  file
  1046.     before editing can begin.
  1047.  
  1048.     XED will use the  TMP or TEMP environment variables to locate
  1049.     the buffer file.  This  drive and directory  must be able  to
  1050.     store at least 3 times the size of the file to edit. RAMDRIVE
  1051.     users may need to reset this variable to their hard drive.
  1052.  
  1053.     XED  has  been  tested on file sizes exceeding 20Mb  and  has
  1054.     performed  with  tolerable speed. WINDOWS users  should  find
  1055.     XED  will  operate  with  no  problems (see  the XED.ICO  and
  1056.     XED.PIF files included with the release). The  only  possible
  1057.     interference  may occur  with  file  share  permissions  when
  1058.     writing to a file.
  1059.  
  1060.     XED was written in MS C++ 7.00.
  1061.  
  1062.  
  1063.                                -+-
  1064.  
  1065.  
  1066. 8. Keyboard Summary.
  1067. ====================
  1068.  
  1069.     Key                     Command
  1070.  
  1071.     UP DOWN LEFT RIGHT      Position cursor
  1072.     < > / L R               Shift/Rotate left/right
  1073.     -/+/~/`                 Dec/Inc/NOT/NEG byte
  1074.     ESC                     Quit
  1075.     ENTER                   Commit changes
  1076.     Alt+X                   DOS shell
  1077.     TAB                     Toggle ASCII/HEX
  1078.     Alt+U                   Undo paragraph
  1079.     Alt+A                   Undo All
  1080.     INS                     Edit paragraph
  1081.     PGUP/DN                 Next/Previous page
  1082.     Crtl+PGDN/UP            Move +-10 pages
  1083.     F1                      Help/menu
  1084.     Shift+F1                About XED
  1085.     F2                      Insert paragraph
  1086.     Shift+F2                Delete paragraph
  1087.     F3                      Copy paragraph below
  1088.     F4                      Save file
  1089.     Shift+F4                Abort edit
  1090.     Crtl+F4                 Save file as 'C' data
  1091.     F5                      Binary display
  1092.     Shift+F5                Binary edit
  1093.     F6                      Assignment expression
  1094.     Shift+F6                ASCII tables
  1095.     F7                      Toggle 7/8 bit ASCII
  1096.     Shift+F7                Text filter
  1097.     F8                      Search (again)
  1098.     Shift+F8                Search for...
  1099.     Crtl+F8                 Search and Set marker
  1100.     F9                      Goto mark or offset
  1101.     Shift+F9                Mark list
  1102.     Crtl+F9                 Set/Remove mark
  1103.     F10                     File Information
  1104.     Shift+F10               Unassemble
  1105.     Alt+F10                 Goto Next mark
  1106.     Crtl+F10                Goto Previous mark
  1107.  
  1108.  
  1109.     Inline editing keys
  1110.     -------------------
  1111.  
  1112.     Key                     Command
  1113.  
  1114.     RIGHT / LEFT            Next/Previous character
  1115.     F3                      Get last command
  1116.     HOME                    Start of line
  1117.     INS                     Toggle insert
  1118.     END                     End of line
  1119.     DEL                     Delete character
  1120.     Alt+D                   Erase to end of line
  1121.     Alt+K                   Kill (erase) line
  1122.     ENTER                   Accept edits and exit
  1123.     ESCAPE                  Abort edit
  1124.  
  1125.  
  1126.                                -+-
  1127.  
  1128.  
  1129. 9. Notes, Disclaimer.
  1130. =====================
  1131.  
  1132.   Users of XED v1.0a must accept this disclaimer of warranty:
  1133.  
  1134.   "XED  v1.0a IS  SUPPLIED  AS  IS. THE  AUTHOR  DISCLAIMS  ALL
  1135.   WARRANTIES,   EXPRESSED   OR  IMPLIED,   INCLUDING,   WITHOUT
  1136.   LIMITATION, THE WARRANTIES OF MERCHANTABILITY AND OF  FITNESS
  1137.   FOR   ANY  PURPOSE.  THE  AUTHOR  ASSUMES  NO  LIABILITY  FOR
  1138.   DAMAGES,  DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT FROM  THE
  1139.   USE  OF  XED  v1.0a. GOOD DATA PROCESSING PROCEDURE  DICTATES
  1140.   THAT  ANY PROGRAM BE THOROUGHLY TESTED WITH NON-CRITICAL DATA
  1141.   BEFORE  RELYING ON IT. THE USER MUST ASSUME THE  ENTIRE  RISK
  1142.   OF  USING  THE PROGRAM. ANY LIABILITY OF THE AUTHOR  WILL  BE
  1143.   LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND  OF  THE
  1144.   REGISTRATION FEE TO REGISTERED USERS."
  1145.  
  1146.   XED  v1.0a is  a  "shareware program" and is provided  at  no
  1147.   charge  to  the user for evaluation. Feel free  to  share  it
  1148.   with your friends, but please do not give it away altered  or
  1149.   as  part  of another  system. The essence of "user-supported"
  1150.   software  is to provide personal computer users with  quality
  1151.   software  without  high prices, and yet to provide  incentive
  1152.   for  programmers to continue to develop new products. If  you
  1153.   find  this program  useful and  find that  you are  using XED
  1154.   v1.0a and continue to use XED v1.0a after a reasonable  trial
  1155.   period, PLEASE make a registration payment of $15 to DAVID L.
  1156.   DIGHT.
  1157.  
  1158.   Commercial users of XED v1.0a must register and pay for their
  1159.   copies of XED v1.0a within 30 days of first use. Site-Licence
  1160.   arrangements  may  be  made  by contacting  DAVID  L.  DIGHT.
  1161.   Anyone  distributing  XED v1.0a for any kind  of remuneration
  1162.   must  first contact DAVID L. DIGHT at the address  below  for
  1163.   authorisation.  This  authorisation  will  be   automatically
  1164.   granted  to  distributors recognised by  the  Association  of
  1165.   Shareware  Professionals (ASP) as adhering to its  guidelines
  1166.   for  shareware distributors, and such distributors may  begin
  1167.   offering  XED v1.0a immediately (However DAVID L. DIGHT  must
  1168.   still  be advised so that the distributor can be kept  up-to-
  1169.   date with the latest version of XED v1.0a).
  1170.  
  1171.   You  are encouraged to pass a copy of XED v1.0a along to your
  1172.   friends  for  evaluation. Please encourage them  to  register
  1173.   their  copy if they find that they can use it. All registered
  1174.   users  will receive a copy of the latest version of  the  XED
  1175.   v1.0a system. If you do pass on a copy please make  sure  you
  1176.   include  all  the  system  files  with  documents.  The  file
  1177.   XED10A.EXE  is  a  self-extracting  executable  archive   and
  1178.   contains all files with this release.
  1179.  
  1180.  
  1181.                                -+-
  1182.  
  1183.  
  1184.   The ASP provide  special  guidelines for  author  members  to
  1185.   follow when they submit their programs for approval.  Some of
  1186.   these provisions specify the ways in which the program may or
  1187.   may not notify the user of their registration commitments.
  1188.  
  1189.   Some methods  used  by  programmers  are not permitted. These
  1190.   include   demo-crippling,  date-bombs, disabled  or  devolved
  1191.   functionality. The ASP stipulates that all shareware releases
  1192.   must be  fully functioning. XED  uses  the minimum  amount of
  1193.   'coersion' in  the  understanding that for the software to be
  1194.   evaluated fairly, the user must get a 'fair go'.
  1195.  
  1196.   The registration fee  is not important.  The actual 'cost' to
  1197.   develop shareware is very rarely recovered. What is important
  1198.   is the message that the registation sends to the author.
  1199.  
  1200.  
  1201.                        _______
  1202.                   ____|__     |                (R)
  1203.                --|       |    |-------------------
  1204.                  |   ____|__  |  Association of
  1205.                  |  |       |_|  Shareware
  1206.                  |__|   o   |    Professionals
  1207.                -----|   |   |---------------------
  1208.                     |___|___|    MEMBER
  1209.  
  1210.  
  1211.                                -+-
  1212.