
  X - eXtract byte sequences
  Copyright (c) 1997-2003 BTTR Software
  [Under `MODIFIED' BSD LICENSE]


                        T A B L E  O F  C O N T E N T S
  

  1  INTRODUCTION
  2  LICENSE & DISCLAIMER
  3  SYSTEM REQUIREMENTS
  4  INSTALLATION
  5  USAGE
  6  TECHNICAL SUPPORT & UPDATES
  7  ADDITIONAL INFORMATION


  1                         I N T R O D U C T I O N
  

  Probably more than once a power-user wishes to have a little tool that
  allows her/him to get only some special parts of a file for further
  processing.

  Binary file (or hex) editors are a great help for experienced users, but
  most of these don't allow you to mark or even save a block of bytes to
  another file. This is where X jumps in!

  Q: So how does it work?

  A: Start your favourite hex editor. Load the desired file. Look for
     information you want to be extracted. Write down the starting and ending
     offsets of the information. Now feed X with input filename, output
     filename, starting offset, and length (ending-starting offset). That's
     it!


  2                  L I C E N S E  &  D I S C L A I M E R
  

  This program is free software; you can redistribute it and/or modify it
  under the terms of the `MODIFIED' BSD LICENSE.

  See `legal.txt' for details.


  3                   S Y S T E M  R E Q U I R E M E N T S
  

  (*) Intel i8086 microprocessor (or compatibles)

  (*) Microsoft MS-DOS 3.0 (or compatibles)


  4                         I N S T A L L A T I O N
  

  There is no designated setup program that comes with this software because
  installation can be done very easily: Decompress the complete archive (with,
  e.g., PKUNZIP or WinZip) into an empty directory and you are ready to use
  this software.


  5                                U S A G E
  

  Usage: x <infile> <outfile> <offset> [<length>]

    infile  = input file name (path optional)
    outfile = output file name (path optional)
    offset  = starting point (in infile) for dissection
    length  = # of bytes to extract to outfile (optional)

  `infile' and `outfile' name the files X will operate on. The names can
  include some path information of course. `infile' describes the source file
  where you want to extract some bytes from and `outfile' describes the
  destination file, where X will store that byte sequence to.

  `offset' (counted from the start of `infile') tells X where to start
  extracting the byte sequence. Valid values are from 0 (for the first byte)
  to the size of the input file minus 1.

  `length' is an optional value (default: decimal) to specifie the amount of
  bytes you want X to extract from the input file to the output file.

  Its range is from 1 (for the first byte after `offset') to the size of the
  input file minus `offset'. Its value will be adjusted automatically (!) to
  fit X's needs. If it is not specified, X will extract all bytes from
  `offset' until the end of `infile'.

  Hint: For hexadecimal numbers use the $nnnn notation, e.g., `$10' (without
        quotes) for `offset' to be 16 or `$300' for a `length' of 768 bytes.

  Example #1:

    Getting a colour palette (768 bytes) from an 8-bit PCX image is so easy.

    > x logo.pcx logo.pal 19673 $300
                              
                               length
                           offset
                    output file
            input file

  Example #2:

    To extract some bytes at offset 560,376 from `sounds.lib' (624,743 bytes)
    to the end of this file:

    > x sounds.lib crash.wav 560376 64367
      or
    > x sounds.lib crash.wav 560376 65000
      or
    > x sounds.lib crash.wav 560376

  Example #3:

    As copy tool for a file `user.dmp', which is 9,541,037 bytes large, you
    can use one of the following commands.

    > x user.dmp d:\debug\user.dmp 0 9541037
      or
    > x user.dmp d:\debug\user.dmp 0 10000000
      or
    > x user.dmp d:\debug\user.dmp 0

  Example #4:

    You can even `misuse' X as a split utility to break files into parts that
    fit on floppy disks. To transport, e.g., `freedos.zip' (1,635,821 bytes)
    on two 1.44 Mbytes disks try this.

    > x freedos.zip a:\freedos.1 0 1457664
    > x freedos.zip a:\freedos.2 1457664

    You now have the 2 files `freedos.1' with 1,457,664 bytes and `freedos.2'
    with 178,157 bytes on floppy disks. So where was the problem? ;-)

    The following command can be used to recreate the original file at
    destination. (You need to copy both files to your harddisk first.)

    > copy /b freedos.1 + freedos.2 freedos.zip


  6                     T E C H N I C A L  S U P P O R T
  

  If you think you've found a bug then please do the following.

  (*) At first read `bugs.txt' for already known issues.

  (*) Look for possible updates at `http://www.bttr-software.de/'.

  (*) Contact our technical support team:

      Method 1 (preferred):

      The fastest way to get support is to let your favourite newsreader
      software, e.g., Fort Agent or Netscape Communicator connect to our news
      (NNTP) server `news.bttr.no-ip.com' at port 119 and to choose the
      appropriate newsgroup.

      Method 2:

      Send your /detailed/ report via email to `support@bttr-software'.


  7                A D D I T I O N A L  I N F O R M A T I O N
  

  X was created using Aurora Editor 3.0c, Borland MAKE 3.6, Borland Turbo
  Pascal 5.5, and Ultimate Packer for eXecutables (UPX) 1.24d as well as some
  code snippets from the SourceWare Archival Group (SWAG).

   END OF DOCUMENT 
