File identifier v2.7 created by S. Groeneveld 1999.

ABOUT
=====
FileID is a DOS command-line utility that identifies files. Different 
filetypes are displayed in different colors. For many formats it's possible
to gather extra information from the file. An errorlevel is returned
indicating the last recognized format. Wrong file extensions can be corrected
automatically. Output can be filtered. This release is freeware but not
registered. Registering is free, because I just try to encourage you to
contact me and send some feedback (read the FREEWARE.TXT file).


REQUIREMENTS
============
The following system configuration is the minimum needed:
  * DOS 3.0
  * 80286 processor
  * 300 kb free conventional memory
I've used a 80286 with monochrome monitor for quite a long time, and I know
that even the simplest programs demand more and more. That's why I want this
program to run on older systems as well.


FILES
=====
fileid.exe      Executable program file
fileid.ini      Settings file containing default options
fileid.clr      Settings file containing user defined colors
fileid.reg      Win95 registry patch to add FileID to the context menu
fileid.txt      Documentation file (hey, it's this one!)
fileid.ans      Coloured information screen using ANSI codes
fileid.dat      Contains data to be used by FileID
setup95.bat     Installation to make FileID easy accessible
errlevel.txt    List of all possible errorlevels returned by FileID
freeware.txt    Explanation of terms
whats.new       Changes for last versions


PROGRAM USAGE
=============
At the DOS-prompt type: FILEID [<filespec>] [<options>]
<filespec> and <options> are optional parameters. At program startup FileID 
will first read the color settings from the FILEID.CLR file, then the 
default parameters from the FILEID.INI file and then read the command-line. 
See the FILEID.INI and FILEID.CLR files for more information.
Without <filespec> FileID will check all files in the current directory.

<filespec> = (Multiple) file specification(s), wildcards are allowed
<options>  = Any combination of the options listed below

Example:  FILEID f1.txt f2.txt /A


OPTIONS
=======
All options are preceded by a slash (/). You can use the full option keyword
(recommended in INI file), or the single letter shortcut. If you specify a 
+ or - sign just in front of the option keyword or letter, you can turn an 
option on or off (for example, if you want to disable an option specified in 
the INI file).

Keyword     Short   Description
-------     -----   -----------
HELP        ?       This will display a brief help page explaining the 
                    program usage and options.

ATTRIB      A       Display file attributes. Active attributes are shown as 
                    bright capitalized single letters:
                    R = read-only, A = archive, H = hidden, S = system

BARE        B       With this option you can suppress the path lines and the
                    used filter. You can imagine that when you use this
                    option together with /SUBDIR, you get one long list of 
                    files without any path names. It can be useful with 
                    multiple file specifications:
                    FILEID *.exe *.com *.diz read*.* /BARE

COMPILER    C       Display compiler or 'owner' information for executables.
                    For example, ARJ self-extracting, PKLite compressed 
                    or Borland Pascal executables.

DESCRIPTION D       Use the 4DOS description if it exists, otherwise display 
                    regular FileID information. It's wise to enable this 
                    option, because it will give more specific information 
                    on most files. Descriptions will be enclosed in 
                    apostrophes (").

DESCRIPTALL DA      I noticed that some programs (eg. QPV/386) put their own
                    codes in the description file, preceded by a ASC(4) 
                    character. These codes don't make much sense so I decided 
                    to ignore them (4DOS ignores them too). However, if you 
                    are really interested in these codes use this (bonus) 
                    option.

EXTENSION   E       With this option, extensions are automatically changed
                    if they are not the default for the recognized format.
                    It will preserve Windows 95 long filenames. Only formats
                    that have a reliable signature will support this option,
                    and executables are not affected. Without the /E and /N
                    options FileID will prompt the user whether to rename the
                    file or not. Use this option only if you know what files
                    are going to be renamed, since many programs use their
                    own extensions for graphic or audio files. Note that
                    in Windows 95 the renamed files are displayed again, so
                    the summary will show too many files.

FILTER      F       Use this option to show only those files that contain
FIND                a specified string in the information. The string to look
                    for must be enclosed in quotes (' or ") and appended to
                    the option keyword or letter. This filter is not case-
                    sensitive. If this option is used in combination with
                    /SUBDIR the pathname will be shown for each new directory
                    that contains any matching files (unless the /BARE option
                    was also used). The summary (/INFO) shows the number of
                    directories that have been scanned, and the number of
                    files that matched the filter.
                    This option will prevent any action on null files, and 
                    extensions of undisplayed files will not be changed. This 
                    example will create a list of all bitmaps on drive C:
                    FILEID C:\ /SUBDIR /FIND"bitmap" /OUTPUT >Bitmaps.lst

HIDDEN      H       Include hidden and system files/directories in list. 
                    Opening system files for reading should not be harmful 
                    to the system, and I have never experienced any problems
                    with it. However I cannot be held responsible for any 
                    damage to system files.

INFORMATION I       Display a summary after the list, containing the total
                    amount of files, subdirectories and bytes processed. If
                    you run the program with highest verbose level (/VERBOSE4)
                    it will also show the total playing time of all sound
                    files, and the uncompressed size of all archive files.

KILLNULL    K       With this option, zero length files will automatically 
                    be erased. Without the /K or /N option FileID will 
                    prompt the user whether to keep the null file or not.
                    Use this option only if you know what files are going to 
                    be erased. Some programs create and USE zero length files.

LINEUP      L       Align the file extensions. No dot is displayed to
                    separate name and extension. This will have no effect
                    when running in Windows 95 with the /W option.
                    
MONOCHROME  M       Disable all colors. All output will be in NORMAL color.

NOPROMPT    N       This will prevent FileID from displaying prompts to the
                    user. Default answer will be 'No' unless the /E or /K
                    option is also specified. 

OUTPUT      O       Normally output is printed directly to the screen and 
                    thus can't be redirected. With this option FileID will
                    write to the standard output device (via DOS).
                    Colors, pause and prompts are disabled automatically.

PAUSE       P       This will cause FileID to pause after a full screen,
                    so that you can even read the information with longer
                    directory listings. The program will continue when you
                    press any key (other than ESC) or click a mouse button.
                    The number of rows is determined automatically, but you 
                    can change this in the INI file. Turning on this option 
                    disables standard device output.

QUERY       Q       This will show the current build number with date and
                    time. I know, this option is not listed in the /HELP
                    information. Build number 1 was introduced in version
                    2.7 Beta 7.

SUBDIR      S       Scan all subdirectories too. For example, if you want to 
                    find all AVI movies on your hard drive, combine this with
                    the /FIND option: FILEID /SUBDIR /FIND"AVI"

TIPSKIP     T       Do not display a tip on the last line. Tips can be 
                    useful, but after a few times they may start bothering 
                    you. This is the only option that has been disabled in 
                    the unregistered freeware version.

VERBOSEx    Vx      Set amount of information, x = [0-4] (see below)

WIN95       W       Using this option will cause FileID to put the filename
WIDE                and the description on separate lines. This will leave
                    more room for long descriptions, and in Windows 95/98
                    the long filename will be shown. It's not possible to
                    obtain the long filenames when running under Win2000.


VERBOSE0    V0      Determine filetype according to extension only! Files 
                    will NOT be opened for a signature check. This is a good 
                    and quick replacement for the DIR command. The old option
                    /0 still works as well.

VERBOSE1    V1      Display short information on filetypes. This will cause 
                    FileID to only check the signature and display filetype 
                    without any extra information.

VERBOSE2    V2      Default - Show extra format-related information

VERBOSE3    V3      Display extra (sometimes more technical) information for 
                    some file formats.

VERBOSE4    V4      This will show as much information as possible. Also
                    information that requires quite some time to obtain is
                    only shown with this option turned on. For now, this 
                    affects only a few formats. For example, with DOS 
                    executables it will display overlay info. It gives a lot
                    of spam with MP3 files :)


DISCLAIMER
==========
I noticed that everyone puts some kind of disclaimer in their documentation.
So here's mine (in Allegro style):

#include <std_disclaimer.h>

   "I do not accept responsibility for any effects, adverse or otherwise,
    that this program may have on you, your computer, your sanity, your dog, 
    and anything else that you can think of. Use it at your own risk."


TECHNICAL INFO
==============
FileID is programmed and compiled in PowerBasic v3.5. The original 
executable is about 210 kb but I compressed it with PKLite v2.01 to 90 kb, 
which you can check with the /C option...  ;-)
For each file, the program first looks if it recognizes the extension. Then
will be checked if the signature matches this extension. If it doesn't, the
file will be scanned for all known signatures. If the file matches none of 
them, there will be a plain-text check.
The program changes the application title of the MS-DOS window in Windows 95.

Programs/sources that have aided me a lot:
    File identifier from FeFe software v2.0
    Hacker's viewer v6.0
    File Formats Encyclopedia
    http://www.wotsit.org/


NOTES
=====
Some remarkable file formats:

.DOC .XLS .PPT
MS Word, MS Excel and MS Powerpoint files use the same signature. I have no
idea how the files are organized, but I found one 'block' that differs for
each MS Office file type. FileID can find this block most of the times, but
if it can not, the extension is used to determine the MS Office type. If 
anyone knows more about these file types, PLEASE let me know...

.EXE
Executables exist in all shapes and sorts, and it's very hard to find out 
how all compilers put them together. FileID recognizes the signatures of
a few compilers like Pascal, Turbo C, Microsoft C and of course PowerBasic.
Also the best-known compressors are identified, such as PKLite, LZexe,
EXEPACK and Diet. However there are much more compilers and compressors than 
I know of, so many DOS executables will not show any compiler info at all.
Note that any overlay data is also scanned for all known signatures.

.MOV
I noticed that with some movies FileID cannot determine the width and height.
Any experience with detecting QuickTime movies is welcome.

.MP3
I am amazed how they put so much information in so few bytes. The header
exists of only 4 bytes (I'd rather call it '32 bits'), of which 11 bits are 
used just for identification (all set to 1). With the remaining 21 bits it's
possible to find out: MPEG version, layer (MP3, MP2...), sample rate, sample 
size, stereo/mono/2-mono, original flag, copyright flag, and even more... 
This surely is a compressed sound file :)  If you use /V4 with MP3 files, the
ID3 tag is also shown (which can take up to 6 lines!).

.HLP
The windows help file format is terrible! It IS possible to find the title 
of the help window, but only by seeking, reading and searching around in the
file, and even then I cannot always determine the right offset of the title 
string. Microsoft has never published the HLP format, and the information I 
got has been gathered by someone who dumped over 500 HLP files and tried to
figure out all byte meanings.

.FLI
Animation speed for Flic files is expressed in 'delay per frame'. The problem
is that it's not clear to me what unit is used. Some sources say it is milli-
seconds, other sources say it is screen refreshes. The former makes more 
sense to me, the latter gives more rational results. It is possible that the
calculated animation time is not correct.


KNOWN BUGS & ISSUES
===================
Cosmetic:
- When the screen is in some tweaked 90-column text mode, weird output is
  given. This is a limitation of PowerBasic. Adding "SCREENCOLS=90" to
  FILEID.INI will not improve this. You'll have to use /O to print via DOS.
Execution:
- When more than one file is selected in Windows Explorer and the 'Identify'
  option is chosen from the context menu, a separate DOS box is opened for
  each file. Try using 'Identify Contents' on the folder to identify a group
  of files.
- Long filenames cannot be determined in a DOS box under Win2000 or WinNT (?)
- Some text documents will be displayed as source code. This is because the
  file contains one or more specific keywords.


CONTACT THE AUTHOR
==================
If you have any questions, comments, compliments :), bug reports, wishes, 
ideas or just are interested in getting your own free 'registered' version,
or if you know a file format that you would like to see in a future version,
please don't hesitate and contact me:
    Sebastian Groeneveld
    dracuul78@hotmail.com
    http://dracuul.tripod.com/
    ICQ# 21051398

You can also make a telnet connection to "nanvaent.org" and look/ask for a 
player named Dracula, Crossbow, Bugs, Bozo or Spooky.

The latest freeware version will be obtainable from the following site:
    http://dracuul.tripod.com/fileid/
