dcmtools 1.4 by Marcus Comstedt <marcus@roxen.com>
==================================================

Abstract
--------

dcmtools is a suite of programs to control the Nexus series third
party memory cards for the Dreamcast.  In contrast to the software
provided by EMS (creator of the Nexus card), dcmtools is provided with
full source, and does not run under W*ndows.


Compiling and installing
------------------------

UNIX
....

To compile under Solaris or Linux on an x86 machine, just run
./configure and then make.  No other UNIX operating systems are
currently supported.

If configure fails to auto-detect the parallel port IO address, you
can specify it manually with with the --with-lp-io-port option to
configure, like this:

  ./configure --with-lp-io-port=0x0378

Note that all the binaries have to be setuid root to work (unless
you're actually going to run them as root).  To avoid security
problems, all the programs will give up their root privileges as soon
as possible though.

If you do "make install" as root, the installed binaries will
automatically get the correct setuid bits.

AmigaOS
.......

To compile under AmigaOS, you need SAS/C.  Just run smake and
all the tools should be built.  Alternatively, you can just get
the binary release.  Kickstart 2.0 or newer is required to run
dcmtools.

IMPORTANT:

In order to be able to use the Nexus card with an Amiga, you have
to make two minor alterations to the cable.  The reason for this
is that the default wiring uses the /STROBE and /ACK lines, which
can't be manually written or read on the Amiga.

The alterations needed are really simple.  Open the parallel port
end of the cable, and use a soldering iron to relocate two of the
wires.  The green wire should be moved from pin 1 (far right)
to pin 9 (just right of the original location of the blue wire).
Then the blue wire should be moved from pin 10 to pin 13 (far
left).  That is:

  Wire  | Before | After
 -------+--------+--------
  Green | Pin 1  | Pin 9
  Blue  | Pin 10 | Pin 13

After these modifications have been carried out, the cable should
be ready to use with the AmigaOS version of dcmtools.  The cable
can of course no longer be used with the EMS software after the
modification is done.  However, it can still be used with the UNIX
version of dcmtools (1.3 or newer).


Usage
-----

All the programs support the flags -h for help, and -b n to select
bank n on the card before doing anything else.

Important:  If you get occasional "READ ERROR", "WRITE ERROR" or
similar, don't worry.  The operation will automatically be retried
until it succeeds, or has failed 5 times in a row.  If that should
happen, the program will abort with a message saying it has done so.
Then it's time to start worrying.  :-)

dcmread
.......

Read the contents of an entire bank on the Nexus card.  The bank is
written as a .dcm file, either to a specified filename, or if no
filename is given it is written to stdout.

dcmwrite
........

Write the contents of an entire bank to the Nexus card.  The bank is
read as a .dcm file, either from a specified filename, or if no
dilename is given it is read from stdin.

dciread
.......

Create a .dci file from a single file on the Nexus card.  The name of
the file on the card is specified first, then an optional destination
filename.  If no destination filename is given, the .dci file is
written to stdout.

dciwrite
........

Upload a single file to the Nexus card from a .dci file.  The flag -f
can be used to overwrite the file if it already exists.  The .dci file
is either read from a specified filename, or from stdin.

nxls
....

List the files contained in a bank on the Nexus card.  With the flag
-l more information is printed about the files.

nxrm
....

Delete one or more files from the Nexus card.

nxmon
.....

FOR ADVANCED USERS ONLY!  This is a simple "disk monitor" program that
allows you to inspect and modify bytes directly on the Nexus card.
Bytes are addressed with their offset from the beginning of the card,
so sector 0 is address 0 through 1ff, sector 1 is 200 through 3ff and
so on.  There are currently three commands available:

  x       - exit nxmon
  m addr  - dump a block of bytes starting at addr to the screen
  e addr data [data ...]
          - enter new values for specified bytes.  the first data is
            written to addr, the second to addr+1 and so on.

