238 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			238 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 | |
|     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 | |
| <html xmlns="http://www.w3.org/1999/xhtml">
 | |
| <head>
 | |
| <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | |
| <title>xd: Extended Dump and Load Utility</title>
 | |
| <meta name="keywords" content="xd, dump, hexadecimal, octal, decimal, ASCII, ISO" />
 | |
| <meta name="description" content="xd: Extended Dump and Load Utility" />
 | |
| <meta name="author" content="John Walker" />
 | |
| <meta name="robots" content="index" />
 | |
| <link rel="stylesheet" href="https://www.fourmilab.ch/documents/styles/standard_screen.css"
 | |
|     type="text/css" />
 | |
| <style type="text/css">
 | |
|     blockquote.rights {
 | |
|         text-align: justify;
 | |
|         font-size: smaller;
 | |
|         font-family: sans-serif;
 | |
|     }
 | |
| 
 | |
|     dl.options :first-child {
 | |
|         margin-top: 0px;
 | |
|     }
 | |
| 
 | |
|     dl.options dd {
 | |
|         text-align: justify;
 | |
|     }
 | |
| 
 | |
|     dl.options dt {
 | |
|         margin-top: 1ex;
 | |
|         padding-bottom: 0px;
 | |
|     }
 | |
| 
 | |
|     h3.subtitle {
 | |
|         color: #0000FF;
 | |
|         font-style: italic;
 | |
|         margin-top: 0px;
 | |
|         text-align: center;
 | |
|     }
 | |
| 
 | |
|     p {
 | |
|         text-align: justify;
 | |
|     }
 | |
| </style>
 | |
| </head>
 | |
| 
 | |
| <body class="standard">
 | |
| 
 | |
| <h1 class="c" style="margin-bottom: 0px;"><img src="images/xd.png"
 | |
|     width="257" height="123" alt="XD" /></h1>
 | |
| <h3 class="subtitle">Extended Dump and Load Utility</h3>
 | |
| 
 | |
| <hr />
 | |
| 
 | |
| <p>
 | |
| This page describes, in Unix manual page style,
 | |
| <b>xd</b>, a utility which dumps files in hexadecimal,
 | |
| decimal, or octal, with file addresses shown in any of
 | |
| those formats.  <b>xd</b> can read files in any of the
 | |
| formats it writes, recreating binary files, including
 | |
| modifications made by editing the dump with any text
 | |
| editor.  In addition, <b>xd</b> can transform a binary
 | |
| file into a C data declaration which permits embedding
 | |
| its contents into a program.  <b>xd</b> is available as
 | |
| C source code compatible with most Unix systems.
 | |
| </p>
 | |
| 
 | |
| <h3>NAME</h3>
 | |
| <p>
 | |
|      <b>xd</b> – extended dump and load utility
 | |
| </p>
 | |
| 
 | |
| <h3>SYNOPSIS</h3>
 | |
| <p>
 | |
|      <b>xd</b> [ <b>−a</b><i>addrfmt</i> <b>−c</b>
 | |
|          <b>−d</b><i>label</i> <b>−l</b> <b>−n</b><i>datafmt</i>
 | |
|          <b>−s</b> ] [ <i>infile</i> [  <i>outfile</i> ] ]
 | |
| </p>
 | |
| 
 | |
| <h3>DESCRIPTION</h3>
 | |
| <p>
 | |
|      <b>xd</b> dumps files in hexadecimal, decimal, or octal, optionally with
 | |
|      ISO characters side by side.  File addresses can likewise be
 | |
|      displayed in hex, decimal, or octal notation.
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
|      <b>xd</b> can <em>read</em> dump files in the same formats it writes and create
 | |
|      binary files from the data therein.  This allows you to dump a
 | |
|      binary file with <b>xd</b>, edit it with your favourite text editor,
 | |
|      then make a new binary file containing whatever changes you've
 | |
|      made.  When creating a binary file, <b>xd</b> normally assumes you've
 | |
|      only modified data in place (neither expanding nor contracting
 | |
|      the file) and verifies file addresses to guarantee this.
 | |
|      However, a "stream" option is available which ignores file
 | |
|      addresses so you're free to insert and delete bytes at will.  <b>xd</b>
 | |
|      thus turns your existing text editor into a binary file editor
 | |
|      without requiring you to learn any new commands.
 | |
| </p>
 | |
| 
 | |
| <p>
 | |
|      Finally, <b>xd</b> can read a binary file and emit a C language data
 | |
|      declaration which contains the data from the file.  This is handy
 | |
|      when you wish to embed binary data within C programs.
 | |
| </p>
 | |
| 
 | |
| <h3>OPTIONS</h3>
 | |
| 
 | |
| <dl class="options">
 | |
| <dt><b>−a</b><i>addrfmt</i></dt>
 | |
|     <dd>Displays addresses in the dumped file as specified by
 | |
|         <i>addrfmt</i>: <b>d</b> for decimal, <b>h</b> or
 | |
|         <b>x</b> for hexadecimal, and <b>o</b> for octal.  By
 | |
|         default, addresses are shown in hexadecimal.</dd>
 | |
| 
 | |
| <dt><b>−c</b></dt>
 | |
|     <dd>Display ISO characters alongside the numeric
 | |
|         dump.  Non-printing characters (according to ISO
 | |
|         8859/1) are shown as periods.  The ISO characters are
 | |
|         separated from the dump by vertical bar characters,
 | |
|         which <b>xd</b> treats as comment delimiters when loading a
 | |
|         file.</dd>
 | |
| 
 | |
| <dt><b>−d</b><i>label</i></dt>
 | |
|     <dd>Dumps the file as a C language declaration of  an array
 | |
|         of <tt>unsigned char</tt> which, when compiled, will
 | |
|         contain the same data as the binary input file.  The C
 | |
|         array declaration is given the variable name
 | |
|         <i>label</i>, or <tt>xd_data</tt> if no label
 | |
|         specification is given.  Data are declared as individual
 | |
|         bytes to guarantee portability across architectures with
 | |
|         different byte ordering conventions, and are expressed
 | |
|         as decimal numbers in lines of less than 80 characters
 | |
|         for maximum portability among compilers.  The C operator
 | |
|         <tt>sizeof</tt> may be applied to the array <i>label</i>
 | |
|         to obtain its length in bytes.</dd>
 | |
| 
 | |
| <dt><b>−l</b></dt>
 | |
|     <dd>Load file from dump.  <b>xd</b> reads a file in the same
 | |
|         format it writes, creating a binary output file.  Each
 | |
|         line is assumed to begin with a file address terminated
 | |
|         by a colon.  Data bytes are separated by white space,
 | |
|         and any characters after a vertical bar are ignored
 | |
|         (thus discarding any ISO characters included in the dump
 | |
|         with the <b>−c</b> option).  If the
 | |
|         <b>−s</b> option is not specified, each file
 | |
|         address is checked against the number of bytes written
 | |
|         so far to guarantee that no bytes have been added or
 | |
|         deleted.  Files must be loaded with the <b>−a</b>
 | |
|         and <b>−n</b> options set the same as when the
 | |
|         file was dumped.</dd>
 | |
| 
 | |
| <dt><b>−n</b><i>datafmt</i></dt>
 | |
|     <dd>Edits bytes in the dumped file as specified by
 | |
|         <i>datafmt</i>: <b>d</b> for decimal, <b>h</b> or
 | |
|         <b>x</b> for hexadecimal, and <b>o</b> for octal.  By
 | |
|         default, bytes are shown in hexadecimal.</dd>
 | |
| 
 | |
| <dt><b>−s</b></dt>
 | |
|     <dd>Stream input when loading file.  If  this  option is
 | |
|         specified in conjunction with the <b>−l</b> option, file
 | |
|         addresses are not verified when loading a file and, in
 | |
|         fact, need not be specified at all.  The input file is
 | |
|         treated as a stream of byte values separated by white
 | |
|         space.  This option allows you to create a dump with
 | |
|         <b>xd</b>, edit it as you wish with any text editor,
 | |
|         inserting and deleting bytes in the file wherever you
 | |
|         like, then create a binary file from the modified dump
 | |
|         with the command <b>xd −l −s</b> <i>dumpfile
 | |
|         outfile</i>.</dd>
 | |
| 
 | |
| <dt><b>−u</b></dt>
 | |
|     <dd>Print how-to-call information.</dd>
 | |
| </dl>
 | |
| 
 | |
| <h3>FILES</h3>
 | |
| <p>
 | |
|      If no <i>infile</i> is specified, <b>xd</b> obtains its
 | |
|      input from standard input; if no <i>outfile</i> is given,
 | |
|      output is sent to standard output. The input and output are
 | |
|      processed in a strictly serial manner regardless of
 | |
|      options; consequently <b>xd</b> may be used in pipelines
 | |
|      without restrictions.
 | |
| </p>
 | |
| 
 | |
| <h3>BUGS</h3>
 | |
| <p>
 | |
|      Input error checking in load mode might be improved.  Note
 | |
|      that each byte in load mode must be specified as a number
 | |
|      in the same format selected by the <b>−n</b> option
 | |
|      when the file was dumped, separated by white space, and
 | |
|      that the <b>−a</b> and <b>−n</b> options must
 | |
|      be set the same when loading a file as when it was dumped.
 | |
| </p>
 | |
| 
 | |
| <h3>SEE ALSO</h3>
 | |
| <p>
 | |
|      <b>cc</b>(1), <b>od</b>(1), <b>iso_8859_1</b>(7)
 | |
| </p>
 | |
| 
 | |
| <h2><a href="xd-1.4.tar.gz"><img src="https://www.fourmilab.ch/images/icons/file.png"
 | |
|     alt="[download]" class="button" width="40" height="40" /></a>
 | |
|     <a href="xd-1.4.tar.gz">Download xd-1.4.tar.gz</a> (Gzipped TAR archive)</h2>
 | |
| 
 | |
| <p>
 | |
| The release archive contains source code, a <tt>Makefile</tt>
 | |
| for building the program, and documentation in manual page and
 | |
| HTML form.
 | |
| </p>
 | |
| 
 | |
| <h3>COPYING</h3>
 | |
| 
 | |
| <blockquote class="rights">
 | |
| <p>
 | |
|     This software is in the public domain.  Permission to use,
 | |
|     copy, modify, and distribute this software and its
 | |
|     documentation for any purpose and without fee is hereby
 | |
|     granted, without any conditions or restrictions.  This
 | |
|     software is provided “as is” without express or
 | |
|     implied warranty.
 | |
| </p>
 | |
| </blockquote>
 | |
| 
 | |
| <h3 class="nav"><a href="http://www.fourmilab.ch/?topic=unix">Other
 | |
|     Unix Utilities at Fourmilab</a></h3>
 | |
| <h3 class="nav"><a href="http://www.fourmilab.ch/">Fourmilab Home Page</a></h3>
 | |
| 
 | |
| <p />
 | |
| <hr />
 | |
| 
 | |
| <address>
 | |
| by <a href="http://www.fourmilab.ch/">John Walker</a><br />
 | |
| Version 1.4<br />
 | |
| October, 2017
 | |
| </address>
 | |
| 
 | |
| </body>
 | |
| </html>
 |