                                                                  Page i
                          THD ProScan Version 12.0
                                Documentation

Index

Topic - Subtopic................................................. Page No.

Copyright ....................................................... 01
Introduction .................................................... 02
    - The Product ...............................................      02
    - Overview ..................................................      02
    - Registration / Donations .................................. 03
    - History ...................................................      03
The Author ...................................................... 05
    - History ...................................................      05
    - How to contact me .........................................      05
Product Support ................................................. 06
    - Commentary (THD vs other Archive Processors) ..............      06
    - Thanks to... (Credits) .................................... 08

THDINSTL.EXE .................................................... 09
    - Command line syntax .......................................      09
         - ? ....................................................      09
         - /F (Full installation)................................      09
         - {Path to old THDPRO.EXE} .............................      09
         - /NET (network compatible mode) .......................      09
    - Function ..................................................      09
    - conditions for running successfully ....................... 10
    - selection screens .........................................      10
    - final screens ............................................. 16
         - final screen one .....................................      16
         - final screen two .....................................      16
         - final screen three ...................................      16

THDPRO.EXE ...................................................... 18
    - command line syntax .......................................      18
         - ? ....................................................      18
         - CRC (CRC Mode)........................................      18
         - /ADD (ADD description to FDB).........................      18
         - /CO (Convert Only)....................................      18
         - /KO (Keep Original)...................................      18
         - /LA (Log All).........................................      18
         - /NODESC (NO DESCription).............................. 19
         - /OV (OVerride)........................................      19
         - /RO (Read Only).......................................      19
         - {COMPORT} ............................................      19
         - /60 /120 /250 /450 /750 /1500 ........................      19
         - {CONVERT INDICATORS} .................................      19
    - Requirements ..............................................      19
    - Function .................................................. 20
    - Features .................................................. 21
    - Basic operation ........................................... 27
    - CRC mode ..................................................      27

                                                                  Page ii
    - Conversion and Convert-Only mode .......................... 28
         - Deep File removal during conversion .................. 31
         - Converting non-archives...............................      31
    - Test mode ................................................. 33
    - Frequently asked Questions................................. 34

THDPLUS.EXE ..................................................... 37
    - command line syntax .......................................      37
         - ? ....................................................      37
         - /ALL (process ALL)....................................      37
         - /REMOVE (mark to REMOVE)..............................      37
    - Requirements ..............................................      37
         - Operation ............................................      37

TESTINFO.DAT .................................................... 39
    - What is it? ...............................................      39
    - Why is it? ................................................      39
    - How does THDPRO use it? ...................................      39
    - How can others use it? ....................................      39

THDTERM.EXE ..................................................... 40
    - General Information .......................................      40
    - command line syntax .......................................      40
         - {Comport} ............................................      40
         - /S (Source directory) ................................ 41
         - /C (Configure) .......................................      41
    - Requirements ..............................................      41
    - Function ..................................................      41
    - Features ..................................................      41
    - Basic Operation ........................................... 42
    - THDTERM and Filedoor ......................................      42

THDDEMO.COM ..................................................... 42
    - Purpose ...................................................      42
    - ANSI Files ................................................ 43
         - THDPRO.AN? files .....................................      43
         - PAINSOFT.AN? files ................................... 44
         - PAINSOFT.ANS ......................................... 46

COMMENTS ........................................................ 47
    - THD ProScan's custom / configurable comment control .......      47
    - Randomly selected comments ................................      47
         - Comment by area ......................................      47
    - Keyword replacement / customization ....................... 49
         - keywords .............................................      49
ENVIRONMENT VARIABLES ........................................... 53
    - THDZIP ....................................................      53
    - THDARJ ....................................................      53
    - THDOPT .................................................... 54
SECURE MODE ..................................................... 55
    - THDPRO.EXE /SEC ........................................... 56
    - THDPRO.EXE /SECTEST .......................................      56
NETWORK NOTES ................................................... 57

                                                                  Page iii

                                  - PREFACE -

     THD ProScan is a collective effort by myself and a number of others.
While most of the time you associate only myself with the various releases,
I feel that I need to take a moment to acknowledge that were it not for the
great users and fantastic beta testers, this product might have long since
been history.
     Since the inception of THDscan (about 5 years ago) there have been
many people who have helped to find problems and offered assistance in many
other ways. This version of THD ProScan is dedicated to all of those people.
Without regard for how great or how small their contribution, these are the
people who have made it possible for you to receive this version.
     Please take a moment to read the credit section of this documentation.
Although only a few are specifically listed in that area, it is worth noting
that there are in fact many other contributors. Some who have made donations
or incurred costs, or perhaps even simply made a comment or suggestion are
still deserving of a mention.
    Among those rarely ever mentioned, I would like to thank the makers of
the products that THD was designed to replace. While I would never recommend
some of the products that fall into that category, I can't help but remember
that had it not been for those inferior products, THD might never even have
made the drawing board.
     The early creators of file processors missed a great many details now
considered standard, however without their original ideas, this product and
many others may not ever have come into existence.
     And to my competitors, without whom this product might be only a shadow
of what it is today. Some have been friendly and others have been downright
destructive, but all have helped in the creation of various versions.
     While no implementation in THD has ever been taken directly from another
product, many of the "toys" are based on suggestions from users who had seen
similar options in other products. As I'm sure on occasion users of other
products have made suggestions based on things they have seen in THD.

     I could never hope to mention everyone who has made a relevant
suggestion for the improvement of THD. Nor could I hope to recall all the
people who have made a significant difference in it's development. What I
can do is to thank them all here for their contributions, whether
intentionally or by circumstance.

     So, to all the testers, users, non-users, nay-sayers, praisers, critics
and competitors...
Thanks for your contributions, no matter how great or how small...

       This one is dedicated to you.


                                                                  Page 01
                                 -------------
                                 - COPYRIGHT -
                                 -------------

         The following  copyright covers  THD ProScan and  all of it's
         parts,  including  (but  not limited to),  THDPRO,  THDINSTL,
         THDPLUS, THDTERM, THDDOC and THDDEMO. The TESTINFO.DAT format
         is covered by a separate copyright.  Please see  TESTINFO.INC
         for details.

         These programs  and  all  of their  associated names,  files,
         logos  and  makeup  are  Copyright  1992 - 1996 by  PainSoft.
         Absolutely  no  duplication  in whole or in  part is allowed.
         With the exception of  duplication of the entire archived set
         of files  for distribution to those in need of it's services.
         None of the  copyrighted material  may be changed in any way,
         except by the author.  Changes made by the author's original,
         unmodified  installation  program will be  considered to have
         been made by  the author for the purpose  of this  copyright.
         The files may be  rearchived in  ANY  fashion which  requires
         them to be  restored to their original condition before  use.
         (Portions are Copyright  Borland  International).  The Author
         accepts  no responsibility  for the  actions of this program.
         It is  FREEWARE  and NO  charge may be made for distribution.
         It is  NOT  a commercial  product  and  the  ONLY  acceptable
         charge for it will be "actual, physical cost of duplication".

         Other products mentioned are  copyrighted by their respective
         owners and  include their  own  restrictions  for use. Please
         be  sure to  register  those  products  if  requested  by the
         copyright holders.


                                                                  Page 02
                              ----------------
                              - INTRODUCTION -
                              ----------------

- The Product -
---------------

- Overview -

     THD ProScan is a File Processor. It was conceived as a security
conscious method for testing the integrity of archived files and has
evolved from a 50 line batch file to what you see now.

     The general purpose of a file processor is to perform a series of
tests on a given file (usually an archive) and report the passing or failing
of the various tests. The types and number of tests done will vary with the
program being used, but the one test viewed as the most important is the
Virus Scan. Others tests are (or are not) performed depending on the
software being used. Normally things like CRC testing and commenting of
archives are standard procedure.
     These products are known by many names, almost all of which are a
contraction of one of FILE, ARCHIVE, or UPLOAD and TESTER, PROCESSOR or
CHECKER. Whatever they call themselves, their usual goal is to offer some
assurance that the files have been reasonably tested for integrity.

     The difference between this and many other upload testers is one of
priorities. Most upload/file testers regard the testing of the file as the
single most important factor. THD ProScan, on the other hand, has a
different view.
     THD ProScan is designed with security as the single most important
factor in a file tester. It is with this in mind that THD ProScan has been
programmed from day one. This is also the reason why some things that you
might "like" to see are not present. You cannot change a number of things
which others allow. The reason being that the options used in this tester
are the ones most likely to stop people from gaining access to your
computer. Simple things like not allowing user definable commands to be run
and insisting that full paths be supplied, help to ensure that the sysop
without a full working knowledge can get as much benefit from this tester as
the seasoned pro.
     By the same token, THD ProScan also attempts to compete and defeat the
so called "competitors". It attempts to do as many things as could be
realistically asked of an upload tester, while maintaining the security that
prompted its creation as well as being generic enough to be used by as many
BBS programs as possible.
     I think you will find that the number and types of options available in
this tester rival or exceed those available with a number of other testers.

                      If you need an upload tester...
                      -------------------------------
                      ---- YOU NEED THD PROSCAN -----
                      -------------------------------

                                                                  Page 03
- Registration / Donations -
----------------------------

     While THD ProScan is a FREEWARE product, the author (that's me) does
gladly accept donations. There is no "set" amount or for that matter it
doesn't even have to be cash.
     Please read REGISTER.TXT. The address is found in the author section of
this documentation and/or the first screen of THDINSTL.EXE.

- History -
-----------

     Long, long, ago and far, far, away.. I used to call about 40 BBS'es a
day. I became concerned one day when I uploaded a file and it failed
something called an "upload test".
     I quickly downloaded the program which failed my file and was amazed at
what it was attempting to do. (cool I thought). However upon looking closely
into what it was doing and how it was being done, I became VERY concerned.
This program could give a user COMPLETE control of the sysop's computer if
they created just the right archive.
     Being the conscientious little co-sysop that I was, I went searching
for a similar program without the flaws present in this one. Believe it or
not, I couldn't find one. I decided instead that I would create a
"secure" batch file for this sysop to process his uploads. I made one that
worked on my system, then I made it configurable (so that the sysop could
customize it for his system).
     And such was born a 4DOS dependant batch file called THDScan. (are you
still with me?). Others of course called and saw the "neat" screen output
and inquired as to where they could get a copy and so on.. Many were amazed
at what could be accomplished through batch processing and began to use it.
As is normal, problems began to arise and improvements were requested. And
so development of THDScan continued.
     This development saw many changes and additions to THDScan through the
time it was being improved. But alas, as is always the case, some
spoilsports refused to use it because it was a batch file (not to mention it
needed 4DOS or NDOS to properly run). And so development of an executable
version of THDScan began.
     No-one was willing to "program" it my way, so I started to learn Turbo
Pascal in the hope of creating it myself.
     And after much hair pulling, on August 20, 1992, the world was
introduced to THD ProScan Version 1.0. (more like about 45 local systems).
Things continued on with bug reports and so on (what can I say, I never
programmed anything before). And so began the upgrading of THD ProScan.
     Somewhere around version 6.0, I was surprised to receive a netmail from
Ireland making inquiries about my program (whoa.. all the way from Ireland).
I asked this person for explanations, what I could do etc. and he was most
helpful in showing me what he wanted added/changed to support his particular
use.

                                                                  Page 04

     Soon thereafter netmail started coming from everywhere (okay .. almost
everywhere). THD had somehow become a popular program. From that point onward
THD has been treated by me as a major endeavour.
     The Version 12 being released today, is the result of many such
communications and many, many, many, many (did I say many?) hours of work,
none of which I have ever regretted.
     For those of you who are dying to know, THD actually stands for
"The Head Doctor" (the alias of the sysop for whom the original pre-version
1.0 THDScan Batch file was created). I have long since lost contact with
him, and many of the people whom I knew at that time. But I suppose I ought
to thank him for lending me his monogram.
     So there it is.. everything you never wanted to know about THD ProScan.


                                                                  Page 05
                               --------------
                               - THE AUTHOR -
                               --------------

- History -
-----------

     Who am I?

     Hi. I'm David Muir, born in the winter of 1962. I was introduced to
computers about 9 years ago by a friend. BBSing at that time was something
that I hadn't even considered.
     Not too long after that I got my first IBM compatible computer. I
played games, made notes, and used it to keep my company records. It was a
tool. After scooping some neat toys from a friend, I began to inquire how he
came about getting them, he explained about modems and BBS'es. I soon after
purchased a neat 2400 bps modem and got a few numbers off of him.
     In no time flat I was a BBS junkie. Calling up to 40 BBSes at a time
and trying my best to help people out. I eventually got to co-sysop on about
15 of those boards and was quite in demand as a co-sysop (due mainly to my
security conscious approach). But time took it's toll, and eventually I had
to lessen my outgoing calls. Somewhere in there THDScan was born and later
THD ProScan.
     So now I'm a 33 year old computer junky, who loves nothing more than to
get netmail from places I've never been and help people with problems I
don't have.
     THD ProScan is my way of helping. And a pretty good reason to talk to
people from distant places. Generally I'm a pretty boring kinda guy who's
more than willing to lend a hand when I can.

- How to contact me -
---------------------

     I can be reached via Netmail at Tim Strike's BBS

The Forbidden Knights
1:259/423.0 (fidonet)
(905) 820-7273
Mississauga, Ontario
User name- David Muir
Alias - Pain

     Home is...

David Muir
198 Leyton Ave
Scarborough, Ontario
Canada, M1L 3V6

     I'm also available in numerous other nets (look for Tim's BBS) as well
as following many of the public echos which relate to BBS support. For
support you "should" consider picking up the THDPRO Support echo from the
Fidonet Backbone.

                                                                  Page 06

                             -------------------
                             - PRODUCT SUPPORT -
                             -------------------

     Product support is available directly from the author according to the
information above. However, you might find that many people in the public
echo areas are willing to help as well.
     Most of the sysops listed as distribution sites will be happy to try to
assist you and if unable to do so, will generally forward questions and
comments to me.
     Questions regarding interaction with your particular BBS type are
generally best answered by those who use the same BBS software as yourself.
If however you're stuck and no-one seems to know the answers, please give me
a shout, either by mail or via netmail (or possibly in the public echos if
you happen to spot me).

    At the time of this Distribution, THDPRO Support is available on the
Fidonet backbone. Support is available there from myself as well as a number
of users and beta testers. (Zone one only "at this time")

- Commentary (THD vs other Archive Processors) -
------------------------------------------------

     In the last few years, it seems that the Archive Processing field has
become VERY competitive. I have done my best to uphold my friendly
disposition in the face of numerous attacks, both on myself personally as
well as on my product.
     So people who don't want to know how I REALLY feel should not read
this.

     Still with me? Okay...

     THD ProScan is NOT a hobby. It's not something I do to rip the nice
sysops off for their money. It's not a pastime that I use to fill my empty
hours. It IS an obsession. THD is what I do. To attack it, is to attack me.
I do engage in employment as well, but that is something which I am paid to
do and do not do because I "desire" to do it.
     In the two years, I have been called everything from a complete fraud
to a liar. I am neither. THD has been called ineffective, inefficient and
unreliable. It is none of those things.
     What THD is, is quite simply my way of saying thank to the many sysops
out there who need something and may not know what. THD is built with
security in mind. To date NOT even ONE other archive processor has been able
to match THD in its efficiency and security. Now to be fair, there are some
that I have not tested.

                                                                  Page 07

     I do not begrudge the other authors who believe that their product is as
good or as secure as my own (or those who believe that theirs is superior to
mine). But I can tell you, in all honesty, that with the singular exception
of THD ProScan there does not exist an upload tester (of which I am aware)
through which I cannot pass a KNOWN virus in a legitimately testable archived
file. This refers to a virus that will be recognized by McAfee's VirusScan if
all archives are expanded and all resulting files are tested. This does not
refer to any underhanded encryption technique or creation of the virus after
being tested. But an honest to goodness real virus in a file type which those
other do test.
     Some of those other products can even be manipulated by an uploaded
archive to allow the remote user "FULL" access to the host system.
     If it's any consolation, the last statement refers to fewer and fewer
products as time goes by. Most regularly updated processors do guard against
this particular instances.. BUT NOT all of them, so watch for these.
     I specifically will not mention any of the people who have attacked
myself or my tester. But I will be honest, in saying that if I ever actually
tell you not to use a specific product (something I would rarely ever do), I
do have my reasons and they are never related to anything as petty as
revenge.
     I stand behind my product. I believe what I tell you about it, and most
of all I make it for you.. not me. (I have no use for about 90% of what is
coded in there, 10% is coded for me the other 90% is coded for the people
who use it). Remember that I am not a sysop and most of the features in THD
are BBS related.
     As a final note. Many of my competitors in the Archive processing field
are not described above. Many are very friendly and professional people who
have never said anything to belittle myself or my product (or anyone else's
product). Many of them are good intentioned hard working people, bringing
you what they believe is an excellent product. Please if you use one of
these other products and the author requests registration... be sure to
register the product. The amount of work that goes into these things is not
petty and those who request registration have worked long and hard to
produce that product for you. Be sure to remember that when you see them
asking for registration.
     Above all. Remember that I truly do believe that THD is a superior
product. (and I have tested enough of them to make a reasonable judgement)
     If you feel that another product is better (or better suits your needs)
then use it with my blessing. The final consideration must be what you
believe you need and not what myself or another author thinks.
     Thanks for reading my babblings...

     David Muir... Author THD ProScan.


                                                                  Page 08

- Thanks to... (Credits) -
--------------------------

     The list of people who have aided in the Development of THD ProScan is
far too long for me to list here (and to be totally honest, I don't think I
could name them all).
     The following is a list of people who's input has been extraordinary is
not necessarily all inclusive. I have tried to give credit where credit is
due. I have many people to thank that are not listed specifically in this
text.

     Thanks to all the sysops who, at various stages, helped in the
betatesting of this product. Many helped me to find "minor" inconsistencies
and fix them before you got to see it.
     A VERY special thanks to Eugene Chin for his great assistance in
betatesting the first releases and making valuable suggestions about the
program.. Many of which were implemented, And of course some which were
not.. But all of his suggestions and comments were considered.
     A special thanks as well to "Eternal Darkness" for his contribution of
the "user side ansi screen". He willingly gave me a number of "ansi" drawings
with permission to modify them as was necessary to suit my purpose. The ansi
your users see is only very slightly modified from the ansi I received and I
think he did an excellent job.
     A thanks as well to David Luckie who reported the problem which Version
4 fixed. Without his inquiries the integrity of this program might have been
severely compromised.
     And to Tim Strike for his assistance in too many aspects to list in this
document, including relaying David's concerns and replies so that I might be
able to fix the problem.
     To Neil Dempster for his support and constant questioning (not to
mention the extra drives).
     To Mark Kerr for his inquiries into the "move/rename" aspect of the
program. As well as making me aware of the number of RA supporters.
     A VERY Special Thanks to Rudy Ramsey for rushing me the registration
key for VENDEDIT so that THD ProScan could be distributed with a valid
VENDINFO.DIZ. Persons with inquiries regarding the VENDINFO standard should
contact Rudy Ramsey as noted in the VENDINFO.DIZ included with this package.
     To TurboPower Software for the use of their EXECSWAP program.

     And again to Mark Kerr, Tim Strike and Don Johnson for their absolutely
selfless assistance with the distribution of THD ProScan, it's betas and for
doing me far too many favours to ask of any reasonable person.

To all Beta sites, past and present. And to anyone who ever reported an
error so that I could endeavor to fix it or made a suggestion to improve it.

                                                                  Page 09

                              ----------------
                              - THDINSTL.EXE -
                              ----------------

     THDINSTL.EXE is the installation/configuration for THD ProScan.
THDINSTL accepts four (4) different parameters. (note that "/NOMOVE" is no
longer supported as a commandline parameter. Instead "Failed File Moving"
can be toggled from the final screen).

- command line syntax -
-----------------------

- ? -
    Running THDINSTL.EXE ? will result in a quick display of the commandline
options available for running THDINSTL.EXE.

- /F -
     Running THDINSTL /F will cause the installation to emulate an original
installation as if the file had never been configured before. Useful if you
have made major errors or wish to make major modifications to your
configuration.

- {PATH\TO\OLD\THDPRO.EXE} -
     Running THDINSTL.EXE C:\OLDTHD\THDPRO.EXE will result in THDINSTL
reading the file who's name is supplied. If this file is found to be a valid
THDPRO.EXE from the version 6.0 or later than the configuration from that
file will be extracted for use in configuring the THDPRO.EXE in the current
directory. If it is not recognized as a valid THDPRO.EXE, it will default to
a full installation process.

- /NET -
  Running THDINSTL.EXE /NET will run in "network compatible mode". This has
the effect of not including the drive letter specifications when files are
found. As well it changes drive selection to allow only the use of the current
drive for the creation of its temporary directories. This is exactly the same
as renaming THDINSTL.EXE to NETINSTL.EXE as explain under "Network Notes".
IF used, this parameter must be the last thing on the command line.
BEFORE using this parameter, be sure to read the Network Notes!

- Function -
------------

     The sole purpose of THDINSTL.EXE is to configure THDPRO.EXE. If
THDPRO.EXE is not yet configured, you will be stepped through a series of
questions. Answer these questions appropriately by supplying paths etc,
until the final three screens, where you will be shown the results of your
input, and have the option to make changes prior to changing the
configuration inside THDPRO.EXE.
     If THDPRO.EXE has been previously configured, THDINSTL will read that
configuration and skip directly to the final three screens, from which you
can opt to make changes.
     At almost any time during the installation you can press function key
F1 to receive online help or F2 for a shell to the operating system.


                                                                Page 10
- conditions for running successfully -
---------------------------------------

     THDINSTL, insists that the THDPRO.EXE which is to be configured is
present in the current directory when it is run.
     THDINSTL, requires approximately 150k of free memory to run (more or
less may be required depending on your use of the dos shell feature available
by pressing function key F2).
     Changes will only be saved by hitting "enter" from the final screen.

- selection screens -
---------------------

     THDINSTL will step you through numerous screens. This text will only
outline those screens which require more than a path to a file be supplied.
For those entries which are simply paths, you should supply a full drive
path and filename (complete with extension). The exception being that persons
running on networks should not supply drive letters and should also read the
section marked "NETWORK notes".

- The very first screen after product identification will show the following
  prompt. I think it's pretty much self explanatory.

    Please press "C" to continue.
    Any other key will abort the installation.

- Next screen.. same idea...

     PRESS ANY KEY TO START THE INSTALLATION...

- THD ProScan, records all of it's activity in a log file
called "THDPRO.LOG" which is kept in your BBS directory.
Please input the maximum allowable size for the log file.

A value of "0" avoids THD's internal logging entirely. However the
Virus scanner log is still kept.

A negative entry will result in a logfile
which will grow to the limit of the available disk space.

Please enter the maximum allowable log size---¯  5000°°°°°°

- [DOS Version ONLY] - The option to reboot and drop carrier on virus
uploaders are simple yes/no choices. Both of these options use the fossil
to perform these functions. Generally it's a good idea not to drop carrier
on users. And rebooting your system upon detection of a virus is generally
not necessary.


                                                                  Page 11

- The option to supply a maximum size to autotest files is simple. If for
some reason you do not wish to test large files, you can select to not test
files automatically if they are larger than the selected size.
     Any files over this size will cause THDPRO.EXE to prompt the sysop for
5 seconds to press a key. If the sysop presses a key, then the file will be
tested. If no key is pressed, then the file is passed without testing and a
note is logged.

    A) 1 Megabyte  (1024576 bytes)
    B) 2 Megabytes (2049152 bytes)
    C) 3 Megabytes (3073728 bytes)
    D) 4 Megabytes (4098304 bytes)
    A/B/C/D to set size or "ANY OTHER KEY" to test all files  ------¯

- Default comport. seemingly simple enough. This entry accepts a digit
between 0 and 8. If your BBS can pass a comport, then I recommend setting
this to "0" and let the BBS supply the comport when necessary.
     If you run a single node BBS which can not pass the comport, then
setting this to the appropriate comport used by the BBS would be correct
entry. Note that this entry goes by the human definition of comport and not
by the fossils definition. (com 0 is local [no comport] and not port 1 as
would be determined by most fossil drivers). Users of the OS/2 version should
set this to "0" as the OS/2 version requires a "file handle and not a
"comport".

- Local comport is a very specific setting for a very specific circumstance.
Almost everyone should set this to "0". If you think perhaps you need this
setting, then hit function key F1 from this screen for a description of who
does and does not need this. Again, users of the OS/2 version should set
this to "0".

- BBS name. This entry is limited to 39 characters (as are most of them
which require multiple character input). This entry MUST be made. if you
don't run a BBS enter your name or alias at this prompt. This is the name
which the user side will show THD as being "Registered to".

    Please enter the full name of your Bulletin Board
    ie. The Best Little Board in Texas

    Input Name---¯:

- Log directory. This entry requires a path to a directory in which you
would like THD to keep it's log files. THD keeps a log for each file tested.
This entry is mandatory.

    Please enter the FULL path to your LOG directory
    ie. C:\BBS  (No ending "\")

    Input LOG Directory---¯:

This entry will be required regardless of whether logging is active.

                                                                  Page 12
- Reject directory. this is the directory to which THDPRO.EXE should move
failed files If the FAILED FILE MOVING is set to normal (from the final
screen of the installation). This entry must be valid. it will not be used
if failed file moving is turned off, but must be configured just in case.
Enter the path to a directory which THD should move such files.

- BBS Type.

    Which of the following BBS types are you running?

    1- RemoteAccess (version 2.0? or 2.5?)
    2- Telegard (version 2.7 or 3.??)
    3- Renegade (07-17-93 or compatible)
    4- FILES.BBS
    5- PCBOARD (version 15.0 or compatible)
    6- T.A.G. (version 2.7 or compatible)

    O- Other (Create TESTINFO.DAT file)
    N- None  (Do not create a data file)

    If you are not running any of the above enter "N"

     If you use and want THD to update the file bases for one of these BBS
types. Select that BBS type. the installation may prompt you for a path or
other information if you select one.

     Selecting "O" (for other) will tell THDPRO.EXE that you do not run one
of the supported BBS types, but that you wish it to create a TESTINFO.DAT
file for each file processed. This file can be used by external utilities to
update the file bases for types not supported by THDPLUS. This should only
be selected if the utility you are using specifically requests that this
file be created.

     Selecting "N" (for none) Tells THDPRO.EXE that you are not using one of
the supported bbs types (or do not wish them to be updated) and that you do
not wish to have a TESTINFO.DAT file generated.

If your BBS types is not "expressly" listed here select "N" unless you have
an external interface which requires you to select "O"ther.

- Age/date limit. This option allows you to limit the acceptance of files
based on the dates of files included in the archives. If you wish to limit
file by age or date, you would be well advised to look into the online help
at this screen (F1).

                                                                  Page 13
- VENDINFO.DIZ file support. THD supports the Vendinfo.diz file standard
version 1.00 in a limited capacity. The capacity is limited to descriptions
(and Author name as well as Product name and version in comments only)
     I strongly recommend using these descriptions if you use description
importation at all. These descriptions ARE supplied by the author and are
generally good descriptions. The file contains 6 distinctively different
descriptions (they are not just cut off at "x" number of lines)

    0 - do not use VENDINFO descriptions.
    1 - 60 character description.
    2 - 120 character description.
    3 - 250 character description (suitable for TG/RG/FILES.BBS).
    4 - 450 character description (FILE_ID.DIZ size).
    5 - 750 character description.
    6 - 1500 character description.

- Heuristic Failures
     If you select to use a heuristic tester for virus scanning THDPRO.EXE
can be set to either fail those files which raise heuristic flags or to pass
them. If you use ONLY heuristic testers, this will default to fail
heuristically flagged files. If you use SCAN.EXE for detection you can
choose to only log instances of heuristic flagging.


-File comments. File comments are a very complex issue in THD ProScan. At
this screen your choice is simple. You can opt to enter a single path to a
file to be used as a file comment for every file (option 1) or supply the
path to a list of comments (option 2). For more information on the many
options available for file comments see the appropriate section in this
document.

    1. You can supply the full path to a file
          to add as an "archive comment"
                    OR
    2. You can supply a full path and filename to
       a list of such files to be chosen at random.

    Press any other key to skip this entry

                                                                  Page 14
- Drive options. this selection refers to the drives THDPRO.EXE should
attempt to use when making it's temporary directory structure (temporary
workspace). THD automatically detects the drives present on the system and
displays the first three here. To access a drive not shown here remove one
or more drive letters by entering the letter of the drive to be removed.
     For information or other options you should see the online help from
this screen (F1). The "0" option tells THDPRO.EXE to use ONLY the default
drive for it's workspace. This is HIGHLY recommended for Network operations
or other environments when drive specifications can cause confusion.

    THD ProScan will use the following drives to test files.

    Drive C:
    Drive D:
    Drive E:

    If you do NOT wish one of these drives to be used for testing.
    press the drive letter to "NOT" do testing on.
    To access a drive not shown here, remove one or more of the above
    drives, until the one you want is displayed.

To reverse the order showing press "1".
To Rotate the order press "2". For network comp. mode press "0".
[enter] accepts the configuration shown...

- File removal is a relatively complex choice. Choices 1 and 2 are
relatively simple. for an explanation of CRC removal see the section on CRC
mode. The online help also gives a brief explanation (F1 from the
appropriate screen).

    1. You may supply a few filenames to be removed.
    2. You may supply a list of filenames to be removed.
    3. You may choose to remove files by their CRC values.
    4. You may remove files using by BOTH CRC and filenames.

    Choosing to use both list types will remove files based
    on their CRC values and then check the remaining files for
    files to be removed by name only.

- The "files to add" option allows THDPRO.EXE to add files of your choice to
each archive tested (except protected archives). At this screen you can
supply a few file names or a path using wildcards indicating which files
should be added (hit enter for none).

-  A feature of this tester is the ability to reject files from a list of
file names. This list must be a list of file names ONLY with no extension
with each name on a separate line. The HACKLIST "*.COL" files are compatible
with this format and "may" be used directly. The hacklist "IDX" files can
also be read directly by this tester.
     At this point you can hit enter to skip this option or enter the full
path and filename of a list of files to be used as a hacklist. (See the
section on file formats for specific information on the acceptable format of
a hacklist)

                                                                  Page 15

- This Version of THD ProScan allows you to select "default" options. If you
choose to configure these options they will only be utilized if no options
are entered on the command line. Supplying any parameters on the command
line other than a file path and name will cancel these options.

    Options which can be set by this configuration are...
    The conversion type and level -
    The /NODESC option -
    The /CO feature -
    The /KO feature -

    Do you wish to set/modify defaults for any of these? [y/N]

At this point if you select to have THDPRO.EXE assume default command line
options, you will be prompted as follows...

    The default options are as follows...
    These options are "toggles".
    To change the setting of any given toggle simply enter
    the corresponding letter.
    * Note that some options are unavailable without a conversion type. *
    Hit [ENTER] to accept the defaults as shown.

    A-- Conversion "OFF" by default.
    B-- Convert-only mode  ("/CO") - FALSE
    C-- Keep-Original mode ("/KO") - FALSE
    D-- Convert indicator          - None
    E-- Use /NODESC option         - FALSE

As you select options, the various values will change on the screen
indicating your choices. Hit enter when the choices match your desired
settings. (You might be best not to change these until you are familiar with
the command line options and what they do).


                                                                  Page 16

- THD ProScan has 3 user definable levels for archive conversions. You
should select to modify one or more of these options if the preconfigured
levels are not to your liking.

  Do you wish to view and/or modify these settings? [y/N]

If you select YES you will see a screen like this..

    Available options                   level4      level5      level6

    Convert imbedded archives           FALSE       FALSE       FALSE
    Convert SFX main archives           FALSE       FALSE       FALSE
    Convert SFX imbedded archives       FALSE       FALSE       FALSE
    Convert odd name main archives      FALSE       FALSE       FALSE
    Convert odd name imbedded archives  FALSE       FALSE       FALSE
    Convert protected main archives     FALSE       FALSE       FALSE
    Convert protected imbedded archives FALSE       FALSE       FALSE
    Convert archives of the same type   FALSE       FALSE       FALSE

    Arrow keys to move around.
    [SPACE] key to toggle the highlighted value.
    [ENTER] key to accept all values shown.
    Press desired key ...

Change the values by following the instructions. To use these levels see the
section dealing with Conversion mode.

- final screens -
-----------------

     After answering the numerous prompts in the install you will be
presented three final screens. The options on these final screens are
shown below. Some options may not be seen prior to the final screens.

     The options available on the final three screens are generally a recap
of information you have entered during the installation up to this point. To
change any of the entries type the letter which corresponds to the entry you
wish to change.

- Final Screen one - contains only selections which would have been
configured to this point.

- Final Screen two - contains only path to utilities which you would have
configured prior to this point.

- Final Screen three - has two option which you will not yet have seen
they are options "G" and "I"


                                                                  Page 17

     - Option "G" deals with the timestamp of the file being tested. This
should be set to indicate what timestamp should be put on this file.
     Hitting "G" from this screen will toggle between the following four
choices.

   G-- File's Timestamp      -- Use date of newest internal file.
     This option uses the timestamp of the newest internal file for the
     finished archive.

   G-- File's Timestamp      -- Update to current date and time.
     This option uses the current time and date for the finished archive.

   G-- File's Timestamp      -- Use File's upload date and time.
     This option uses the timestamp that the file had when it was uploaded.

   G-- File's Timestamp      -- "Best Guess" at original date and time.
     This option uses a calculation based on a average of the 5 newest files
     in the archive. Recommended only if you don't normally strip others BBS
     ads from the archives.

- Option "H" is used to determine if THDPRO.EXE should move and/or rename
files which fail it's various tests.
     IF your BBS handles the moving of files when they fail (like
RemoteAccess) then this should be set to inactive, so that the BBS can find
the files to move them.
     If however your BBS does not handle moving of failed files (like
Telegard 2.7), you should set this to "normal" so that THD will move the
files as needed to avoid having the BBS delete them.
      If you are unsure, set it to normal and change it later "if necessary".

- Option "O" is toggled to invoke SECURE mode. Secure mode is explained in
detail elsewhere in this document. You should set this to false until you
have completely reviewed the section on secure mode.

    From this final screen hit [enter] to save the configuration into
THDPRO.EXE and you are done.
     Remember that throughout this process pressing F1 will get you online
help, and F2 will provide a dos shell. For the record, the online help in
most cases offers a more complete description that is present in this
portion of the text.
     At any prompt, configuration can be aborted by hitting CTRL-C.

                                                                  Page 18

                               --------------
                               - THDPRO.EXE -
                               --------------

- Command line syntax -
-----------------------

- ? -

    Running "THDPRO.EXE ?" will result in a help screen which gives a brief
description of the proper syntax, for the various modes.

    - With the exception of the ? option, all other options require supplying
      a filepath.

- /ADD -

    Using this switch tells THDPRO.EXE to toggle the flag in the TESTINFO
record which indicates that the user wishes to have a record added to the
file database if one does not already exist. THDPLUS does not support this
option. It is included for users of third party utilities. This is identical
in function to "SET THDOPT=ADD".

- /CO -

    Running "THDPRO.EXE {drive:\path\filename.ext} /CO [Convert Indicator]"
invokes THDPRO.EXE in Convert-Only mode. Using this switch will cause the
file to be converted to the type of the convert indicator which must also be
supplied (convert indicators are explained below).
    No "testing" will be done in this mode.

- CRC -
    Running "THDPRO.EXE CRC {drive:\path\filename.ext}" will invoke
THDPRO.EXE in CRC mode. CRC mode is explained in detail later. This is the
only mode in which wildcards will be accepted.

- /KO -

    When conversion mode is active (either Convert-Only mode or normal
test/convert mode), if this switch is supplied, THDPRO.EXE will not delete
the original file after conversion takes place. (Normally if conversion is
successful, the original file is deleted and replaced by the newly converted
file).

- /LA -
    Using this switch (Log All), THDPRO.EXE will not exit immediately
following a failed virus scan. Instead, it will finish scanning with all
configured virus scanners before indicating a scan failure. This can be used
to record the log output of the three scanners into HEURIST.LOG. Note that
output from the SCAN 1.x.x series is not logged, but Scan 2.x.x as well as
F-Prot and TBSCAN are logged.

                                                                  Page 19

- /NODESC -

    Running "THDPRO.EXE {drive:\path\filename.ext} /NODESC" will result in
normal running of the test mode of THDPRO.EXE while NOT importing the
descriptions into your file data bases. This switch is useful when you wish
THDPRO.EXE to update your data bases in regards to name changes but not in
regard to descriptions.

- /OV -
    Running "THDPRO.EXE {drive:\path\filename.ext} /OV" will cause THDPRO.EXE
to ignore the internal time and space limitations. This is useful to test
files which you do not wish tested automatically, but do wish to test
manually. This allow you to test files which failed due to time or space
restrictions without needing to change these settings in the configuration.

- /RO -
   Tells THDPRO.EXE to treat the file as if it resided on a READ-ONLY media.
Use this option to avoid having THDPRO.EXE make any changes to a file
whatsoever. This should not be required to test CD-ROM drives as they "should"
be automatically detected. If however you have a read-only media not
recognized as a CD-ROM or if you just want unmodified files then use this
switch.


- 0 (1,2,3,4,5,6,7,8) {COMPORT} -

    Supplying a single digit of 0-8 on the command line will cause THDPRO.EXE
to ignore the internally configured comport and use the comport number
supplied on the command line. The use of "0" will cause no remote output to
take place (this forces local mode). Other comport numbers will supply remote
output to the comport supplied.

- /60 /120 /250 /450 /750 /1500 -

    Use of any one of these switches will inform THDPRO.EXE that instead of
the comment size selected in installation, you prefer it use this "/xxx" size
for commenting files. Note that this size selection refers ONLY to
descriptions taken from a VENDINFO.DIZ and ONLY as used in file comments.
These switches were added to allow you to have 1500 character descriptions
in your File base but not be forced to have the same size comment in your
file comment (if you chose to use that option). These switches have no effect
when descriptions are taken from the other than VENDINFO.DIZ files.

- TOZIP (TOARJ,TOLHA,TOSQZ,TOUC2,TORAR) {CONVERT INDICATORS} -

    These six labels are called Convert Indicators. Using these on the
command line will cause THDPRO.EXE to go into conversion mode. (note that
without the "/CO" switch testing will be performed as usual and conversion
will follow immediately thereafter).
    Only one may be used on the command line. Detailed explanations of the
various convert indicators is given later in this document.

                                                                  Page 20

- Requirements -
----------------
         This tester requires...

    [ For OS/2 ]
         - IBM/PC compatible 386 or higher with 4 megs RAM.
         - OS/2 WARP version 3 (may or may not work with other versions)
         - SIO.SYS "recommended" (Ray Guinn's replacement for COM.SYS)
         - At least one Harddisk (drive assignment C: - Y:)
         - at least ONE of i) McAFEE's VIRUSSCAN (The 2.?.? series only -
                                                  OS2SCAN.EXE or SCAN.EXE)
                          ii) F-Prot
                         iii) TBScan

    [ For DOS ]
         - IBM PC/XT (or compatible)
         - MS-DOS 3.3 (or higher)(other "DOS" systems MAY be acceptable)
         - A FOSSIL DRIVER (user output will not be sent if no fossil is
                           found but the testing will still be done)
         - At least one Harddisk (drive assignment C: - Y:)
         - at least ONE of i) McAFEE's VIRUSSCAN (the 2.x.x series)
                          ii) F-Prot
                         iii) TBScan
         - Enough free memory to run each of the utilities used by this
           program (+3k). THDPRO.EXE requires about 225k itself to load, but
           releases all but 3k of that to run external programs.

         The following utilities are required depending on which file types
         you wish to test.

         - ARJ.EXE        for "ARJ" files (version 2.41a)
         - GIFTEST        for "GIF" files (version 4.xx)
         - HYPER.EXE      for "HYP" files
         - LHA.EXE        for "LZH" files
         - PAK.EXE        for "ARC" files
         - PAK.EXE        for "PAK" files
         - PKARC/PKXARC   for "ARC" files
         - PKPAK/PKUNPAK  for "ARC" files
         - PKZIP/PKUNZIP  for "ZIP" files (version 1.10 - 2.04g)
         - RAR.EXE        for "RAR" files (version 1.51)
         - SQZ.EXE        for "SQZ" files
         - TDCHECK.EXE    for "TD0" files
         - UC.EXE         for "UC2" files (revision 2)
         - UNP.EXE        for expansion of compressed executable files (v4.11)
     (Where versions are specifically mentioned, it is believed that
      versions other than those mentioned "may" not work as expected.)

      OS/2 specific archivers supported are
         - LH32.EXE       for "LZH" files (version 2.22 by Peter Fitzsimmons)
         - ZIP.EXE        for "ZIP" files (INFO-ZIP version 2.0.1)
         - UNZIP.EXE      for "ZIP" files (INFO-ZIP version 5.12)
         - RAR.EXE        for "RAR" files (version 1.55)

                                                                  Page 21

- Function -
------------

         WHAT WILL IT DO..
              THD ProScan will ..
         1) Check (and/or reject) files from a user supplied list of files
         2) Strip the file comment
         3) CRC test the file
         4) FIND a drive with enough space to test the file
         5) Create a directory called "THDTEMP.???" on that drive
         6) Remove files (if configured) from the archive.
              (Removal by name, by crc, or by both).
         7) Check dates to reject old files (if selected).
         8) Expand the archive into that directory while recreating
               its internal path structure.
         9) Extract and process VENDINFO.DIZ if configured.
         10) It then selectively searches each of the subdirectories created
              for testable archives. If found, it repeats the above process
              until no more archives are found.
         11) It will then scan each of the files in that directory and
              all subdirectories below it.
         12) THDPLUS will run if so configured.
         13) Add your loaders to the archive
         14) It maintains a log in your BBS directory of all actions
              performed.
         15) Perform a complete accurate conversion (if selected).
         16) Add your file comment.
         17) It then proceeds to remove the temporary directory structure.
         18) Updates all of the log files.
         19) Reports the appropriate errorlevel to dos.

              The full process is actually much more complex than this basic
         outline, but the above gives a reasonable representation of what
         happens.
- Features -
------------

- Support for ARC/ARJ/GIF/HYP/LHA/PAK/RAR/SQZ/TD0/UC2/ZIP file formats.

- Allows the use of UNP.EXE to expand compressed executable files prior
     to Virus scanning. In some instances this can significantly increase
     a virus scanner's ability to identify virused files. This option is ONLY
     available during test mode and cannot be used during conversion due to
     the fact that UNP physically changes the files which could adversely
     affect their operation.

- The sysop can cause the program to pause prior to returning from a dos
     process (to allow then time to view the output of the dos process).
     This is accomplished by pressing "P" while the process is running.
     Once paused, you must press another key to resume normal operation.
     Note that "some" programs may flush the keyboard buffer rendering this
     function inoperable.

                                                                  Page 22
- Two testing methods.
     THDPRO.EXE starts out in default mode. In this mode THDPRO.EXE will
     attempt to expand the main file and all of it's imbedded files prior to
     beginning the virus scan. This method is designed for speed, but can
     require a significant amount of disk space. If unable to expand one
     of the embedded files, THDPRO.EXE will drop back to the "FALLBACK"
     method.
     The "FALLBACK" method, extracts and scans each imbedded archive
     separately. This method may not require as much disk space (in some cases
     it requires significantly less), but will take longer to run. This is the
     method used by all previous versions of THD ProScan. The drop to the
     FALLBACK method is automatic and only used when space prohibits the use
     of the default method.

- Intelligent processing of LHA files.
     The handling of LHA files is done in an "intelligent" manner. The file
     type is diagnosed to see if it is expandable on a DOS based system. If it
     cannot be expanded, it will be CRC tested only. If it can be expanded, it
     will be checked for the use of the root directory. If it attempts to use
     the root directory, a clone will be built which makes no attempt and the
     clone will will be expanded and tested in its place.

- Complete logging of file testing.
     All aspects of the test are logged in a file called THDPRO.LOG in
     a directory which you configure in THDINSTL. The size of this log
     is configurable, and it reports processes and failures.

- Logging of heuristic testing only when suspicious code is found.
     It seemed unreasonable to log all heuristic testing, considering that
     MOST of the time there are no infections. The logs kept for failures
     or for suspicious code are generated by the virus scanners themselves.

- Sysop can opt to NOT test files if they are too large.
     During the installation, you can choose to not test files over a given
     size. If you choose this, you may pick from files over 1,2,3 or 4
     megabytes (1048576 bytes per megabyte). If this option is enabled
     and THD ProScan is asked to test a file larger than the "acceptable"
     size, it will prompt the sysop for 5 seconds to press a key. (in this
     way you can still test these files manually by pressing a key). If no
     key is pressed, the file is passed without testing.

- Testing can also be limited based on free disk space, time or expanded size.
     Options allow these specs to be checked during testing so that testing
     can be aborted if these limits are exceeded. The size option can also
     be used to not test a file if the size of the expanded archive is
     "expected" to exceed the size limitation (This last feature is only
     active with "some" archive types). Note that these checks are performed
     after expansion and may have no effect on archives without imbedded
     archives.

                                                                  Page 23
- 100% share aware and compatible (share.exe is not a requirement)
     Before any file is opened by THDPRO.EXE, the presence of share.exe
     is determined. If SHARE is loaded, then the file is opened in a
     shared mode, so that other processes may also use the files. If
     share is not loaded, files are opened in standard mode.
     If file access is denied, THD ProScan will wait for up to 30 seconds for
     the file to be released. If the file is not released in 30 seconds,
     the test is aborted and the file passed. Otherwise, if the file is
     released, testing will resume without incident.

- File descriptions can be directly imported into the file data bases.
     Through the use of THDPLUS, file comments can be added to the file bases
     for users of REMOTEACCESS 2.00(+), Telegard 2.7, Renegade 07-17 and the
     many FILE.BBS supported BBS'es. THDPRO.EXE will create a data file with
     the necessary file information and then call THDPLUS to make changes.
         VENDINFO.DIZ if found will be processed and used regardless of the
     presence of the following files. Without a VENDINFO.DIZ these description
     files will be prioritized in the following order.
        i) FILE_ID.DIZ - if found it will be used.
       ii) DESC.SDI - will be used in the absence of FILE_ID.DIZ.
      iii) DESC.SDN - will be used if neither of the above are found.
     In the event that no description files are in the archive, THD ProScan
     will make no attempt to alter the user's description.

- Allows the sysop to use any combination of
  SCAN.EXE / F-PROT.EXE / TBSCAN.EXE  (1, 2, or all three)
    SCAN.EXE is no longer required due to it's memory needs. Instead
    you may opt to use any or all of the noted virus testers. Or any
    combination of them. However note that at least ONE MUST be used.
    Simply tell THDINSTL the full path and filename of the tester(s)
    that you wish to use and all selected scanners will be run on
    every file. Support for the SCAN 1.x.x series is available through the
    proper use of the THDOPT environment variable (explained later).

- Supports "heuristic" testing for suspicious code using F-PROT.EXE
  or TBSCAN.EXE.
     When testing is done using F-Prot or TBScan, the tests are always
     performed in "heuristic mode". This will enable these testers to
     find some unknown viruses as well as the known viruses.

- Optionally pass or fail files which contains suspicious code found
  by the heuristic testers.
    You can choose to consider "suspicious" files as being virus infected
    and thereby cause THD ProScan to consider them failed. Normally, I
    recommend against this but there are many valid reasons to fail such
    files. DO NOT fail these files if your BBS deletes failed files. This is
    only optional if SCAN.EXE is used. in absence of SCAN.EXE heuristic
    failures will be considered virus infected.

- Allows UNP to be run on all files to expand compressed executables to
     allow virus scanner to better examine their contents. Use of this
     feature can greatly increase the ods of detecting viruses in compressed
     executables.

                                                                  Page 24

- Optionally display a "changed" internal interface.
- Allows the sysop to supply up to 9 user side "interfaces" .
     The ability for the sysop to supply up to 9 user side interfaces
     and 9 replacement corners for the internal interface. Giving a total
     of 21 possible remote screens to be chosen at random during any one
     test run.

- The file after testing can be time stamped with one of four date
  selections.
    Original date - Choosing this option will date the finished file with the
         same date and time it had at the start of the test.
    Current Date - Choosing this option will date the finished file with the
         time and date of the completion of the test.
    Newest date - Choosing this option will date the finished file with the
         time and date of the newest file included inside the archive.
    Best Guess - Choosing this option will date the finished file with the
         time and date of a calculation of the average date and time of the
         five newest files internal to the archive.

- Identifies all archives by their internal signatures.
- Including self extracting archives.
    All archive types are recognized by their archivers unique signatures.
    Even the self extracting files are done by signature, so the name of
    a file will have no bearing on whether or not it is tested. If it is an
    archive type which you have configured for testing, it will be tested.
    This may be limited by some bbs programs ability to tell THD ProScan
    what to test, since some will only pass the file for testing based on
    it's extension.

- Allows files to be rejected based on the dates of the files inside the
  archives.
    You can choose to limit the acceptance of files on your BBS based on the
    actual date of the files inside the archive. OR you may choose to limit
    them based by how old they are. The difference? You may choose to reject
    files older than "3 months" (you choose the age) and thereafter never
    update the limit as age is compared to the date of testing.
    Or you may choose to not accept files created before "January 1 1990"
    (again you choose the date), and files will be failed based on their
    "date". Note that the dates referred to here are the date INTERNAL to
    the archive and not the archive date.

- Can reject files by name using a "hack list" (HACK****.COL and IDX
  files can be read directly as well as BADFILES.CTL type files).
    You can choose not to test files which have specific names. This is
    useful for avoiding testing of known viruses/hacks/pirated software.
    You can create a list of file names to be rejected or use the
    official "Hack Report" files. Or you can mix the two. Files rejected
    by this method will be considered to have FAILED testing.

- Support for remote ansi or ASCII as determined by auto ansi detect.
    The presence of ANSI on the remote side is automatically detected.
    If ansi is found, it is used. Otherwise output is plain ASCII.

                                                                  Page 25

- Suppression of remote output through the use of "comport 0".
- Suppression of remote output through the use of a user defined comport.
    Remote output can be suppressed when run locally (to avoid sending
    the ASCII output to an unsuspecting user). It can also be suppressed
    when told to send to a "legitimate" comport. (Not recommended except
    in some very odd circumstances)
- Protection for "ZIP" archives which have a valid "AV".
    Zip files which contain a valid "AV" (Authenticity Verification)
    will not be modified, since this would corrupt the "AV". These
    files will be reported in your THDPRO.LOG so that you may see
    if they have legitimate "AV"'s. All "testing" will be performed as
    usual.

- Strips comments from all archives before any processing is done
    Ansi bombs are avoided by stripping the comments of all archives
    without allowing the comments to be displayed to the screen. This will
    protect your system from ansi bombs while THDPRO is running.

- Recreates full directory structure "from" the temporary directory,
    Although the process involved is very complex to explain, if an
    imbedded archive exists in an archive it WILL be found and tested.
    No matter how many subdirectories or other imbedded archives must
    be searched in order to find it. This is limited by the types of
    archives supported by your system. But if it can be found with
    what is configured...IT WILL BE.

- Does not allow the "overwrite" option on any of the archive types.
  (stops some forms of "hacking")
    Some upload testers use the "overwrite" option to avoid having
    the archivers prompt the sysop for input. THD ProScan does not allow
    overwrites of any kind. The reason being that one of the most popular
    methods to corrupt your system was to create archives which would
    expand over your system files. THD ProScan will not allow this.

- Add loaders to the main archive.
    THD ProScan can (if configured) add loaders (insert files into
    an archive).

- Insert your file comment
- Insert a specific comment depending on the location of the file.
    THD ProScan can add file comments in a number of ways. It can be told to
    add a single comment to every file tested. OR it can select at random from
    list of such comments. OR it can insert a comment based on the file's
    location at the time of testing. The options are further explained in
    the "COMMENT" portion of this document.

- Configurable file specific text in file comments.
    Key words can be used in file comments to be replaced by file specific
    information. Please see the section on Configurable comments later in this
    documentation.

                                                                  Page 26

- Will use one of as many as three drives to test files by searching in
  order to find enough available space on one of them.
    THD ProScan will search up to three drives (as selected in THDINSTL) to
    find one which has enough free space to expand the archive to be tested.
    Testing will only be done if sufficient space is found.

- "Intelligent" installation which will attempt to do as much of the
  installation for you as is possible.
    The installation tries to find any file which it prompts for by name.
    If it finds a file by that name it will ask you if you want to use
    it and optionally allow you to insert the path to a different file.
    (in this way you are not limited as to the location of your utilities)

- Online help during the installation.
- Dos shell from the installation.
    While running THDINSTL, online help is available by pressing F1, a dos
    shell is available by pressing F2. and the installation can be aborted
    by pressing "CTRL-C".

- The configuration of THDPRO.EXE (from ver 6 or higher) can be used
  automatically.
    THDINSTL can import the configuration of any previous version of
    THDPRO.EXE (6.0 or later). You can then modify that configuration
    to suit your needs with this version.

- Will Virus scan all file types regardless of types configured.
    If THD ProScan is asked to test a non supported archive or a "normal"
    file, it will simply virus scan the file. In this respect it is
    a good idea to have all uploads tested by THD ProScan.

- Remove unwanted files from the archives tested (using name and/or CRC).
    Files can be removed from archives based on their name, their CRC
    or both. A more complete explanation is available under the heading
    "CRC MODE".

- Option to hang up on users who upload viruses. [DOS only]
    Sysops who are tired of users not virus scanning their software before
    upload may choose to drop carrier on those offenders.

- Option to reboot after a viral detection. [DOS only]
    You may also reboot after a viral detection. Although usually not
    necessary, It does make some people feel better.

- THD ProScan also supports a "fall back" to the original processing
    method. If an imbedded archive fails to expand for testing, THDPRO.EXE
    will fall back to the old method which extracts and tests each
    imbedded archive separately (thus requiring less space).

- No Known ways to "alter" the operation of your BBS through it's use.
    As stated this tester is designed with security in mind. I have done
    everything in my power to use the options best suited to that purpose.

                                                                  Page 27

- USE of THDEXARC.DAT file can allow use of additional scanners and archivers.
    This will allow you to run scanners not configured internally to
    THDPRO.EXE. as well as allowing you to test archive types not yet
    supported. This format should be used only by experienced sysops who
    FULLY understand the use of the archivers and scanners that they intend
    to configure. This utility will NOT run batch files.

- basic operation -
-------------------

    THD ProScan Version 12.0 has 3 distinct modes of operation. They are TEST
MODE, CRC MODE, CONVERT(-ONLY) MODE. Note also that conversion can be done on
the fly during testing, although this is currently only recommended for
persons running RA/TG/RG or FILES.BBS oriented BBS packages. (And only those
specific versions as listed below). Future versions and/or add-ons may add
the necessary functionality for other BBS'es to use this feature as well.
Each of the three modes is explained below.
    There is no way to change the "way" this scanner operates (without
hacking it) for a good reason. Even some of the most noted upload testers
make a very serious flaw in the way they handle uploaded archives. By not
allowing the user to change these settings, I avoid someone opening one of
those "all too evasive" back doors and hacking into your system. So please
don't ask me to change the parameters that this program uses. They are that
way for a reason. (I will of course be happy to change any that prove to be
incorrect or cause "real" problems).

- CRC mode -
------------

                                 "CRC MODE"
                                 ----------
    THDPRO.EXE can also perform another function. THDPRO.EXE can also create
and/or update a CRC list (for use with the file removal function). The proper
syntax to invoke the CRC mode is...

         C:\UTILS\THDPRO.EXE CRC D:\WHATEVER\*.*
         {This would calculate the CRC values for all files in the
         directory "C:\WHATEVER" and add them to THDPRO.CRC. Wildcards are
         accepted in CRC mode only.}

    The use of CRC mode is intended specifically for use by those wishing to
remove files from archives based on the file's CRC value. In order to use
this ability, you must have chosen to use the CRC method of file removal
during the installation.
    To understand why you might choose to use CRC removal, you should
understand that a CRC is a calculation based on the "bytes" of a given file.
No matter what the file name is, the file will always have the same CRC.
(unless it is modified internally)
    You can use this to your advantage. If you constantly get files from a
BBS which always adds the same file to each of it's archives but has used
different names to avoid having them "easily" stripped. You can have these
files removed by using their CRC value rather than their name.

                                                                  Page 28

    For example, Rose Media in Toronto adds files called "READ.ME" to each of
it's archives. If that file exist, it is added as "READ-ME.". For obvious
reasons you might see why you wouldn't want to remove these files by
their name. By running "THDPRO.EXE CRC READ.ME" on those files, THD ProScan
will calculate the CRC of that file and add it to a list of CRC values
(THDPRO.CRC) and thereafter remove those files regardless of their name while
not risking the removal of legitimate "READ.ME" files.
    You must (of course) have a copy of the file for THD ProScan to be able
to calculate its CRC value. The format of the list created is outlined in
detail in the section regarding file formats, later in this document. The
THDPRO.CRC file is generated and updated by THD ProScan through use of CRC
mode and never need be dealt with manually. This option is not active by
default and must be selected via the installation.

- Conversion and Convert-Only mode -
------------------------------------

    This version can convert from any of the supported archive types to
any of ARJ/LHA/RAR/SQZ/UC2/ZIP file formats. It can be used interactively
during testing OR as a standalone conversion utility.
    What makes this convertor better than every file convertor I have seen is
the simple ability to convert as well as THD ProScan tests. Quite simply,
this convertor will find archives that other convertors and testers simply
never see. In this respect it is the most complete archive convertor.
(*Note that some convertor with this ability may exist, but I have never seen
nor heard of it).
     This conversion mode offers special features to users of ...

    RemoteAccess 2.00 (or compatible)
    Telegard 2.7 (or compatible)
    Renegade 07-17-93 (or compatible)
    FILES.BBS (normal and SBBS extended format)
         -Note that compatible refers strictly to the file data base
         structures for each BBS type and that future versions of these
         BBS softwares are unlikely to remain compatible.

    Renegade and Telegard sysops might wonder why they should use this
convertor to convert their archives, since their BBS already has provisions
for file conversions. The answer is simple. Flexibility and full conversions.
This convertor offers a number of conversion levels (as well as the ability
to create protected archives) and does the most complete conversion possible.
This is something these two BBS packages are unlikely to offer in the near
future.

    The "/KO" switch (Keep Original) will only be useful for BBS types which
require the original archive to be present at the end of conversion. TG/RG
need this as they will attempt to delete the original after a conversion and
choke when it is not there. Other BBS'es or processes may require similar
measures.

                                                                  Page 29
    Conversion mode is invoked by use of a "convert indicator". These
indicators are as follows.

    TOARJ - TO CONVERT TO ARJ FORMAT
    TOLHA - TO CONVERT TO LHA FORMAT
    TORAR - TO CONVERT TO RAR FORMAT
    TOSQZ - TO CONVERT TO SQZ FORMAT
    TOUC2 - TO CONVERT TO UC2 FORMAT
    TOZIP - TO CONVERT TO ZIP FORMAT

    If any of these indicators are appended to THDPRO.EXE's command line,
then before a file comment is added, the file is converted to the type
specified. Conversion will of course only be done if the conversion type and
the original archive type are both configured in THDPRO.EXE for testing.
    These indicators "can" have a preceding "/" but it is not required
(ie. "/TOZIP" is the same as "TOZIP")

    To use this as a stand-alone convertor, you must first configure
THDPRO.EXE (using THDINSTL.EXE) and when invoking the convert line include
the switch "/CO". So the command lines would be as follows...

    THDPRO.EXE C:\TEST\TEST.ZIP TOARJ
         - this would test "TEST.ZIP" and thereafter convert it to an ARJ
           archive.

    THDPRO.EXE C:\TEST\TEST.ZIP /CO TOARJ
         - this would convert "TEST.ZIP" (without testing) to an ARJ archive.

    The convert indicators have a few variants. any of the convert indicators
is capable of converting on 5 different levels.

    The five levels of conversion are as follows..

    default (no changes to the indicator)
         - Using the default level files will be converted ONLY if they have
           the correct extension for their archive type (lzh for LHA etc).

    LEVEL 0 (add a "0" to the convert indicator { TOZIP0 })
         - will convert ONLY the main archive (no imbedded conversions).

    LEVEL 1 (add a "1" to the convert indicator { TOZIP1 })
         - will convert ONLY files which have the correct extension for their
           type AND are NOT the archive type to be converted to.
           This level will not repack a zip when converting to zip.

    LEVEL 2 (add a "2" to the convert indicator { TOZIP2 })
         - Will convert files if the have the correct extension OR the
           extension "EXE".

    LEVEL 3 (add a "3" to the convert indicator { TOZIP3 })
         - will convert any testable archive type regardless of it's extension
           or present archive type. This is also the ONLY level which will
           convert "AV" protected "ZIP" files or "secure" "ARJ" packets.

                                                                  Page 30

                              ** NOTE **
          "TOZIP3" would be used to convert all supported archive types
    to the ZIP format without regard for their extension, present archive
    type, or AV protection.

         "TOARJ2" would be used to convert any supported archive type with the
    proper extension or an extension of "EXE" to the ARJ format.

         "TOSQZ1" would be used to convert only archive types other than SQZ,
    and ONLY if they have the correct extension for their current archive
    type.

         "TOZIP0" would be used to convert only the main archive while leaving
    all imbedded archives in their original archive format (for compatibility
    with some installation programs which will require a specific format to
    install).

         "TOLHA" would be used to convert ALL supported archive types to LHA
    format only if they have the correct extension for their current type.

    The above switches apply in both test mode and Convert-Only mode.
                            ** end note **

    When run in Convert-Only mode (/CO) THD ProScan will still strip the
comment and add your proprietary comment. This is done to ensure that ansi
bombs are not loaded during the conversion (note that when THD uses the
window effect, ansi is not supported. However on some machines this window
may not be supported and the standard console, which does support ansi, will
be used). This feature could be used to replace comments only by using level1
and converting to the same archive type as the original (since no conversion
would actually take place).
    The conversion feature of THD ProScan will not cause THDPRO.EXE to exit
with a non-zero errorlevel (in test mode). If testing is passed and
conversion fails, the errorlevel returned will be "0".
    In Convert-Only mode, THDPRO.EXE will return "0" for a successful
conversion and "1" for an failed conversion.

    At the completion of a successful conversion, the original file is
deleted. IF you are running RemoteAccess 2.00 (or equivalent) and have
configured THDPRO.EXE to add file descriptions, then the name will be updated
in your FDB.
    THD ProScan can also update the names in the TG and RG and FILES.BBS
bases following a successful conversion. HOWEVER note that no name changes
will be done for TG/RG when the file is the result of a batch upload. It
cannot be done because the file name is not inserted into the BBS databases
until after a successful file test.

                                                                  Page 31

    If you are not running one of these BBS types then descriptions and
filenames will NOT be updated in your BBS program's data bases.
    It is therefore suggested that unless you are running one of these BBS
types DO NOT CONVERT DURING TEST MODE. Instead, use the Convert-Only mode
(after testing) to convert your files. (This does not apply if you are using
the convertor to repack archives of the same type.)

    As a side note, all conversions are done in maximum compression mode for
any archive types which support it.

    Sysops of the supported BBS types should convert during testing ONLY if
they have configured THD ProScan to acknowledge that they are indeed running
one of the supported BBS'es. These sysops can use the following command line.
(Note that this only applies where the filename will be in the base to be
modified. THD does not add new entries to any of the supported types.)

    THDPRO.EXE {drive:\path\filename.ext} {convert indicator}

    The following command line is recommended for BBS type's which support
    single stage conversions.

    THDPRO.EXE {drive:\path\filename.ext} /CO {convert indicator}

    For BBS programs which depend on 2 stage conversions, I suggest that
stage 1 run "THDPRO.EXE" with no parameters (this will return an errorlevel
of "0" allowing the program to move to the second stage). Then use the
command line above (for single stage conversions) for stage 2.

- Deep file removal during conversion -
---------------------------------------
    During Conversions, THDPRO.EXE extends the removal of your configured
files to include all subdirectories and all imbedded archives. This feature
is not available in other modes because of the complexity of removing from
imbedded archives without needing to re-archive the original.

- Converting non-archives -
---------------------------

    This option is only active in "test" mode (it is not a "true"
conversion).
    THDPRO.EXE can be configured to "envelope" (convert) unsupported file
types. By creating a file named ARCHIVE.THD in the same directory as
THDPRO.EXE, you can instruct THDPRO.EXE to archive unsupported types with
a particular file extension to a particular archive type.

    The format of this file is one entry per line. First line MUST be the
"type" to archive the file "in", and all following lines are the file
extensions that THD is to archive in this fashion.
the following would be an "example" of such a file.

-start of file-
ZIP
.TXT
.DOC
-end of file-

                                                                  Page 32

    ZIP = file "type" to convert to. (ARJ,LHA,RAR,SQZ,UC2,ZIP supported)
          only one such entry is allowed and it must be the first line
          of ARCHIVE.THD.
    .TXT
    .DOC = a list of file extensions to "envelope" in the archive type noted
           above. The extension MUST include the "." as an entry of just a
           "." would signify that files with no extension should also be
           enveloped. This list is one entry per line and all upper case.

    ALL INPUT IN ARCHIVE.THD MUST BE UPPERCASE.

    One final ability of "conversion mode" is the ability to create "AV"
packets with ARJ, PKZIP and RAR. (note that AV is being used as a general
term to reflect the various secure packet types of these archivers). If you
have a registered copy of one of these programs, you can opt to have
THD ProScan create these "protected" archives.
    This will be done through the use of environment variables.

    For "AV" protected ZIP archives you must set an environment variable of

    THDZIP=TRUE
    or
    THDZIP={drive:\path\to\your\AVEXTRA.TXT}
         This entry will be required if you wish the AVEXTRA.TXT information
         inserted into your finished archive.

    If THD ProScan finds this variable defined as above it will send the
command line to create an "AV" protected ZIP file (you must also configure
THD ProScan to use the registered version of PKZIP)

    For "AV" protected RAR archives you must set an environment variable of

    THDRAR=TRUE

    If THD ProScan finds this variable defined as above it will send the
command line to create an "AV" protected RAR file (you must also configure
THD ProScan to use the registered version of RAR.EXE)

    For "Secured" ARJ archives you must set an environment variable of

    THDARJ={drive:\path\to\your\security.key}

    DO NOT include ANY switches... JUST the path and filename of your
security key file. THDPRO.EXE will supply the necessary switches to use the
security key. Be sure to include the full drive path and filename in this
variable. (And THD ProScan must of course be using the registered ARJ).

                                                                  Page 33

- Test mode -
-------------

    The operation of the scanner could not be simpler. You need simply run
THDPRO.EXE while supplying it with the FULL path and filename of the file to
be tested. I STRONGLY suggest that you also supply the full path and filename
to THDPRO.EXE as well (not necessary but it too can help to reduce hacking).
So the proper syntax would be as follows...

    C:\UTILS\THDPRO.EXE D:\NEWUPS\TESTFILE.ZIP
    {Where THDPRO is located in "C:\UTILS" and the file to be tested
    is "TESTFILE.ZIP" which is located in "D:\NEWUPS"}

    The tester optionally accepts a comport # as a parameter. That parameter
can be a single digit between 0 and 8. This parameter is the number of the
comport to be used for remote output and is only necessary if you wish output
to a comport other than the one specified during the install. Using "0" will
not send any remote output. Numbers between 1 and 8 will send to the comport
of the corresponding number. If run without parameters, It will simply
display the correct syntax. ERRORLEVEL 0 will be returned in any event where
a file is not tested (to avoid the BBS software deleting files due to
improper syntax).

    While geared toward the testing of archived files, The tester will virus
scan any file type for which it is not configured. So having your BBS use
this tester to scan "EXE" and "COM" files is an excellent idea. (The addition
of "self extracting" testing makes this a good idea as well.) The passing or
failing of such files will be based solely on the result of the scan and no
other operations will be attempted on the file aside from the heuristic scan.
Any valid filename can be passed if you wish it to be "scanned". I suggest
that you configure your BBS to "test" all files with "executable" extensions
as well as any "OVL/OVR" files.
    IF your BBS allows it, testing of all uploaded files is recommended.

                                                                  Page 34

    This tester will exit with one of 10 DOS errorlevels.
    ERRORLEVEL 0   - All tests were passed satisfactorily.
                   - The scanner will also exit with this errorlevel under
                     a number of "odd" circumstances which will avoid having
                     a file fail due to some unforeseen difficulty.(This
                     includes failing to supply a proper path to the file to
                     be tested and a number of other small things)
    ERRORLEVEL 1   - An imbedded archive failed the CRC test.
                   - In Convert-Only mode this indicates a failure to convert.
    ERRORLEVEL 3   - The file has failed due to the date restriction.
    ERRORLEVEL 4   - The file was failed for being on the Hack list.
    ERRORLEVEL 5   - An imbedded archive failed the CRC test due to a disk
                     read error. (used by some BBS programs to determine if
                     the file is to be resumed later.)
    ERRORLEVEL 10  - A virus was detected during the "scan" (or optionally,
                     the heuristic scan).
    ERRORLEVEL 15  - The main archive failed the CRC test.
    ERRORLEVEL 103 - File access was denied for longer than 30 seconds
                     resulting in a premature abortion of testing. (Share
                     supported but not required.)
    ERRORLEVEL 233 - CRC testing was attempted on a nonexistent file (file
                     existed at start of testing and was deleted prior to
                     to the CRC calculation attempt - near impossible error)
    ERRORLEVEL 255 - A security breach. This error will occur any time a
                     needed executable file fails the CRC test prior to
                     execution. This will occur only with secure mode active.

    ** note - The sysop view is NOT identical to the user view and does not
    necessarily fully reflect what is seen on the user's side. It was deemed
    unnecessary to provide "complete" compliance with the user view, given
    the additional information available through the sysop view.

- Frequently asked Questions -
------------------------------

Q.   How do I register this fine tester?
A.   Registration in the traditional sense is not required. However, if you
     really wish to do something for the author, The following is what I
     would like to see. Make the file FREE on your BBS (No Points/No Ratio).
     Make it FREQ'able if you are part of a net. If you are on a BBS that
     doesn't have it available, upload it there (ESPECIALLY foreign
     countries). If you have comments or suggestions, send them to me
     through Fidonet at 1:259/423 (attention David Muir). And above all,
     encourage people to use it.

Q.   Do You Accept Donations?
A.   Beginning with Version 8, Yes. Prior to this version, I have fought off
     the urge to ask for Donations. However, comments from many people
     have made me reconsider. People wishing to donate can send bank notes
     payable on a Canadian financial institution to...
     David Muir, 198 Leyton Ave, Scarborough, Ontario, Canada M1L 3V6
         Please note that any money sent will be considered a "GIFT" and
     is not "registration". THD ProScan remains free.

                                                                  Page 35

Q.   Why do all the files fail the SCAN?
A.   As noted in another area, SCAN.EXE by McAfee is becoming more and more
     memory intensive. As a result, persons who's BBS programs are not
     swapping their memory are finding that SCAN won't run effectively.
     If SCAN.EXE does not have sufficient memory to run, it returns an
     error. THD interprets an error from SCAN as a viral infection. To
     avoid this, either avoid using SCAN.EXE or make sure that your BBS
     (and any other resident programs) are leaving enough memory to run it.
     Usually having your BBS swap its memory, frees enough to run Scan.

Q.   THD ProScan runs fine locally but doesn't send any remote output, why?
A.   A common mistake for people is to not read the requirements of a given
     program. In this case the likely solution is to install the required
     Fossil driver and/or select the proper comport in the installation.

Q.   Can I stop THD from Moving/Renaming files?
A.   YES. From the final screen of THDINSTL, toggle the
     "Failed File Moving" to inactive. (In versions 6-9, THDINSTL accepted
     a parameter of "/NOMOVE" which is no longer supported).

Q.   Why are the version numbers always ".0"?
A.   I have decided to stick with whole numbers for each new release. The
     "." is reserved for use in patch files as was the case with version
     5.1. At least this way, when you see version 7 you will know that there
     have not been 100 "point" versions before it. Also each version number
     used is accounted for in the HISTORY.DOC, as are all the bugs found and
     fixed to date.

Q.   Can I change the options used by SCAN.EXE or the archivers?
A.   No. But you can add more scanners using THDEXARC.EXE. However THDPRO.EXE
     will still require that at least one of the internal scanners is
     configured. The command lines for these additional scanner can be user
     defined.

Q.   Why do I even need an upload tester?
A.   You don't... It is simply a convenient way to test files while the user
     is online. If you wish to test all files manually that is your option.
     If you wish to trust another tester, that too is your option. But if
     you are at all unsure as to the security offered by other testers, use
     this one. If you find a back door in my tester, tell me. I will fix it.
     If I can't, I will stop programming it.

Q.   What options DOES this tester use for the archives?
A.   Basically it uses those options required to recreate all subdirectory
     structures without allowing the use of the root directory. It does not
     allow any overwrites.

                                                                  Page 36
Q.   Why no overwrites?
A.   Many testers allow overwrites as a way to stop archivers from prompting
     the sysop, I simply create an environment where this will never occur.
     Allowing overwrites could let a virus get past the tester by having two
     files with the same name, My tester will expand both those files and
     test both those files, while some other testers will let the virus free
     file overwrite the infected file and lose the ability to detect the
     virus in the first one.

Q.   So no viruses get past this tester?
A.   No viruses that can be detected by your version of McAfee's Virusscan.
     Unknown viruses or viruses not yet detectable by your version of
     SCAN.EXE may still get by, but they are few and far between. Also in
     this version the heuristic testing can aid in detecting unknown
     viruses.

Q.   The Ansi screen takes too long. Can it be aborted?
A.   No. It is interactive and must complete in order for the indictors to
     make any sense. Users not wishing to see it could disable their own
     ansi, thus causing the ASCII output to occur.

Q.   Sometimes my users don't get the ansi screen. Why?
A.   The program allots a given amount of time to detect ansi on the remote
     system. If the remote does not respond in that time, it is assumed that
     they have no ansi capability. This detection time is configurable from
     within THDINSTL.EXE. Increase it if users are having this problem.
     BUT keep in mind that non-ansi users will be forced to wait for the
     duration of ansi detection and 255 seconds is just over 4 minutes.
     Keep the detection time reasonable. If you're absolutely adamant that
     all user should be sent ANSI output then see the ANSI option of THDOPT.

Q.   My multinode BBS can pass the NODE number but not the port number.
     How do I get THD ProScan to understand which "PORT" to use?
A.   The easiest way to do this is to run THDPRO.EXE from a batch file.
     Have your BBS pass the "NODE" to the batch file and then have the batch
     file call THDPRO.EXE with the appropriate PORT number for that node.
     The following example would work for a BBS with node 1 using com2 and
     node2 using com3.

     @echo off
     CTTY CON
     IF "%2"=="1" C:\THD\THDPRO.EXE %1 2
     IF "%2"=="2" C:\THD\THDPRO.EXE %1 3

               ^node number use comport^


                                                                  Page 37

                               ---------------
                               - THDPLUS.EXE -
                               ---------------

THDPLUS is a file data base update utility, supporting FILES.BBS (standard
and extended formats), RemoteAccess, Renegade, Telegard, PCBoard and T.A.G..
Specific versions only. It processes a record created by THD ProScan
Version 10.0 (or later) called TESTINFO.DAT.

- Supported softwares -
-----------------------
Telegard 2.7
Telegard 2.99 Gamma (TG3)
Renegade 07-17 (and compatible)
RemoteAccess 2.0?
RemoteAccess 2.5? (proposed)
PCBoard 15.2 (and compatible)
T.A.G. 2.7 (and compatible)
FILES.BBS standard 1 line descriptions
FILES.BBS extended description in the SBBS format " >"
FILES.BBS extended description in the "standard?" format " +"

"COMPATIBLE" refers to BBS'es which are 100% compatible in regards to their
file data base configuration and possibly in regards to their main
configuration file. Some deviation in the main configuration file may be
forgivable "if" the file data base is 100% compatible and IF the necessary
information required by THDPRO.EXE is located in the same EXACT position in
the main configuration file. If on doubt, assume that version other than
noted above are incompatible as I cannot even speculate what damage could
occur if BBS types other than above were configured as the incorrect BBS type.

- command line syntax -
-----------------------

- ? -
    Running "THDPLUS ?" Will show an identification screen and instruct the
user to run without parameters.

THDPLUS.EXE
    - process the last 5 entries normally (entries properly processed are
      marked as "processed" in TESTINFO.DAT).

THDPLUS.EXE /ALL
    - Process all entries normally (entries properly processed are
      marked as "processed" in TESTINFO.DAT).

THDPLUS.EXE /REMOVE
    - Process all entries normally, and mark all entries as "processed" in
      TESTINFO.DAT, regardless of success or failure to import.


                                                                  Page 38
THDPLUS.EXE /EXTRACT {source} {target}
    - Cause THDPLUS to search the TESTINFO.DAT file for {source} and
      extract its description to {target}. If {target} exists it will be
      overwritten. If no matching description for {source} is found,
      {target} will be erased (if it exists).

- Requirements -
----------------

    TESTINFO.DAT must be located in the same directory as THDPLUS.EXE (which
is generally the case since THDPRO.EXE will create it in it's own directory
and it will only run THDPLUS if it too is that directory.)

- Operation -
-------------

    When THD imports a file into the TG file bases it will check the first
character in the description. If the first character is a letter or number,
THD will enter the description as "normal". If however the first character is
not a letter or number, THDPLUS will indent the first line by 5 spaces. The
hope is that descriptions which use "box" figures etc will be aligned by this
process (to preserve the "box" appearance).
    The exception is that the following characters are considered to be valid
"letters".
                                 ;:<>=?@
    The reason these symbols are counted as "letters", is simply due to their
place in the ASCII table (they occur between the valid numbers and letters).
Given that few descriptions are likely to begin with these characters (and
almost none that do would likely be representative of "box" figures), it was
simply easier to ignore them than to make exception for them.

    A "logic" is used to determine the lines for each of the fields in TG/RG
description which "could" on occasion backfire, resulting in inappropriate
looking descriptions. (I haven't run into any problems using the current
logic, but this logic was based only on examples I have available to me).

    The basic logic is that (for TG/RG) a file description containing CR/LF
will be considered to be a valid EndOfLine(EOL). Thus THDPLUS will strip any
CR/LF and end the line. If it does not encounter a CR/LF it will back up to
the nearest space character and end the line there. Where no space occurs in
the line, THDPLUS will split the line into 2 lines with the above conditions
(at 50 characters per line).
    THDPLUS can be run from the commandline to process unprocessed
TESTINFO.DAT files. TG/RG for instance should use this where "THDPRO DIZ" had
previously been recommended. As a side note, to maintain compatibility with
earlier versions, "THDPRO DIZ" will still function, but it will do so by
calling THDPLUS thus rendering it actually slower than simply running
THDPLUS.EXE.
    The only possible advantage to doing this is that THDPRO.EXE will verify
that it is running a PainSoft created version of THDPLUS where calling it from
a commandline does no such verification (in absence of a legitimate PainSoft
file THDPRO.EXE will do nothing more than show an opening screen and exit).


                                                                  Page 39

- TESTINFO.DAT -
----------------

- What is it? -

    TESTINFO.DAT is a data file that will be created by THDPRO.EXE when
any BBS type (aside from "0") is selected during installation. The file
contains a multitude of information which can be used by third party
programmers who wish to interface THD with their own BBS. THDPLUS uses this
file to interact with the currently supported BBS types. The structures are
included in the archive for programmers who might wish to make use of it.

- Why is it? -

    The format was created for two reasons. First it offered an opportunity
for me to remove the description code from the actual THDPRO.EXE file
(resulting in lower overhead for those whose BBS'es not yet supported).
    Secondly it gives others a chance to interface THD with their BBS programs
via third party utils. The file is formatted so that these third party
utilities can get the information they need in a quick and efficient manner.
    By moving these these structures out of THDPRO.EXE it also allows me to
create specific interfaces for other BBS types without needing to update the
entire THD package.

- How does THDPRO use it? -

         THD ProScan uses it by creating the file during it's running time,
and calling THDPLUS to process the file. THDPRO.EXE performs the maintenance
(removing processed records and or deleting unneeded files), while THDPLUS
records in the file when it has been processed. Under all normal
circumstances, THDPRO.EXE will run, process and remove the file, prior to the
completion of the test.
    However with TG/RG where the file will not yet be present in the data
base, this file will be updated and left on the disk for processing on the
next run (or manually by running THDPLUS).

- How can others use it? -

    The format itself is designed with third party programmers in mind (THD
makes use of only a very few fields). The information recorded in this data
file can be accessed by third party programmers by having the user set his BBS
Type to "O" (Other) in the installation. THD will then process the record and
the third party utilities can extract the needed information from that record
and perform file base updates based on that information. (sounds confusing,
but programmers who look at the structures ought to be able to figure it out
<G>).
    The file is designed with programmers in mind and does not contain data in
any form useable by non-programmers.


                                                                  Page 40

                               ---------------
                               - THDTERM.EXE -
                               ---------------

- General Information -
-----------------------

    This is an excellent tool for sysops as well as users. For a sysop, it
will allow them to use THD ProScan Version 5+ with their fossil active
without attempting to send output over the modem. Thus making it the perfect
tool for a sysop or user to test his/her downloads.
    Compressing the executable is recommended for space purposes and has no
adverse affect on the operation. However, Note that it must be configured
before it is compressed and that it cannot be configured or reconfigured in
it's compressed state.
    For users in general it provides the same security that many sysops have
become accustomed to.
    Needless to say, THDPRO.EXE will need to be configured properly before
this program will be of any use.
    Reasons for failure are not reported by this program, but all such
instances should be accounted for in your THDPRO.LOG created by THD ProScan.
    With the exception of possible runtime errors, this program will ALWAYS
exit with errorlevel "0". The only indicators left by this program will be
the presence of the tested files in the Pass or fail directory. In keeping
with the tradition of THD ProScan, this program will NOT delete files for any
reason. Files are left for you to do with as you choose.

    This program was outwardly inspired by THDPRO TERMINAL EXTENSION. A
program created for the same basic purpose as this one.

- command line syntax -
-----------------------

    THDTERM accepts 3 parameters. Default is to run THDTERM with no
    parameters to process "as configured".

    - 0-8
         A single digit from 0 to 8 which represents the comport to which it
         should have THDPRO.EXE send it's output. the default is to use "0"
         which will cause THDPRO.EXE to run in local mode. A comport is always
         sent to THDPRO.EXE, even if none is supplied.

    - C (configure)
         If run as THDTERM.EXE /C, This will cause THDTERM to enter
         configuration mode. Configuration mode simply prompts you for 4
         things and configures the executable file to use those values from
         that point on. Configuration mode is the default the first time this
         program is run, and this switch should be used if you wish to
         reconfigure it at a later time.

                                                                  Page 41

    - /S (source directory)
         Running THDTERM.EXE /S {drive:\source\dir\to\test} will cause
         THDTERM to process the supplied directory instead of the internally
         configured directory. Also, when run with the "/S" parameter, moving
         of "passed" files is suppressed, and only those files which fail are
         moved (to the fail directory).

- Requirements -
----------------

    THDTERM requires a configured copy of THDPRO.EXE and about 2k of memory
above that which will be required by THDPRO.EXE. As well, since it runs
THDPRO.EXE, it also requires the same things required by that program. If you
can run THDPRO.EXE normally and have an extra 2k of memory, then you have met
the requirements.

- Configuration -
-----------------

    The first time THDTERM.EXE is run it will automatically prompt you for 4
things. (no parameters need to be supplied on the first run)
    You will be prompted for the following...

    Path to THDPRO.EXE
    Path to the directory containing the files to be tested.
    Path to the directory for passed files.
    Path to the directory for failed files.

    ALL of these paths MUST exist prior to the configuration. As mentioned
above it can be reconfigured by running "THDTERM.EXE /C".

- Function -
------------

    Functionally speaking THDTERM doesn't actually "do" a whole lot. It's
purpose is entirely single minded. It is designed to replace a simple dos
"for..in..do.." statement. Meaning that it runs THDPRO.EXE on each file in
the default directory (or alternately the supplied "source" directory).
    The advantage to using THDTERM is singular. It runs THDPRO.EXE on each
file, and moves it (in default mode) to either the pass or fail directory,
depending on whether it passes or fails testing by THDPRO.EXE.
    The singular advantage to this method is that it will never duplicate a
test as might be seen by a dos for..in..do.. statement and it provides a
little error checking prior to moving any files.
    Basically it is a glorified batch file.

- Features -
------------

    None to speak of. It serves a very basic purpose in a very basic way.
This program should be used where you might like to use wildcards with
THDPRO.EXE but are unable to.

                                                                  Page 42

- Basic Operation -
-------------------

    Basic operation is achieved by configuring the program and running
THDTERM.EXE. This will cause it to run THDPRO.EXE on each file in the default
(or alternately the "source") directory. Files will be "moved" to the
directories internally configured depending on whether THDPRO.EXE passes or
fails them.

- THDTERM and Filedoor -
------------------------

    THDTERM now accepts a comport as a parameter. As with THDPRO.EXE, the
comport must be the last parameter and must be a number between 0 and 8. If
supplied with a comport, THDTERM will tell THDPRO.EXE to use that comport
instead of "0" which it uses by default.
    This modification will allow Filedoor users to use THDTERM to run
THDPRO.EXE while still sending the remote output to the user. Those sysops
should have their exitafteruploads command as follows.

    ExitAfterUpload1 C:\THDPRO\THDTERM.EXE /S $U $P $M $N

    I also recommend that the "exitmask" not be defined and that THDPRO.EXE
be expected to test ALL uploads.
    Note... I do not use Filedoor myself and have based the above strictly on
the documentation for that program. Some modification may be necessary.

    Also note that, newer versions of filedoor may not work as described here
and may in fact be able to pass the filename as required by THDPRO.EXE.
Versions capable of passing the filename should use THDPRO.EXE for this
purpose and not THDTERM. Use THDTERM only in those instances where file names
cannot be supplied.


                               ---------------
                               - THDDEMO.COM -
                               ---------------

- Purpose -
-----------

    THDDEMO.COM serves two purposes. The first is to show you the user side 
view of what THDPRO.EXE does from the remote perspective. This can be
accomplished by running THDDEMO with no parameters. When run, it will
randomly choose and display one of three internal screens along with an
"emulation" of how that screen changes from the remote point of view during
an actual test.
    The second purpose is to give you a preview of what your custom ansi
screen will look like to the remote user. The makeup of custom screens is
discussed below in the section regarding THDPRO.AN? and PAINSOFT.AN? files.

                                                                  Page 43
    THDDEMO.COM can be used to preview your ansi with the THD test screen.
Use this to see if your ansi will be displayed correctly to the remote users.
Typing "THDDEMO.COM" will show you the "traditional" THD Ansi screen. Typing
"THDDEMO.COM" followed by the path to YOUR ansi file will show you what your
ansi will look like to the remote user.
    THDDEMO.COM is purposely crippled to not properly display ansi which
exceeds 70 characters per line. This is to ensure that your ansi will remain
compatible with the majority of user's systems. If your ansi looks fine
through the demo, it will almost definitely be fine on the remote end.

    THDDEMO accepts a filename to be displayed as a remote user would see it
during operation. If the file is "PAINSOFT.AN?" (where the ? is any
character), the file will be displayed as a PAINSOFT formatted file. Any
other filename will be displayed as a THDPRO file.
    The differences between the two formats are discussed in detail below.
    When testing a PAINSOFT formatted file, THDDEMO accepts /C as a parameter
(optionally) which allows you to view the various the colour settings of the
THD header portion of the output. This option is better explained in the
PAINSOFT files category below.


- ANSI files -
--------------

    THD ProScan has direct support for two types of sysop supplied ANSI.
    The first is an ANSI CORNER. An ansi-corner for the purposes of this
program will be considered a non-interactive ansi which will be displayed
during testing to the remote user in the upper left corner of his/her screen.
It can be 35 characters wide and 16 characters high.
    Files of this type will be named THDPRO.AN?, where the "?" represents a
number from 1 to 9.

    The second ANSI is a full screen interface. It may use the entire screen
EXCEPT for the top two lines which are reserved by THDPRO.EXE for self
identification purposes. This file is not a "true" ansi screen in that it
will contain an ansi image and a number of "interaction lines" to be sent as
required by THDPRO.EXE. These files will be called "PAINSOFT.AN?", where the
"?" represents a number from 1 to 9.

    First, you must understand that THDPRO.EXE will search for these files in
numerical order and as soon as one is not found, it will be assumed that no
higher numbers exist. That is to say that if THDPRO.AN1 does not exist,
THDPRO.EXE will NOT search for other THDPRO.AN? files. If it finds THDPRO.AN1
and THDPRO.AN2 but not THDPRO.AN3, it will stop searching and assume there
are only the two "THDPRO.AN?" files to choose from. It will then begin a
search for the "PAINSOFT.AN?" files using the same rules.
    Also, these "ANSI" files will ONLY be found IF they are located in the
same directory as THDPRO.EXE. (that is, the copy of THDPRO.EXE that is
actually performing the test). If they are not located in the same directory,
THDPRO.EXE will simply assume that they don't exist.
    These (up to 18) additional files will be displayed at random along with
the 3 original screens internal to THD ProScan.

                                                                  Page 44

    Ansi output (PAINSOFT.AN? and THDPRO.AN? files) should ALWAYS be tested
using THDDEMO.COM before being used. THDDEMO will show you EXACTLY what the
user will see and aid you in fine tuning your ansi files.

          SAMPLES OF BOTH OF THESE TYPES OF SCREENS ARE INCLUDED IN
                               "THDANSI.RAR"


- THDPRO.AN? files -

    Your THDPRO style custom ansi's can use the top/right corner (a box 35
characters wide by 16 high). That portion of the screen will be left
untouched when the test portion of the ansi is displayed immediately
following. The acceptable co-ordinates for your ansi are bound by position
"1,1" and "16,35". The rest of the display will be used by THDPRO.EXE.
    The ansi "line length" cannot exceed 70 characters per line, or they will
NOT be displayed. The total number of lines is not important.
    Note that the "Registered to BBSname" message is NOT displayed to the
remote when a user defined ansi is used. This is done to free up that space
for your use. You should keep that in mind when designing your ansi corners.

- PAINSOFT.AN? files -

    First a note. The use of PAINSOFT.AN? is a delicate and involved process.
If you do not understand the workings of ansi drawing (and the code itself) I
suggest you not even attempt to use this file. This file will be a "complete"
ansi test screen and NOT an ansi corner. It will contain a main body ansi
screen, followed by a number of "data" ansi lines that will be displayed as
discussed below. The format for a usable ansi of this format will follow the
following conventions.
    IT must not use the two top lines of the screen. These are reserved by
THDPRO.EXE and will be rewritten immediately following each section of ansi
from the user's file. In this way it will never be over written by the user's
ansi.
    The first "section" of the ansi file should contain the basic screen
image which is to be sent to the user BEFORE testing begins (Usually a screen
with blanks to be filled as testing proceeds).
    The second section will be marked by a line (immediately following the
"main" section) with only the text ENDANSI (IN CAPITAL LETTERS). This will
signal the next series of commands are for filling in the test prompts. The
next section will consist of 19 ansi strings each of which will indicate a
certain process occurring. An optional final line can define the foreground
and background colours of the THD identification header. in order, they are..

                                                                  Page 45

    indicator clearing line 1
    indicator clearing line 2
    the CRC test is starting
    the CRC test was passed
    the CRC test was failed
    the file is being expanded
    the file expanded okay
    the file did NOT expand okay
    the file is being virus scanned
    the file passed virus scanning
    the file failed virus scanning
    the work space is being cleared
    clearing of workspace is complete.
    expanding for conversion
    passed expansion for conversion
    failed expansion for conversion
    rearchiving for conversion
    passed rearchiving
    failed rearchiving
    foreground/background colour definition (optional)


    None of these strings may exceed 70 characters.

    The first two lines are for clearing the "indicators". If you are using
"blocks" or other characters to display the testing, they should be "reset"
or cleared before the testing of imbedded archives begins. These first two
lines are for that purpose. These two lines could also be used to erase
"text" and start again. They will be displayed immediately before the CRC
test begins. There is no need to "clear" any of the "Fail" indicators as the
testing would stop if any fail occurs. (with the possible exception of the
SCAN failure which can be skipped if THDPRO.EXE is configured to pass
heuristic failures). If you are not sure how to use them... leave them as
empty lines.
    The third string (The CRC test starting string) could also be used to
clear the "pass" indicators (if the 2 indicator clearing lines are not
enough). So they will be cleared as the testing of internal files begins.
    IF any of those strings is to be unused, a blank line MUST be entered in
it's place. Imbedded testing will use the same indicators as the main file
testing. So only one set of indicators will be required. (Unlike the internal
ansi and ansi corners discussed above which have separate main and embedded
indicators).

                                                                  Page 46
    The final configurable string is an optional colour configuration for the
THD identification header (shown at the top of the screen when using
PAINSOFT.AN? files). The format for this line is "EXACTLY"...

    FOREGROUND=# BACKGROUND=#

    where "#" - represents the colour number according to the following

    0 = black
    1 = red
    2 = green
    3 = yellow
    4 = blue
    5 = magenta
    6 = cyan
    7 = white

    0 (black) may be used as a background colour ONLY. Foreground colours will
always be high intensity and background colours will always be low intensity.
Both colours MUST be defined or the display will default to YELLOW on RED.
(foreground must be specified first).
    The "TESTING - FILENAME.EXT" will always be high intensity white in the
header.
    To "sample" the various headers available, THDDEMO now allows the use of
a parameter "/C". (This parameter must be "after" the filename on the command
line.) If this parameter follows the name of a PAINSOFT.AN? file it will
display the "main" ansi portion and sit. At this point you may scroll through
the various foreground and background colours by hitting either "F" or "B".
when you have decided on a combination that goes well with your main body
ansi, hit <ESC>. THDDEMO will then exit, clear the screen, and report the
foreground and background colours that were displayed just before you exited.

    ie. THDDEMO PAINSOFT.AN4 /C
would display the PAINSOFT.AN4 ansi file with the THD ID header, from there
press "F" or "B" to change the foreground and/or background colours until you
find a combination that you like. Hit esc and it will display the correct
"colour definition line" to insert in the file to achieve the colours that
you have selected. (Note that this only works with PAINSOFT files since the
THDPRO files do not display the ID header).

- PAINSOFT.ANS -

    PAINSOFT.ANS is a special case. If Found, PAINSOFT.ANS, will always be
used instead of ANY other ansi.
    Painsoft.ans follows the same creation and viewing guidelines as
described above for PAINSOFT.AN? files. You may use this file to force the
same output on every file test. While boring, I'm sure some of you will find
it useful.
    In English... If PAINSOFT.ANS exists in the same directory as THDPRO.EXE
then all random screen selection is bypassed and PAINSOFT.ANS is always sent
to the remote, regardless of the other ansi files present.

                                                                  Page 47

                                ------------
                                - COMMENTS -
                                ------------


- THD ProScan's custom / configurable comment control -
-------------------------------------------------------

    THD ProScan offers what is likely the most configurable comment option 
available in any upload tester. In some cases, this configurability comes at
a cost. Some of the options are very complex to set up and understand.
    Notably commenting by area is not a simple task to set up for most
people. Random comments can be confusing. Keyword replacement however is
more or less relatively simple.

- Randomly selected comments -
------------------------------

    THD ProScan can be configured to select a comment at random from a list
of comments. This option must be selected in THDINSTL and is not the default.
    These comment files may have any legal dos filename and are simply to be
arranged in a list format of one filename per line followed immediately by a
carriage return/line feed (hitting enter in most editors accomplishes this).
    Such a list might look like this...

              C:\HEADERS\RANDOM1.TXT
              C:\HEADERS\RANDOM2.TXT
              C:\HEADERS\RANDOM3.TXT
              C:\HEADERS\RANDOM4.TXT
              C:\HEADERS\RANDOM5.TXT
              C:\HEADERS\RANDOM6.TXT
              C:\HEADERS\RANDOM7.TXT
              C:\HEADERS\RANDOM8.TXT
              C:\HEADERS\RANDOM9.TXT
              C:\HEADERS\RANDOM10.TXT

- Comment by area -

- theory

    This "random" list can also be used to cause files in certain areas to be 
given a specific comment.
    This will be useful for persons who wish to emphasize certain aspects of
their BBS. You could for instance cause all files in your "programming" area
to be marked with a comment file that tells people about your "Programming"
conference and guidelines. Or perhaps you allow free download of BBS
utilities and want to insert a comment in those archives to let people know
that BBS Utilities are free on your BBS. Whatever your reason.

                                                                  Page 48

- setting it up

    The method is as follows.

    To cause THDPRO.EXE to insert a specific comment in a specific area, you
must select in THDINSTL to use a "list" of file comments. You must then
create that list. In our example the file will be called "COMMENT.LST".
     A "specific" comment line in this file will consist of...

    "IF" {QUALIFIER} {COMMENT}

    [note that the entire line must be capital letters]

    A "qualifier" is a string of text which will be looked for in the path to
the file being tested. It need not match the path exactly... But rather if
the "qualifier" is contained in the path then it will be considered a match.
    As an example. "C:" as qualifier would match every file in every
directory on drive "C". (Since the text "C:" would be found in the path to
any file on that drive). "C:\BBS" as a qualifier would match any file found
in the "C:\BBS" directory or any of it's subdirectories.
    And "C" as a qualifier would match EVERY path that has a "C" anywhere in
it.

    A random comment will only be used when a matching qualifier is not
found. To use ONLY random comments, simply make a list of headers with no
"IF" or {QUALIFIER}.

    Sample "COMMENT.LST" (using only specific area comments)

         IF   C:\BBS\DLS\PROGUTIL  C:\HEADERS\UTILHEAD.TXT
         IF   C:\BBS\DLS\BBSUTIL   C:\HEADERS\BBSHEAD.TXT
         IF   C:\BBS\NORATIO       C:\HEADER\FREE.TXT
         IF   C:                   C:\HEADERS\BBSAD.TXT
         IF   D:\MYUTILS           C:\HEADERS\MYHEAD.TXT
         IF   D:\SYSOP             C:\HEADERS\PERSONAL.TXT

    In the list above, the "IF"'s, qualifiers, and headers are separated in a
column arrangement so that you can better distinguish them. This is for your
benefit and is not required. They must be separated by at least a single
space (although a column arrangement as shown above will also be acceptable
as long as the entries are separated by "spaces", not by "tabs").
    The "IF" statements must ALL be before the random selection list.
    The lines without "IF" statements are comments which are to be chosen
from at random when there are no matching qualifiers.

    When looking for a comment, THDPRO.EXE will look for the FIRST matching
"qualifier" (that is the text following the "IF" statement above). In this
regard a "match" is any qualifier which can be found in the path of the file
being tested.
    If the qualifier is contained in the path to the file to be tested,
THDPRO.EXE will stop looking for a comment and use the first match.

                                                                  Page 49

    In the above example you will notice that "C:" (the qualifier for the
fourth line) is contained in each of the first four qualifiers. IF it were
put as the first line, then THDPRO.EXE would use "C:\HEADERS\BBSAD.TXT" for
every file on drive "C". Since "C:" would be found in any file in "C:\BBS".
    So in this respect you must make sure that the order in which you place
the qualifiers will not conflict with any later qualifiers. That is, a
qualifier must NEVER fully contain a qualifier which appears before it in the
list. (ie. "C:\BBS\TEST" must appear before "C:\BBS" in the list).
    IF THDPRO.EXE cannot find a matching qualifier it will chose at random a
comment from the entries appearing without "IF" statements.
    IF the comment chosen does not exist. THDPRO.EXE will insert the comment
from the very first line in the list (even if it has an "IF" statement). IF
the comment from the first line does not exist, no comment will be added.
    The list is considered complete if a blank line is found, so no blank
lines should be in the list. If there is a blank line in the list, all text
following the blank line will be ignored.
    The best "simple" method I can give for ensuring the correct order of
"IF" statements is to put them in alphabetical order from BOTTOM TO TOP.
(that is... in reverse alphabetical order). Many word processors can do this
for you quickly and easily. And remember that the "IF" statements go first
and the order of the random comments is unimportant except that they be after
ALL "IF" statements.

     GOOD LUCK.


- Keyword replacement / customization -
---------------------------------------

    THD ProScan supports the use of some "key words" which it will search for 
inside of file comments and replace with certain values prior to using the 
comment. These keywords will be searched and replaced in all comments no 
matter by what means the comment is chosen.

- keywords -

    The list of valid keywords and their values is as follows

    %THDVER%  - The version of THD used. Format = "THD ProScan Version 12.0"
    %TIME%    - The Time (at which the comment is updated)
    %DATE%    - The Date (at which the comment is updated)
    %NEWDATE% - The date of the newest file in the archive.
    %OLDDATE% - The date of the oldest file in the archive.
    %NEWFILE% - The name of the newest file in the archive.
    %OLDFILE% - The name of the oldest file in the archive.
    %DESC%    - The description as used in the file bases update (if any)
    %IFDESC%  - Print this line ONLY if a description is used.
    %P_NAME%  - The Program name (according to Vendinfo.diz)
    %P_VER%   - The Program version (according to Vendinfo.diz/only numbers)
    %A_NAME%  - The Program's Author (according to Vendinfo.diz)

                                                                  Page 50

    The latter 3 options will only be translated IF a vendinfo.diz is found,
so they may safely be used in comments. However note, that if the information
is NOT found, the entire line will not be printed, so it would be best to
keep each of these entries on a separate line in any comment in which they
might be used.

    ie.

    %P_NAME% Version %P_VER% by %A_NAME%
         is acceptable (since none of these values would be translated in the
         absence of a Vendinfo.diz)

    Program Name  - %P_NAME%
    Version       - %P_VER%
    Author        - %A_NAME%
         Acceptable (all 3 lines would be removed if no Vendinfo.diz found)

    %P_NAME% test by %THDVER% on %DATE%
         would not be acceptable since the whole line would be removed if no
         vendinfo.diz were found (thus the date and THD Version would not be
         entered since this line would not be printed unless a vendinfo.diz
         were found.)

    It is imperative that no other information be entered on the same line as
%DESC%. This entry will not print the line on which this is entered. Instead
this line is replaced by the description to be used in the File base update
(this is for those who wanted FILE_ID.DIZ in the comment). The size of this
description, if it is taken from a vendinfo.diz file is selectable in
THDINSTL.EXE (otherwise the full description contained in a valid
description file is used).
    Lack of a description will result in no line at all (not even a blank
line).

    The "%IFDESC%" is to be used on a line that you only wish to be print IF
a description is present.

    reason being.. you might like to use something like this..

              Description
              -----------
    %DESC%

     Problem being that if no description is present the "Description" and
following underline would still be printed. To work around this it can be
entered in the comment file as ...

    %IFDESC%          Description
    %IFDESC%          -----------
    %DESC%

                                                                  Page 51

    which would only print the "Description" and "-----------" if a
description were present. (The position of %IFDESC%  on the line is not
important and it could just as easily be placed at the end of the line with
no difference in final output.)

    For the sake of demonstration, the following would give the exact same
result as above... (although for simplicity. I recommend putting it at the
beginning or end of the line)

              De%IFDESC%scription
              ------%IFDESC%-----
    %DESC%


    The following is a sample comment and what follows is how it would look
as an archive comment after processing by THD. (note in the following
examples I have used the 250 character description from the Vendinfo and not
the 450 character that would be used in most circumstances [or possibly
longer given some people's refusal to go by the standard]).

    Original comment file prior to processing...
    -------------------------------------------------
    | This file successfully passed testing by      |
    | %THDVER%                                      |
    | on %DATE% at %TIME%.                          |
    |                                               |
    | Program Name   - %P_NAME% Version %P_VER%     |
    | Author         - %A_NAME%                     |
    | %IFDESC%                                      |
    | %IFDESC%             *****************        |
    | %IFDESC%             ** Description **        |
    | %IFDESC%             *****************        |
    | %IFDESC%                                      |
    | %DESC%                                        |
    -------------------------------------------------

    ** After processing with no desc or vendinfo.diz...
    -------------------------------------------------
    | This file successfully passed testing by      |
    | THD ProScan Version 12.0                      |
    | on 06/05/1994 at 3:49PM.                      |
    |                                               |
    -------------------------------------------------

                                                                  Page 52

    ** After processing with desc but no vendinfo.diz...
    --------------------------------------------------
    | This file successfully pass testing by         |
    | THD ProScan Version 12.0                       |
    | on 06/05/1994 at 3:49PM.                       |
    |                                                |
    |                                                |
    |              *****************                 |
    |              ** Description **                 |
    |              *****************                 |
    |                                                |
    | THD ProScan Version 12.0 Archive Processor.    |
    | File base updates for FILES.BBS, RG, TG and RA |
    | formats. Multiple virus scans as well as many  |
    | configurable options. Allow user definable     |
    | conversions for supported archives.            |
    --------------------------------------------------

    ** After processing with vendinfo.diz (description is taken directly from
    vendinfo.diz)...
    --------------------------------------------------
    | This file successfully pass testing by         |
    | THD ProScan Version 12.0                       |
    | on 06/05/1994 at 3:49PM.                       |
    |                                                |
    | Program Name   - THD ProScan Version 12.0      |
    | Author         - David Muir                    |
    |                                                |
    |              *****************                 |
    |              ** Description **                 |
    |              *****************                 |
    |                                                |
    | THD ProScan Version 12.0 Archive Processor.    |
    | File base updates for FILES.BBS, RG, TG and RA |
    | formats. Multiple virus scans as well as many  |
    | configurable options. Allow user definable     |
    | conversions for supported archives.            |
    --------------------------------------------------

                                                                  Page 53

                          -------------------------
                          - Environment variables -
                          -------------------------

    THD ProScan supports five environment variables. They are...
          THDZIP - THDARJ - THDRAR - THDOPT - THDRUNLOG

    The first three environment variables are for use by persons who have
registered version of PKZip, ARJ or RAR. The latter of the variables can
alter a number of default actions of THDPRO.EXE.

- THDZIP -
----------

    This variable accepts one of two settings. The first...

    SET THDZIP=TRUE

    This setting tells THDPRO.EXE that you are using a registered version of
PKZIP and would like to have the "AV" added when conversions to "ZIP" format
are performed.

    SET THDZIP={drive:\path\to\your\AVEXTRA.TXT}

    This setting tells THDPRO.EXE that you are using a registered version of
PKZIP and would like to have the "AV" and the AVEXTRA.TXT added when
conversion to "ZIP" format are performed. For information on AVEXTRA.TXT, you
should see your PKZIP users manual.

- THDRAR -
----------

    This variable accepts one setting.

    SET THDRAR=TRUE

    This setting tells THDPRO.EXE that you are using a registered version of
RAR and would like to have the "AV" added when conversions to "RAR" format
are performed.

- THDARJ -
----------

    This variable accepts only a single parameter.

    SET THDARJ={drive:\path\to\your\SECURITY.KEY}

    This setting tells THDPRO.EXE that you are using a registered version of
ARJ and would like to have the security envelope added when conversion to
"ARJ" format are performed.
    Do not put any switches in this variable as THDPRO.EXE will supply the
necessary switches.

                                                                  Page 54

- THDOPT -
----------

    This variable is used to alter some default actions of THDPRO.EXE.
    The available options are as follows...

    THDOPT accepts five switches. "SOLID", "ANSI", "ADD", "NFL" and
"NDx" where the "x" represents a drive letter to be used for expansion and
testing of the file.

    SET THDOPT=SOLID will cause conversions to "RAR" format TO produce
               "solid" archives. (Uses the -s switch to create RAR archives).

    SET THDOPT=ANSI will force ansi to the remote.

    SET THDOPT=NDF will force THDPRO.EXE to attempt to use drive "F" for the
               file testing process before using the internally configured
               drive(s).

    SET THDOPT=NFL tells THDPRO.EXE to send the "/NOFLOPPY" switch to F-Prot.
               Use this ONLY if F-PROT requires the "NOFLOPPY" switch to run.

    SET THDOPT=ADD tells THDPRO.EXE to toggle the bit in the TESTINFO.DAT
               record which indicates that the user wishes to have database
               entries created when they do not already exist (not supported
               by THDPLUS).

    SET THDOPT=ANSI NDE SOLID ADD NFL
               Force ANSI output, use drive "E" for the temporary drive
               assignment, use the solid option when converting to RAR
               format, Set the "add" flag in TESTINFO.DAT and use the
               "/NOFLOPPY" switch with F-PROT.

    Note that only one alternate drive may be input using NDx. These
switches can be mixed and matched as necessary.

    Contrary to popular opinion, there is no support for a "THDPRO"
environment variable. The purpose for which many programs use a similar
environment variable is not required by THDPRO.EXE as it finds this
information based on other factors.

SET THDPRO=XXXX
         does absolutely nothing except waste your environment space.
         DO NOT SET THIS VARIABLE unless you have a use for it yourself.
         THD ProScan does not recognize it.

- THDRUNLOG -
    This option is used to generate a log file for use by the author in
    debugging particularly odd errors. There should be no reason for the
    average user to set this to any particular value unless instructed to
    do so by myself. Use of this variable will dramatically hamper
    performance. It is used as SET THDRUNLOG={path to runtime log file}.

                                                                  Page 55

                               ---------------
                               - Secure Mode -
                               ---------------

    The theory behind providing a "secure mode" is to offer some limited
protection against THDPRO.EXE inadvertently helping to spread viruses by
running infected utilities.
    THDPRO.EXE, when run in secure mode, will CRC check each executable file
prior to running it (including THDPRO.EXE itself, but this will of course be
checked after loading). If the file's CRC does not match the recorded value,
THDPRO.EXE will cease operation immediately following cleaning of any
temporary directories which it may have created. It will then exit with an
errorlevel of 255, indicating a security breach. In most cases this breach
will be logged in THDPRO.LOG.
    The exception to the above is THDPLUS.EXE. If THDPLUS.EXE fails the CRC
check, it will be logged and the utility will not be run. Since THDPLUS.EXE
is not essential to any "test" operations, it was deemed that aborting
testing due to it's CRC failure was unnecessary. Instead running of THDPLUS
is skipped and logged.

    **********************************************************************
    ** Please keep in mind that this method of "security" is not 100%   **
    ** effective. This is being supplied as an additional step to virus **
    ** scanning these utilities and not as a replacement for it. These  **
    ** utilities (as with all files) should be scanned for viruses and  **
    ** tested on a regular basis to ensure that the files are intact.   **
    **********************************************************************

    Secure mode is toggled from the final screen of THDINSTL. Once selected,
THDPRO.EXE will search for and evaluate the CRC's based on a file called
THDPRO.SEC. This file MUST exist in the same directory as THDPRO.EXE
(THDPRO.EXE will put it there). If the file does not exist THDPRO.EXE will
refuse to run (citing a security breach as the reason). Therefore you must
use THDPRO.EXE to generate the THDPRO.SEC file before it can be run in secure
mode.

    The disadvantage to secure mode is twofold. First it will refuse to run
every time you upgrade a virus scanner or other utility (since the CRC's will
not match). Secondly it takes time to calculate the CRC values.

    The first problem is easily solved by ensuring that you update your
THDPRO.SEC file any time you make changes (as outlined below) and/or updating
the THDEXARC file when changes are made. The second instance is a necessary
evil of the added security. The CRC values will be checked prior to each run
of a util (that is EVERY single time THDPRO.EXE is told to run an external
util, it will check the CRC first, even if it was run only moments before
and passed that CRC test).


                                                                  Page 56

- THDPRO.EXE /SEC -
-------------------

    To generate and/or update the THDPRO.SEC file (anytime a utility is
changed or THDINSTL is run), simply run THDPRO.EXE /SEC. This option will
cause THDPRO.EXE to perform it's "normal" self test and if that test is
passed, then it will create a THDPRO.SEC file using the configured
information.
    This option will perform no comparison to previously recorded values, so
if you have suffered a security breach and are unsure as to what caused it,
then do not run this until after running the security test outlined below.
     Also note that this command does NOT update the CRC's stored in the
THDEXARC.DAT file. IF the file failing the security test is one contained in
the THDEXARC.DAT file then you must run THDEXARC and "edit" the affected
utility. Upon saving the record, THDEXARC will update the CRC to match the
file(s) indicated in the archiver and/or unarchiver path(s).

- THDPRO.EXE /SECTEST -
-----------------------

    This option causes THDPRO.EXE to compare the current values in the
THDPRO.SEC and the CRC's recorded in the THDEXARC.DAT files files against the
CRC values of the files as they exist on disk. It will report only these
files whose CRC values are different from those recorded in the THDPRO.SEC
file. This operation causes no changes to the THDPRO.SEC file, and should be
used to see which utility or utilities THDPRO.EXE believes have changed.
Failures will be reported as being "in breach of security". If no file names
are listed as being in breach of security, then the THDPRO.SEC file is
usable "as is".
    An ideal test will report that it is checking and that it is done with
nothing in between.

    In addition to the utilities, the THDPRO.SEC file is also CRC checked by
the above procedure as well as at run time by THDPRO.EXE. A change in that
file's CRC is considered to be a security breach just as any utility change
would be.

    Upon exit from THDINSTL, if secure mode is selected, the user will be
reminded to run THDPRO.EXE /SEC to update the THDPRO.SEC listing, since in
almost all cases THDINSTL will change the CRC value of THDPRO.EXE, thus
rendering the THDPRO.SEC value invalid which will result in a security breach
each time THDPRO.EXE is run.


                                                                  Page 57

                              -----------------
                              - NETWORK NOTES -
                              -----------------
     First... You must be aware that while "some" people have no difficulty
running THD under a network as a regular DOS application, others have little
or no success.
     My beta tester's and I are doing our best to resolve this problem in as
many instances as possible (at this point one of my beta testers is in fact
unable to run the program under his network and joined the team specifically
to find the solution).
     So "first" try to install THD as a standard DOS application without any
special considerations. If that doesn't work. Then try the following...
In any case you should read this to see if there are any things you might
need to consider.

... RENAME THDINSTL.EXE TO NETINSTL.EXE.
       Alternately, you could also run THDINSTL.EXE /NET which has exactly
the same effect as renaming the file. However, for ease of use (odds are
good that you will only ever wish to run in NET mode), you will likely find
it easier to rename the installation file than to remember to constantly
supply the "/NET" parameter, although either method will work.
       This will tell THDINSTL that you are attempting installation on a
networked system. This will simplify the installation by NOT putting drive
letters in front of the paths to the utilities that it finds. It will also
not prompt you for the "temporary" drive assignments and instead default to
"network compatible mode" which uses only the current drive for file testing.
     In this and all documentation, THDINSTL refers to the file as
distributed. If renamed to NETINSTL.EXE, all references are still valid
except as noted above.
    While THD ProScan is not "network aware", it can be run in a network
environment with some considerations.
    An important consideration is that THDPRO.EXE under many networks
will not have write access to the root directory. Therefore is you install
THD ProScan using network mode, you MUST create a directory called "\THDWORK"
off of the root directory on same drive on which THDPRO.EXE is to reside.
THDPRO.EXE will then treat this directory in precisely the same manner it
treats the root directory in a non-networked environment. If this directory
does not exist THDPRO.EXE will exit without any action if network mode is
active.
       Another important consideration, is that THD ProScan makes
extensive use of "drive" letters in it's normal operation. On a network
system, these drive letters are reassigned depending on the remote caller.
The sysop must therefore take into account that these drive letters might be
different from one remote to the next and account for this when running
THDINSTL.EXE.
    When running THDINSTL, be sure not to specific a drive whenever the
installation will allow you to supply simply a file path (in other works
supply things like "\utils\pkzip.exe" instead of "c:\utils\pkzip.exe"). In
order to do this, THDINSTL must be run on the same drive as all of it's files
are located.

                                                                  Page 58

    It is important to note that THDPRO.EXE will still assign all of these
paths with drive letters. But this will be done at run time with the current
drive letter in a case where one was not supplied during installation. If the
current drive is "C:" when THDPRO.EXE is invoked then a path entered in the
install as "\UTIL\PKZIP.EXE" will actually be called as "C:\UTIL\PKZIP.EXE".
Likewise if the current drive were "T:" at run time THDPRO.EXE would run
"T:\UTIL\PKZIP.EXE". At no time would THDPRO.EXE attempt to run simply
"\UTIL\PKZIP.EXE"

    It is therefore recommended that network users have THDPRO.EXE and all
the necessary files located on the same logical drive as all the files to be
tested and all of the utils to be used. In other words on a one drive system.
    When THDINSTL prompts for the use of drives to use for testing, you
should enter "0" to tell THD that you wish it to use only it's current
drive for file tests. Technically what this does is to tell THD that all
temporary drives are the same drive and that drive is the drive on which
the system was running when THDPRO.EXE was called. This option will solve
the majority of network problems suffered by some users who could not get
THD working properly for them previously.

    Note that once configured, THDPRO.EXE could be moved to another drive and
would work if called correctly, since it determines it's own location at
runtime.
    This is not a "requirement" as such. Certainly some network users can get
it working for them without this consideration. This should be used by those
who either find it easier than the method they used previously or who are
having difficulty getting it to run correctly under a network environment.

    The THDOPT "NDx" environment variable can also be useful for network
users. If the remote system can define environment variables under your
particular network, you could have them set this particular variable to their
drive assignment (see the section on environment variables) and thereby cause
testing to occur on the correct drive from their point of view.

    At least one Novell user has stated the need for "SHOWDOTS=TRUE" in his
configuration file. The symptom was that THD failed to remove it's temporary
directory when this was not present.

    The THDOPT=NFL may be required on systems without floppy drives when
running F-PROT.EXE. Use this only if you have no floppies connected to the
system and F-PROT suggests that it be used.

    Note that while I do my best to make THD as compliant with as many systems
as I possibly can, my knowledge of network software and how it works is nearly
non-existent. So if you have suggestions or other things in this matter that I
might consider, please feel free to let me know about them.
      Again, if you select the "network mode" during THDINSTL, you should be
certain that you have not supplied drive letters to the utilities to be used
and that all such utilities are located on the same drive that THDPRO.EXE will
be called from. Failure to locate "all" files on the single drive will likely
cause THDPRO.EXE to react in an unreliable manner when unable to locate the
needed files on the current drive.
