Recently, I have found out that this program works with D100 image files,
as well as the D70.  I have tested un-modified image files directly from
the camera.  I don't know if this program will work with D100 image files
that have been modified by another application, such as Nikon Capture, or
Adobe Photoshop CS.

I have also tested this program with D2H NEF image files taken directly
from the camera.  A JPG image file that was created on the D2H, and
modified by an older version of Nikon Capture did not work.  I have not
had time to determine the reason.  This program may work with D2H JPG 
files taken directly from the camera, but I do not have access to a
D2H, so I can not test this.  The program worked well with the D2H NEF
files.

This program has been tested on only the following Operating Systems (OS):

Windows 2000 Prof.
Windows XP Prof.
Slackware 9.0 Linux

It may not work on any other OS.

I have been told that my source compiles without any problems
on a Mac OS-X computer.  But, I do not have access to any Mac
systems, so I can not verify this, or provide an executable
for this OS.

I have also been told that this program can be compiled and
run under OS/2.  A minor modification had to be made to support
this, and this change has been made in the current source.

This program now allows wildcard input characters:

d70reader *.NEF *.JPG

If there are other files in your directory besides image files,
don't do this:

d70reader *.*

The program will stop on the first non-image file it encounters.

I have added the ability to extract the JPG thumbnail image file
that is embeded in the NEF file image.  You can do this with the
-j option.  This option will output the JPG file in the current
directory.  I chose to name the JPG file by appending '.JPG' to
the existing NEF file name.  Here is an example:

DSC_0007.NEF becomes DSC_0007.NEF.JPG

You will end up with two files in the current directory:

DSC_0007.NEF
DSC_0007.NEF.JPG

The NEF file will not be modified in any way.  The JPG file will
not have any EXIF data embedded in it.  If you run the program 
more than once in the current directory, the JPG file that was
previously created will just be over-written.

You can see program help by doing this:

d70reader -h

Here is sample output:

File #1:

D70Reader Program Version  : 0.01
Filename                   : DSC_0058.NEF
Make                       : NIKON CORPORATION
Model                      : NIKON D70
Orientation                : Horizontal (normal)
Software                   : Ver.1.02
ExposureTime               : 1/320 secounds
FNumber                    : 10.000000
ExposureProgram            : Auto
DateTimeDigitized          : 2004:09:15 17:46:27
MeteringMode               : Multi-segment
Flash                      : Off
FocalLength                : 44.000000
ISOUsed                    : 200
Quality                    : RAW
FocusMode                  : AF-S
FlashSetting               :
FlashMode                  :
ISO (2)                    : 200
ToneCompensation           : AUTO
Lens                       : 18.000000 70.000000 3.500000 4.500000
ColorMode                  : MODE3a
LightSource                : NATURAL
NoiseReduction             : OFF
ShutterCount               : 1035
ImageOptimization          :
Saturation                 : NORMAL
VariProgram                : LAND SCAPE

File #2:

D70Reader Program Version  : 0.01
Filename                   : DSC_0081.NEF
Make                       : NIKON CORPORATION
Model                      : NIKON D70
Orientation                : Horizontal (normal)
Software                   : Nikon Capture Editor 4.1.0 W
ExposureTime               : 1/60 secounds
FNumber                    : 4.500000
ExposureProgram            : Program AE
DateTimeDigitized          : 2004:11:20 21:18:27
MeteringMode               : Multi-segment
Flash                      : Auto, Fired, Return detected
FocalLength                : 70.000000
ISOUsed                    : 200
Quality                    : RAW
FocusMode                  : AF-S
FlashSetting               : NORMAL
FlashMode                  : Built-in,TTL
ISO (2)                    : 200
ToneCompensation           : AUTO
Lens                       : 18.000000 70.000000 3.500000 4.500000
ColorMode                  : MODE1a
LightSource                : SPEEDLIGHT
NoiseReduction             : OFF
ShutterCount               : 1589
ImageOptimization          : NORMAL
Saturation                 : NORMAL
VariProgram                :

File #3:

D70Reader Program Version  : 0.01
Filename                   : DSC_0021.JPG
Make                       : NIKON CORPORATION
Model                      : NIKON D70
Software                   : Ver.1.02
FocalLengthIn35mmFilm      : 105
ExposureTime               : 1/250 secounds
FNumber                    : 10.000000
ExposureProgram            : Auto
DateTimeDigitized          : 2004:09:15 17:45:52
ExposureBiasValue          : 0.000000
MeteringMode               : Multi-segment
Flash                      : Off
FocalLength                : 70.000000
ExifImageWidth             : 2000
ExifImageLength            : 3008
ISOUsed                    : 200
Quality                    : NORMAL
FocusMode                  : AF-S
FlashSetting               :
FlashMode                  :
ISO (2)                    : 200
ToneCompensation           : AUTO
Lens                       : 18.000000 70.000000 3.500000 4.500000
ColorMode                  : MODE3a
LightSource                : NATURAL
NoiseReduction             : OFF
ShutterCount               : 1034
ImageOptimization          :
Saturation                 : NORMAL
VariProgram                : LAND SCAPE


d70reader				-	Slackware Linux 9.0.0 program file
d70reader.c				-	ANSI C source
d70reader.exe				-	Windows XP command line program
README					-	This document
RunningTheD70ReaderProgramXP.doc	-	Microsoft Word 2000 document

For Windows, copy the EXE file into a directory that is listed in your PATH environment variable.
For Linux, do the same for the 'd70reader' file.  Be sure to do this:  chmod 775 path_to_program/d70reader

Hack the source as you may.

Enjoy!

Jonathan D. Oman
