  +---------------------------------------------------------+---------------+
  |  ####  ##  ## ######  ####   ####   ####   ####  ##  ## |  Version 0.1  |
  | ##  ## ##  ##   ##   ##  ## ##     ##  ## ##  ## ### ## |  (C) 1993 by  |
  | ###### ##  ##   ##   ##  ##  ####  ##     ###### ## ### |  No Means No  |
  | ##  ## ##  ##   ##   ##  ##     ## ##  ## ##  ## ##  ## |PRIVATE RELEASE|
  | ##  ##  ####    ##    ####   ####   ####  ##  ## ##  ## |    VERSION!   |
  +---------------------------------------------------------+---------------+
  |             The constitution of the declaration of Autoscan:            |
  |   As far as I know, this is the only scanner of its type, otherwise I   |
  |  wouldn't have done it.   I couldn't get some of the other scanners to  |
  |  work with this modem,  So I proceeded to write this scanner, my first  |
  |                IBM program.  It was completed in 2 weeks.               |
  | (Would have been sooner if I dodn't have trouble finding COM PORT info) |
  |   Autoscan (All versions!):  (c)opywronged 1993 - All rights reversed   |
  |   If you have any comments, questions or suggestions on this software   |
  | then get in touch with me and definatly let me know whats on your mind! |
  |                  No Means No - nmn@mindvox.phantom.com                  |
  +-------------------------------------------------------------------------+
  | The glorius history of Autoscan (Carefully examined, sensitive subjects |
  |  censored or omitted by The American Board of Moral Majority.  Members  |
  |   include the PTL cosmetic section, the 700 club telephone operators,   |
  |   Robert Tilton, and anyone who owns a christian television station.)   |
  |                                                                         |
  | Autoscan Version -1  -- Released to select individuals for betatesting  |
  | and then asked that it be annihilated, so there should be no existing   |
  | copies out there.  Thanks to Captain Trips for betatesting this version.|
  |                                                                         |
  | Autoscan Version 0.0 -- Released 2/1993, this was a private release     |
  | version that was given out upon request to be distributed on a personal |
  | basis.                                                                  |
  |                                                                         |
  | Autoscan Version 0.1 (This version) -- Most bugs were fixed, there are  |
  | still a few left to be fixed, however, you will have to wait until the  |
  | next version.  The documentation for this version remains for the most  |
  | part the same as the documentation for 0.0, except for minor corrections|
  | where needed to make an update for this version.  This is still in the  |
  | testing stages, and it is still a private release version.  Notable     |
  | features added: Blacklist file, List of pre-configured modems.  This    |
  | version comes with the "TL2AS.EXE" utility, which converts Toneloc .DAT |
  | datafiles to Autoscan .XCH exchange files.  This version of TL2AS only  |
  | converts toneloc's 10012 byte .DAT files.  Thanks to Rebel Lion for     |
  | betatesting Autoscan Version 0.1.  This version of Autoscan was released|
  | on 3/1993.                                                              |
  +-------------------------------------------------------------------------+


   Generic Disclaimer:  I No Means No, the programmer of Autoscan, nor any
friend of the programmer, their sexual partners, their parents, their pets,
or their computers, can NOT be held responsible for the use, abuse, or
misuse of systems found with this program when used by any government
employees or their associates, of any given country.  However, we claim full
responsibility for the abuse of autoscan by normal citizens.  Just kidding,
of course.  I can not be held responsible for any misuse of this program, or
systems found with it, so that is that.  Read on.


   About Autoscan:  Well, this program is self explanatory.  However I will
try to explain things as best as I can without getting too bored.  This
program took a total of about 2 weeks to complete, it was written in C and
all routines are of my own coding, except the com port routines, which were
some public domain library which I will take time to do my own routines for
a later version.
   This scanner has many unique features, possibly everything you could ever
need in a scanner, heres the more important features of autoscan:
   * Completely window driven program for ease of use (ooh ahh!).
   * High resolution graphics display in either EGAHI or VGAHI modes with
     10(EGA)-20(VGA) line x 79 column modem echo window, a full 200x200 pixel
     exchange display grid with either block (solid display) or dot modes,
     and a status window with percentages and bar displays of the exchange
     results.
   * Option to Capture all modem connections to a seperate .CAP file.
   * Option to flood all sitting connections to force a response from the
     remote computer (only needed when you choose to capture connections).
   * Allows the user of the program to 'break in' to established connections
     during scanning and login to systems using the modem echo window.
   * All exchange data files are only 5000 bytes long.
   * Automatic scanning option: This allows AUTOSCANNING MODE which means it
     will scan non-stop until aborted (or a power outage of course!  But I
     suppose you could rig it up to be auto-loaded).  Read the extended
     documentation on this feature later in this file for further information
     on autoscanning with AutoScan.


   New features for Version 0.1:  For the most part, only bugs were fixed
that I should have fixed before I released Version 0.0.  These are the new
noticable features for Autoscan 0.1:
   * List of modems added so that you can set up autoscan quickly and
     easily (See file: "AUTOSCAN.MDM").
   * Blacklist feature added so that you can prevent certain numbers from
     being called for whatever reason you deem necessary (See file:
     "AUTOSCAN.BLS").

   Features you WILL see in the next version:  These features will definatly
be included in the next version, weather you like it or not!
   * BLOCK SCANNING option (In otherwords, you can scan only PART of a
     given exchange, if that be your desire.
   * TIME/DATE Start/Stop option, if specified, it will either BEGIN at any
     given time and date, and AUTOMACIALLY quit scanning at any given
     time/date.  This will be a very useful feature, dont you think?
   * The ability to stop scanning if the modem detects a callback or NO
     DIALTONE, and pause for a given ammount of time to allow the person
     calling back to be overcome by frustration and give up all hope of
     contacting you to bitch you out for "prank calling".  This is useful,
     because it IS possible for someone to jump-in and inturupt your
     scanning, as a matter of fact, I did it tonight to Rebel Lion, he will
     discover it when he reads his .CAP file.  *grin*
     Also, this can be good, because if you have an answering machine, you
     can include a message stating an apology or something to that effect to
     thwart the callers efforts to contact you and bitch you out.  Sheesh!
     Some people these days, eh?


   Autoscan Version 0.1:  This is the version you have right now, I ask you
to NOT publically distribute (upload to systems, etc) this program, but to
pass it over to the people you feel can handle the responsibility to
accordingly distribute it.  So if this program has fallen into your hands
for whatever reason, this does NOT mean your 'elite', however it means you
are trusted, and I ask you to give it to at least one person, not to be
traded, but to be SHARED.  Note: This software is still in testing phases.
When you do give it out, I request you distribute it as you have received it,
and that should be an archive with ONLY the following files: "AUTOSCAN.EXE",
"AUTOSCAN.DOC", "AUTOSCAN.BLS" (the example file), and the "TL2AS.EXE"
utility.  Please do not include your "AUTOSCAN.CFG" file.
   Will this method actually work?  I don't know, I suppose I will find out,
its just a simple request to respect my intentions to compensate for the
time I have spent programming this, thats all.
   In any case, I hope you like it, let me know what you think.


   Configuration:  Upon execution of this program, it will first search for
the "AUTOSCAN.CFG" file, which you should NOT have if this is your first
time using the program, (If the person that gave you this program did
include the "AUTOSCAN.CFG", do me a favor, bitch at him/her and tell him/her
to read the documentation).  If you have a configuration file from version
0.0, please delete it, the configuration file format changed GREATLY and
both types are incompatable.
   Lets go over the options in the configuration file.
   (01) Configuration file for     :  This is where you put your name.
   (02) Type of modem being used   :  This is where you identify which
      modem you are using.  NOTE: If you modem is not included in the list
      (which comes from the file "AUTOSCAN.MDM"), you should first try other
      modems and see if they work correctly (That is, see if they correctly
      do detections, if it detects an abnormal amount of false tones, thats
      a sign you choose a very incompatable modem!), if you can not find one
      that will work, you should then proceed to ADD YOUR OWN.  Read the
      documentation in the "AUTOSCAN.MDM" file for adding your own.  Once
      you have it working, SEND IT TO ME so your modem (and other peoples
      who have the same one) will work with future versions of Autoscan.
   (03) Optional modem init string :  This is where you can put in hayes
      commands to set the speed of your modems dialing, or anything else you
      wish to add that is not included in your modems strings in the
      "AUTOSCAN.MDM" file.  You can use an exclaimation point ("!") to
      seperate two commands (example "ATS11=55!ATM1" would first send
      "ATS11=55", pause, and then send "ATM1").  This is optional.
   (04) Status of modem speaker    :  Do you want your modems speaker to be
      on or off?  Self explanatory, don't you think?
   (05) Com port settings          :  You select the COM PORT where your
      modem resides (COM1,2,3 or 4), and the baud rate of your modem.
   (06) Delays until & between     :  These are the delays in seconds.
      Delay until is the max time it will wait for a response before it
      assumes that the remote telephone is "Not answering".
   (07) Pre number extension       :  If you have call waiting, you might
      want to put in "*70".  Or if your in one of those areas where your
      local CO gives you the right to prevent from being CID'd (Caller ID),
      then use it here.  A "," on the end of the string is not needed for
      pausing, Autoscan automatically puts it there when it dials the number.
   (08) Graphics mode              :  This is where you select your graphics
      mode of choice, this can be either EGA (640x320) or VGA(640x480), the
      difference between the two modes basically narrows down to how many
      lines in the modem box you will have.  You will have 10 in EGA and
      20 in VGA.  They both have their advantages and disadvantages.  You
      can of course change this later if you wish.
   (09) Exchange grid style        :  This refers to the exchange grid style.
      Block (easier to tell the numbers apart but slower to draw),
      Dot (harder to tell the numbers apart but faster to draw).
   (10) Scan format                :  This determines how Autoscan chooses
      its numbers: 
         RANDOM format: The best to use, of course.
         FORWARD SEQUENTIAL format: 0000,0001,0002,0003,0004,etc.
           (NOTE: This might get you in trouble with the phone company
            these days!)
         BACKWARD SEQUENTIAL format: 9999,9998,9997,9996,9995,etc.
           (NOTE: Not as risky as forward seq, but possible harassment from
            the phone company.)
   (11) Capture all connections    ?  If you select "Yes" for this one, it
      will capture ALL modem connections to a seperate file in the format of
      "(exchange).CAP", if the exchange is 555 for example, it would be
      saved under "555.CAP".
   (12) Flood all sitters          ?  If you select "Yes" for this one, it
      will flood all modem connections that do not give a response after 10
      seconds.. it will send every character (1-255) in a sequential format.
      It will then capture anything it receives as a response from the
      flooding for the next 10 seconds.  You only need to use this if you
      are capturing connections.
   (13) Automatic run on startup   ?  If you select "Yes" for this one, it
      will scan random exchanges automatically until aborted.  Read the
      section on autoscanning first before selecting "Yes".


   Main Menu:  Your list of commands at the main menu, and simple
descriptions are shown below:
(SPACE)  - Edit configuration file, explained in the section above.
(RETURN) - Scan an exchange, explained in the section below.
(V)      - View an existing exchange.  This allows you to view the exchange
grid on existing exchanges, you can also move to pointer in the grid around
using the cursor keys to see the status of one certain number.  The escape
key exits from this view mode.
(D)      - Read the documention file you are already reading.
(ESCAPE) - Leave autoscan.


   Selecting your exchange:  When you push return from the main menu, it
will search the autoscan directory for all files ending with ".XCH", these
files, only 5000 bytes long, are the files that keep all the information on
the exchange in question.  If any exist, it will list them, you can scroll
through all the exchanges in the "Pick an exchange:" window.  If you do not
wish to continue an exchange scan or wish to start an entirely new scan, or
if it finds no existing exchanges, you can push the space bar to enter a new
exchange of your choice... once you select your exchange, the high
resolution scan screen will be displayed and it will automatically proceed
or continue with the scanning of that exchange.


   The high resolution scan screen:  The scan screen is set up as shown and
described below...
#############################
#+-------+ 2 +-------------+#  1: The Exchange grid display, shows the #'s
#|   1   |+-+|      4      |#     From upper-left(0000) to lower-right(9999)
#|       ||3||             |#     counting horizontally.
#+-------++-++-------------+#  2: Shows the types of detection, they are:
#+-------------------------+#     "Not dialed" (or no dialtone), "No Answer",
#|           5             |#     "Busy", "Skipped", "Voice", "Fax Machine",
#+-------------------------+#     "Tone", "Carrier".  Each type has its own
#############################     color on the exchange grid (#1).
3: This is the box that shows the number it is currently dialing and its
   status, as well as the countdown timer for the delays.
4: This is the status window that shows the status of the scanning progress.
   It also shows autoscans modes that pertain to scanning, and the menu of
   commands that you can enter while in scanning mode.
   5: This is the modem window, it shows everything the modem sends\receives.
   It acts just like a terminal window, there is a command that allows you
   to take control over the modem window when you make a successful modem
   connection, allowing you to log into the system.


   Blacklisting numbers:  If there are certain numbers that you do NOT wish
to be dialed under any circumstances (examples: people that know you hate
them, local scanning enforcement agencies), you can add these numbers in a
file "AUTOSCAN.BLS".  You should receive an example "AUTOSCAN.BLS" file with
this software, but in the possible case you have not, the format for the file
is described below:
   Every phone number included in the file must start on a new line.  If you
wish to add notes in the file, they must follow a semicolon (";").
--------"AUTOSCAN.BLS" example--------
; This is an example of the Autoscan blacklist file.
; These numbers will not be dialed, they will be "skipped" by Autoscan.
5551212    ; This number is my old boss who didn't like me
5558172    ; This is someone not worth mentioning
2025559526 ; C&P Scanning enforcement division
--------------------------------------
   There can only be a maximum of 50 numbers (any numbers after 50 will be
ignored!).  Any number which exceeds 11 digits will be truncated.  All non-
digit characters will be ignored and all characters after the ";" will also
be ignored until the newline.
   The "AUTOSCAN.BLS" file will be loaded (if it exists) into memory prior
to every scan.


   Scanning the exchange:  Exchange scanning is automatic, and consistant.
If you wish to abort the scanning, a simple press of the escape key will do.
If you happen to find a carrier of intrest and wish to immediatly log into
that system while the connection is still established, you can push return
at any time during the connection.  You then will have complete control over
the modem box and it will act as a terminal.  No terminal modes are
supported but raw data transmission.  Once you are finished with the system,
push the escape key and Autoscan will continue with the scanning of the
current exchange.
   Once the exchange is completed, it will prompt you to hit return, and you
will be returned to the main menu screen.


   Automatic scanning (Autoscanning!):  This feature is very useful if you
are the type of person that enjoys CONSTANTLY scanning exchanges.  To
activate this feature, select "Yes" in the configuration file under the
"Automatic run on startup?" line.  This will activate any time you are at
the main menu.  It will then begin to start a countdown of 10 seconds,
giving you enough time to exit the program (and run it later to be
activated) or to deactivate it.  Once the countdown is complete, it will
proceed by selecting random EXISTING exchanges from the autoscan directory.
If the exchange that was randomly picked is uncomplete, it will continue
scanning on that exchange until it IS complete.  If it is completed, it will
skip it and select another random exchange.
   If you wish to abort autoscanning, a simple ESCAPE will do as stated in
the previous section, all other commands in the previous section work as
well.  But once it is escaped, it will disable autoscanning mode and save
the configuration with autoscanning disabled to prevent accidental
re-activation of autoscanning.  Once at the main menu it will wait for
further instructions as if it was run normally, without autorun activation.
   I was going to add in a mode in autoscanning that after all EXISTING
exchange datafiles have been completed, it would randomly create a new
exchange within the range of 222-999 (with no double 0 digits), however, I
have decided against it due to potential problems, such as the random
selection of an exchange that you do NOT wish to scan!
   Instead, there are alternatives, you can create a new exchange, lets say,
555, and then copy that file into other exchanges you wish to dial, and then
select autorun mode, it will dial all the exchanges that you WANT to scan, I
think this is a much more acceptable idea, and no extra implementations need
to be done to the code, just create a bunch of new blank exchanges that you
wish to fully scan.
   Below I have included a chart of the length of times it would take to
complete (Y) exchanges with the delay of (X) in seconds it takes to detect
one number in the given exchange (I used the "Delay until" factor in
Autoscan), note that the MAXIMUM would be the average of the MAXIMUM*2, so
having a delay until of 60 seconds wouldn't necessarily be 6.9 days for one
exchange, but rather 3.5 days if your modem can detect voice, busy signals,
dialtones, and carriers quickly.  The content of the exchange would also be
a factor in coming up with an average time figure, however I do not have
any sufficent data to come up with an AVERAGE for something as crazy as
that, and I would have to average out the number status differences during
certain times of the day.  Same with averaging out the modems, oh nevermind,
here it is:
                  (X)->              Number of Exchanges
                 +----------+-----------+-----------+----------+----------+
         MAXIMUM |    1     |     5     |     10    |    20    |    50    |
       +---------+----------+-----------+-----------+----------+----------+
  (Y)  | 60 secs | 6.9 days | 34.7 days | 69.4 days |138.8 days|347.2 days|
   |   +---------+----------+-----------+-----------+----------+----------+
   V   | 50 secs | 5.7 days | 28.9 days | 57.8 days |115.7 days|289.3 days|
       +---------+----------+-----------+-----------+----------+----------+
 Delay | 40 secs | 4.6 days | 23.1 days | 46.2 days | 92.5 days|231.4 days|
       +---------+----------+-----------+-----------+----------+----------+
         AVERAGE  (Note:  This is an average, secs per call for 10,000 #'s
           of:    As we know, if you have a good modem that detects every-
         60 secs  thing, the following would be the avg for the max of 60)
       +---------+----------+-----------+-----------+----------+----------+
       | 30 secs |  3 11:19 |  17 08:39 |  34 17:19 | 60 10:39 |173 14:39 |
       +---------+----------+-----------+-----------+----------+----------+
                   dd hh:mm - dd=days hh=hours mm=minutes
                   (As if you couldn't figure that out for yourself)


   Datafiles:  The following is a list of all the data files that can be
found in the autoscan directory that have been created by Autoscan:
   "AUTOSCAN.CFG"   : This is your autoscan configuration file.
   "AUTOSCAN.LOG"   : Shows exchanges that have been scanned, when it was
                      started and when it was completed or aborted.
   "(exchange).XCH" : This is the exchange datafile.
   "(exchange).CAP" : This is the capture file for the exchange.
   "(exchange).LST" : This is the list of all carriers/tones found for the
                      exchange.


   Known problems:  The VGA bug previously mentioned in the Version 0.0
documentation STILL EXISTS.  This will be fixed in the next version.  I have
pinpointed the problem and a fix is being done in assembly.  So for now, I
would suggest you do not use Autoscan in VGA mode, because the modem box in
VGA will NOT scroll.


   Thats all:  Well thats all, I hope this is well explained, if you have
found any bugs (other than the VGA modem window scrolling problem), or have
any problems, comments or suggestions, then leave mail, my internet mail
address is below.

                                         No Means No
                                   nmn@mindvox.phantom.com
