home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / bgfax147.zip / BGFAX.DOC < prev    next >
Text File  |  1995-05-02  |  98KB  |  1,934 lines

  1.  
  2.          DON'T FORGET TO LOOK AT THE "READ.ME" AND "WHATS.NEW" FILES!
  3.  
  4.     =======================================================================
  5.  
  6.               Voice               B.J. Guillot           Data/Fax
  7.          +1 713.893.9320      2611 Rushwood Circle   +1 713.893.9124
  8.                             Houston Texas 77067-1941
  9.  
  10.           Copyright (C) 1993-1995 B.J. Guillot.  All Rights Reserved.
  11.  
  12.     =======================================================================
  13.     BGFAX 1.47                                                 MON 2 MAY 95
  14.     =======================================================================
  15.  
  16.                          Dedicated to Gene Roddenberry
  17.                                   1921-1991
  18.  
  19.       "Let's make sure history never forgets the name, ENTERPRISE."
  20.               -- Captain Jean-Luc Picard.  Star Trek: The Next Generation.
  21.  
  22.       "...Humans and aliens wrapped in two million, five hundred
  23.       thousand tons of spinning metal, all alone in the night..."
  24.               -- Commander Sinclair.  BABYLON 5.
  25.  
  26.          -------------------------------------------------------------
  27.          ABSTRACT
  28.          -------------------------------------------------------------
  29.  
  30.          * Allows sysops to receives faxes on their BBS telephone line
  31.            without needing a fax switch box and real fax machine
  32.  
  33.          * Everything runs in the foreground, no TSR programs needed
  34.  
  35.          * If you are already running a Fido mailer, you can configure
  36.            your mailer to exit and run BGFAX when the line is hot, thus
  37.            BGFAX does not necessarily have to answer the phone itself
  38.  
  39.          * Comes with a small and quick fax viewing program that supports
  40.            CGA, EGA, VGA, and VESA SVGA display modes as well as options
  41.            for fax printing and FAX-to-PCX conversion
  42.  
  43.          * Works with modems that offer a feature known as adaptive
  44.            answering on Class 1, Class 2, Class 2.0 and ZyXEL fax modems
  45.  
  46.          * Can send faxes via the command line and return status by
  47.            errorlevel; fully configurable top of page banners on outgoing
  48.            faxes so that user names and phone numbers can be there
  49.  
  50.          -------------------------------------------------------------
  51.          INCLUDED FILES
  52.          -------------------------------------------------------------
  53.  
  54.          1.     BGFAX.DOC -- general documentation, looking at it now
  55.  
  56.          2.       READ.ME -- read this
  57.          3.     WHATS.NEW -- release notes
  58.  
  59.          4.     BGFAX.EXE -- the main DOS executable
  60.          5.    BGFAX2.EXE -- the main OS/2 executable
  61.  
  62.          6.    HELPME.ARJ -- specialized help files for various setups
  63.                    D'BRIDGE.TXT - general help for D'Bridge, Class 2
  64.                    D'BR-USR.TXT - general help for D'Bridge and USR
  65.                    FD202.TXT    - general help for FD202, Class 2
  66.                    FD212.TXT    - general help for FrontDoor, Class 2
  67.                    FD-HAYES.TXT - general help for FrontDoor, Hayes Class 1
  68.                    FD-USR.TXT   - general help for FrontDoor, USR
  69.                    FD-ZYXEL.TXT - general help for FrontDoor, ZyXEL
  70.                    IM229C.TXT   - general help for InterMail, Class 2
  71.                    IM-USR.TXT   - general help for InterMail, USR
  72.                    PCB1521.TXT  - general help for PC Board, USR
  73.                    WILDCAT.TXT  - general help for Wildcat!, using /HOST
  74.                    LORA240.TXT  - general help for Lora/2, Class 2
  75.                    MAXIMUS2.TXT - general help for Maximus/2, using /HOST
  76.                    MDOOR102.TXT - general help for MainDoor/2, Class 2
  77.                    PORTAL.TXT   - general help for Portal of Power, Class 2
  78.                    WAFFLE.TXT   - general help for Waffle, using /HOST
  79.                    GT18.TXT     - general help for GT Power, Class 2
  80.                    EZYCOM.TXT   - general help for EZYCOM, using /HOST
  81.                    WWIV.TXT     - modification file for WWIV systems
  82.  
  83.          7.      VIEW.EXE -- fax viewing, PCX conversion, and printing
  84.  
  85.          8.      NFAX.COM --\  optional TSR utility to notify the user
  86.          9.    FAXOFF.COM --/  if a fax has been received (DOS ONLY)
  87.  
  88.          10.  MAKEFAX.EXE -- converts PCX and ASCII files to ZFAX format
  89.          11. MAKEFAX2.EXE -- same thing, but for OS/2
  90.          12     BGFAX.FNT -- font file for MAKEFAX and MAKEFAX2
  91.          13.  FNTEDIT.EXE -- font editor to make customized fonts (DOS ONLY)
  92.  
  93.          14.    BGFAX.CNF -- configuration file for /SEND, /HOST, /INIT
  94.          15.     FBBS.BAT -- example batch file for using /HOST mode
  95.  
  96.          16.  FILE_ID.DIZ -- short abstract for bgfax
  97.  
  98.          17. REGISTER.FRM -- registration form
  99.          18.  REGISTER.NL -- dutch registration form for the netherlands
  100.          19. REGISTER.AUS -- australian registeration form
  101.  
  102.          -------------------------------------------------------------
  103.          DISCLAIMER
  104.          -------------------------------------------------------------
  105.  
  106.          BGFAX and accompanying files are provided AS IS without any
  107.          warranty, expressed or implied.  This includes without limitation
  108.          the fitfulness for a particular purpose or application and any
  109.          warranties of merchantability.  [Did you really understand that?]
  110.  
  111.          While I tried to be as through as possible in preparing BGFAX,
  112.          B.J. Guillot shall not be liable for any damages, whether direct,
  113.          indirect, special, incidental or consequential arising from a
  114.          failure of this program or accompanying files to operate in a
  115.          manner desired by the user.  B.J. Guillot shall not be liable for
  116.          any damage to data or property which may by caused directly or
  117.          indirectly by use of this program.
  118.  
  119.          In no event will B.J. Guillot be liable to you for any damages,
  120.          including any lost profits, lost savings or other incidental or
  121.          consequential damages arising out of your use or inability to use
  122.          the program, or for any claim by any other party.  Individuals using
  123.          the software bear all risk as to its quality and performance.
  124.   
  125.          -------------------------------------------------------------
  126.          OBTAINING THE LATEST VERSION OF BGFAX:
  127.          -------------------------------------------------------------
  128.  
  129.           FidoNet:  1:106/400                     Voice: +1 713.893.9320
  130.          InterNet: bjg90783@jetson.uh.edu      Data/Fax: +1 713.893.9124
  131.  
  132.          1. Calling my BBS in the United States, +1 713-893-9124
  133.  
  134.          2. TELNET/FTP/VMODEM address for my BBS is 198.65.189.2.
  135.  
  136.          3. FidoNet FREQ of the magic name "BGFAX" from 1:106/400
  137.             (Beta copies are available under magic name "BGBETA")
  138.  
  139.          4. FidoNet FREQ...  The Netherlands...  2:512/39
  140.             The Owl's Nest is the Dutch Supra distributor and they
  141.             have three nodes:
  142.               +31 0.2155.10921   +31 0.2155.12571   +31 0.2155.28096
  143.  
  144.          5. FidoNet FREQ...  Austraila...  3:632/552
  145.             Hamish Moffatt, Cloud Nine, +61 03.886.5195
  146.  
  147.          6. The Internet (fast) FTP site FTP.CSN.NET in directory /Computech
  148.  
  149.          7. E-mail request for users that do not have FTP access...
  150.             Just send Internet e-mail to "bgfax-request@stat.com"
  151.             (Beta copes are available from bgfax-beta-request@stat.com)
  152.  
  153.          To join the BGFAX mailing list, send Internet e-mail to
  154.          "listserv@stat.com" with the text "subscribe bgfax-list" as the
  155.          first line in your message.
  156.  
  157.          -------------------------------------------------------------
  158.          MISCELLANEOUS NOTES
  159.          -------------------------------------------------------------
  160.  
  161.          BGFAX does not offer printing for 9-pin dot matrix printers.
  162.          Epson LQ 24-pin dot matrix, Canon Bubble Jet, HP Desk Jet and
  163.          Laser Jets are supported.
  164.  
  165.          If you need to print with a 9-pin printer, you will need to obtain
  166.          a copy of ZyXEL's ZFAX software (version 2.23 perferred) or Smith
  167.          Micro Software's Quick Link II, a commerical program included
  168.          with many fax modems.
  169.  
  170.          Delrina format files (WinFax, DosFax) will NOT be supported do
  171.          to Delrina's refusal to release the WinFax file header format to
  172.          developers.  [If you wish to see a copy of Delrina's fax, Fido
  173.          FREQ the magic name "DELRINA" from 1:106/400 or call my BBS and
  174.          download the file "DELRINA.ARJ".]
  175.  
  176.          BGFAX supports Desqview's alternate video buffer zone, if used,
  177.          and will return ticks to other tasks.  BGFAX also issues an
  178.          Interrupt 28h call every now and then for OS/2 time slices.
  179.  
  180.          This program was compiled under Borland's Borland Pascal 7.0.
  181.  
  182.          Modems that I have direct access to:
  183.            SupraFaxModem v.32bis (V1.80-02, Rockwell AC ROM)
  184.            SupraFaxModem 144 Express Plus
  185.            SupraFaxModem 288 V.FC (FLASH firmware, latest version)
  186.            SupraFaxModem 288 V.34 (FLASH firmware, latest version)
  187.            USR 28.8K V.Everything (FLASH firmware, latest version)
  188.            Hayes Optima 288 V.FC (V3.1 firmware)
  189.            Zoom Voice-Fax-Data Modem v.32bis (old piece of junk firmware)
  190.            SIERRA based 2400 data/9600 fax modem from Computer City
  191.  
  192.          If you wish to put BGFAX in DEBUG mode (where it logs most of the
  193.          strings sent out and in from the modem in a DEBUG.LOG file), you
  194.          must set the following environment variable:
  195.  
  196.               SET FAX=DEBUG
  197.  
  198.    *************************************************************************
  199.    *************************************************************************
  200.  
  201.          Things are going to get VERY confusing from this point on.
  202.  
  203.          I suggest you uncompress the HELPME.ARJ file to get simple,
  204.          step-by-step notes on how to setup BGFAX with your particular
  205.          setup.
  206.  
  207.          The following notes are just provided for your information.
  208.          If you don't know that much about modems, you probably won't
  209.          understand any of it.
  210.  
  211.          Looking at the examples in the HELPME.ARJ file will help you
  212.          much more than trying to figure out how to setup BGFAX from
  213.          reading this document file.
  214.  
  215.    *************************************************************************
  216.    *************************************************************************
  217.  
  218.          -------------------------------------------------------------
  219.          TALKING WITH THE COM PORT
  220.          -------------------------------------------------------------
  221.  
  222.          Introduction
  223.          ~~~~~~~~~~~~
  224.          If you want BGFAX to answer the phone, you will be using BGFAX
  225.          in /HOST mode.  In this case, BGFAX will get the com port
  226.          information from the BGFAX.CNF file.  To specify COM2, a line
  227.          in that file must read "po=2".
  228.  
  229.          If you are running PC Board, Spitfire, FrontDoor, Intermail or
  230.          any other software that has been designed to interface with
  231.          BGFAX only when the modem detects an incoming fax call, you
  232.          can use BGFAX in rear-end mode.  In this mode, BGFAX gets the
  233.          com port information as a command line parameter.  (BGFAX.CNF
  234.          IS NOT USED IN REAR-END MODE).  To specify the use of COM2 on the
  235.          command line for rear-end mode...
  236.  
  237.                    bgfax /fax c:\bgfax 2 z
  238.  
  239.          The /FAX command line switch is explained in detail later in
  240.          this document as well as the other possible switches that you
  241.          may need to use with your modem.
  242.  
  243.          If BGFAX were running in /HOST mode, the following lines would
  244.          be EQUIVILANT to the "bgfax /fax c:\bgfax 2 z" example...
  245.  
  246.                 BGFAX.CNF    rp=c:\bgfax        { receive path }
  247.          for BGFAX /HOST:    po=2               { com port number, dos }
  248.                              p2=2               { com port number, os2 }
  249.                              ft=z               { fax type, ZFAX 2.23 }
  250.  
  251.          Note that the actual BGFAX.CNF file contains many additional
  252.          lines, and they will be fully explained later in this document.
  253.          The additional lines in BGFAX.CNF are required because /HOST
  254.          mode does much more than rear-end mode.  (/HOST mode has a
  255.          simple event manager, records Caller ID, tells the modem to
  256.          answer the phone, etc.  Rear-end mode simply takes control of
  257.          the modem when your BBS or Fido software tells it to.)
  258.  
  259.          Pop Quiz.  How do I tell BGFAX to use COM1 ?
  260.  
  261.               In /HOST mode, "po=1" is placed in the BGFAX.CNF file.
  262.  
  263.               In rear-end mode, COM1 is specified by putting "1" as the
  264.               THIRD command line parameter.  (bgfax /fax c:\bgfax 1 z).
  265.                                                      1st    2nd  3rd
  266.  
  267.          Putting an exclamation mark (bang) after the port will tell BGFAX
  268.          not to shift the DTE speed to 19200 when receiving a fax.  (i.e.,
  269.          whenever you want to specify COM2, do as as "2!" instead of "2").
  270.          This is required on a very small amount of modems.
  271.  
  272.          Non-Standard Ports (under BGFAX/DOS, BGFAX.EXE)
  273.          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  274.          By default, BGFAX knows only the normal four com ports...
  275.  
  276.                    COM1    address 3F8  irq 4
  277.                    COM2    address 2F8  irq 3
  278.                    COM3    address 3E8  irq 4
  279.                    COM4    address 2E8  irq 3
  280.  
  281.          If you are using one of the above standard port configurations,
  282.          you can skip to the next section of the documentation.
  283.  
  284.          However, if you are using a configurable serial card, you will
  285.          need to tell BGFAX the address and IRQ for your non-standard
  286.          port.  If your I/O card has COM4 configured as follows...
  287.  
  288.                    COM4    address 2e8  irq 12
  289.  
  290.          In this case, if you wish to use BGFAX with this non-standard
  291.          port, you must _tell_ BGFAX the address and IRQ.  To do this,
  292.          instead of using "po=4", you will use "po=2e8x12".
  293.  
  294.          Remember that each device in your computer should use a
  295.          different IRQ and address.  IRQ sharing is risky and will cause
  296.          problems under DOS, OS/2 and Windows.
  297.  
  298.          Standard and Non-Standard Ports (under OS/2, BGFAX2.EXE)
  299.          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  300.          Make sure you are using SIO 1.30 or higher.
  301.  
  302.          Under OS/2, in the eyes of BGFAX/2, there isn't a such thing as
  303.          a "non-standard" port.  If you have a COM7 for example, of ANY
  304.          address and IRQ, for /HOST mode, set "p2=7" in the BGFAX.CNF
  305.          file, and for rear-end mode, pass the number "7" as the third
  306.          command line parameter.
  307.  
  308.          How does BGFAX/2 know what address and IRQ to use?  BGFAX/2
  309.          does not have to know.  BGFAX/2 will simply tell Ray Gwinn's
  310.          SIO.SYS to open "COM7", and SIO.SYS will use the information
  311.          you provided in OS/2's CONFIG.SYS to handle the port
  312.          operations.
  313.  
  314.          You will notice that in /HOST mode, I said to use "p2=7".  Is
  315.          that a typo?  Shouldn't it be "po=7"?  Not a typo.  The "p2"
  316.          tells BGFAX that what follows is an OS/2 style port.  Many
  317.          people may want to dual-boot between DOS and OS/2.  Remember,
  318.          under OS/2, we didn't care what address and IRQ COM7 used.
  319.          But, under DOS, BGFAX.EXE will have no idea what port to use if
  320.          you simply had "po=7".  So, we have two lines in the BGFAX.CNF
  321.          for the com port.  One for DOS, and one for OS/2.  Example:
  322.  
  323.                    po=278x12              { for BGFAX.EXE, DOS }
  324.                    p2=7                   { for BGFAX2.EXE, OS/2 }
  325.  
  326.          In this case, our example COM7 actually used base address $278
  327.          and IRQ 12.  Our OS/2 CONFIG.SYS line read...
  328.  
  329.                    DEVICE=C:\SIO.SYS (COM7,278,12,-).
  330.  
  331.          If we were using a standard port, such as COM1, then both
  332.          "po=1" and "p2=1" in BGFAX.CNF.
  333.  
  334.          OS/2 WARNING: Most people that I've talked to "lock" their
  335.          ports using SIO.SYS under OS/2.  Unless you are using a ZyXEL
  336.          modem or USR V.34 Everything.  If you are using an "average
  337.          Joe" modem like a Supra, if you lock your port at anything
  338.          other than 19200, you will have problems receiving faxes.
  339.  
  340.          For example, let's say you have a Supra (or PPI, or Zoom, etc.)
  341.          and your CONFIG.SYS reads:
  342.  
  343.                    DEVICE=C:\SIO.SYS (COM2:57600,3E8,3,-)
  344.                                           ^^^^^^^
  345.          BGFAX will attempt to receive the fax, but, at a specific point
  346.          during fax receive, the DTE speed _MUST_ be changed to 19200.
  347.          If this change does not occur, the fax receive will not work.
  348.          Since SIO is "locked" in at 57600, SIO will ignore BGFAX/2's
  349.          request for a speed shift.  You have a few options:
  350.  
  351.               1. If you are using a registered version of SIO, you must
  352.                  tell SIO to UNLOCK the port before BGFAX loads.  Example
  353.                  BBS.CMD file:
  354.  
  355.                         @echo off
  356.                         :start
  357.                         OS2BBS.EXE
  358.                         if errorlevel 255 goto fax
  359.                         goto start
  360.                         :fax
  361.                         rem If using a USR or ZyXEL don't worry about SU.EXE
  362.                         SU.EXE 2 LOCK 0
  363.                         BGFAX2.EXE /FAX C:\BGFAX 2 Z
  364.                         SU.EXE 2 LOCK 57600
  365.                         goto start
  366.  
  367.                  The SU.EXE will only function with registered version
  368.                  of OS/2.  The "2 LOCK 0" means to UNLOCK port 2, so
  369.                  that the application program (BGFAX2.EXE) will be able
  370.                  to change the DTE speed at will.  After BGFAX/2 runs,
  371.                  we issue another SU.EXE line which relocks the port at
  372.                  57600 for your BBS software.
  373.  
  374.                  I've seen many people that really distort my
  375.                  instructions and do "SU 2 LOCK 19200" instead of "SU 2
  376.                  LOCK 0".  The "LOCK 19200" will NOT work, because, as
  377.                  I've said before, the DTE must be shifted at the right
  378.                  moment.  If you do it yourself instead of letting
  379.                  BGFAX2.EXE do it, you will not receive your fax.
  380.  
  381.               2. If you are using an unregistered version of SIO, it's
  382.                  best to lock your port at 19200.  For a 14400 modem, a
  383.                  19200 locked DTE speed is FINE.  If your users
  384.                  download pre-compressed ZIP and ARJ files like both BBS
  385.                  users, they won't even notice the difference.  If you
  386.                  are using a 28800 modem, obviously, locking at 19200 is
  387.                  not an valid solution.
  388.  
  389.               3. If you are using an unregistered SIO, with a 28800
  390.                  modem, you will need to leave the DTE rate at the mercy
  391.                  of your BBS software.  This usually doesn't work out
  392.                  very well.  I suggest you register SIO before
  393.                  attempting to configure BGFAX/2.
  394.  
  395.          If you are running BGFAX.EXE (DOS) under OS/2, there are a few
  396.          other things you need to worry about:
  397.  
  398.               1. If your DOS-based BBS software requires a FOSSIL driver,
  399.                  use VX00.SYS, which is included with SIO.  DO NOT
  400.                  ATTEMPT TO USE THE 'REAL' X00.SYS OR BNU.SYS.  That
  401.                  will cause you nothing but trouble.  (I've gotten some
  402.                  calls saying that the opposite is sometimes true.  Now,
  403.                  I don't know what to think.  :-)
  404.  
  405.               2. If you try to /SEND faxes under OS/2, you _MUST_ use
  406.                  BGFAX2.EXE in an OS/2 box.  The way SIO.SYS handles
  407.                  XON/XOFF communications in a DOS box will prevent the
  408.                  DOS-based BGFAX.EXE from sending faxes properly.  Or,
  409.                  you can use the /HW switch at the end of the BGFAX/DOS
  410.                  command line to use hardware (CTS) flow control.
  411.  
  412.               3. If you are using BGFAX.EXE (DOS) under OS/2, make sure you
  413.                  are using the "DEVICE=C:\VSIO.SYS" line in your CONFIG.SYS.
  414.                  Also, make sure you are using the dash ("-") option on the
  415.                  SIO.SYS command line.
  416.  
  417.                      DEVICE=C:\SIO.SYS (1,,,-) (COM2,3E8,3,-)
  418.                      DEVICE=C:\VSIO.SYS
  419.  
  420.          FOSSIL drivers (under DOS, without DesqView)
  421.          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  422.          It is always best to let BGFAX talk directly to the port, even
  423.          if you have a FOSSIL driver loaded.  BGFAX will not care that
  424.          the FOSSIL driver is loaded.  It will default to talking
  425.          directly to the port.
  426.  
  427.          If for some reason, BGFAX is unable to directly talk to your
  428.          com port using direct communications, you may want to tell
  429.          BGFAX to try and _use_ the FOSSIL driver.  See the next section
  430.          (FOSSIL drivers, under DOS, with DV) for instructions on
  431.          telling BGFAX to _use_ the FOSSIL.
  432.  
  433.          FOSSIL drivers (under DOS, with DesqView)
  434.          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  435.          I have seen many problems that occur when people are using FOSSIL
  436.          drivers under DV.  The problems only seem to occur if you are
  437.          using both FOSSIL and non-FOSSIL applications.  If all your
  438.          applications are FOSSIL, or all non-FOSSIL, things seem to work
  439.          fine.  So, if your BBS or Fido Mailer requires the use of a
  440.          FOSSIL driver, AND YOU ARE RUNNING UNDER DESQVIEW, in this
  441.          case, it is best to tell BGFAX to _use_ the FOSSIL driver.
  442.  
  443.          If you must make BGFAX _use_ the FOSSIL driver, e.g. the FOSSIL
  444.          for COM2, in the BGFAX.CNF file, a "po=F2" would be specified.
  445.          TELLING BGFAX TO _USE_ THE FOSSIL DRIVER IS NOT RECOMMENDED
  446.          UNLESS YOU ARE RUNNING UNDER DESQVIEW AND YOUR BBS PROGRAM,
  447.          FIDO MAILER, AND DOORS ALL REQUIRE THE USE OF A FOSSIL DRIVER.
  448.  
  449.          Many people that use FOSSIL drivers lock their port at a
  450.          specific DTE speed.  This will cause problems with BGFAX.EXE
  451.          since BGFAX must change the port speed at a specific point
  452.          during the fax receive.  You have a few options...
  453.  
  454.               1. Do NOT lock the FOSSIL, and hope that your BBS or Fido
  455.                  Mailer software is correctly able to set the speed.
  456.                  This isn't really that good of an option due to the
  457.                  nature of the FOSSIL drivers and high speed modems.
  458.                  (WE REALLY NEED TO MAKE AN UPDATE TO THE FOSSIL
  459.                  STANDARD SINCE THEY WERE DESIGNED WHEN 19200 WAS
  460.                  CONSIDERED THE FASTEST WE WOULD EVER NEED.)
  461.  
  462.               2. If you are using a 14400 modem, you can lock the port
  463.                  at 19200.  If you are using a 28800 modem however, you
  464.                  have to try option 3...
  465.  
  466.               3. You can use the FOSSIL utility program to manually
  467.                  unlock the port before BGFAX.EXE loads.  Here is an
  468.                  example using X00 and BNU on COM2.  (We refer to the
  469.                  port as "1" since FOSSIL drivers can't count right.)
  470.  
  471.          @echo off                       @echo off
  472.          rem X00 example                 rem BNU example
  473.          :start                          :start
  474.          fosbbs.exe                      fosbbs.exe
  475.          if errorlevel 255 goto fax      if errorlevel 255 goto fax
  476.          goto start                      goto start
  477. -->      XU.EXE LOCK:1:OFF               BNU.EXE /L1=0
  478.          BGFAX.EXE /fax c:\bgfax F2 z    BGFAX.EXE /fax c:\bgfax F2 z
  479. -->      XU.EXE LOCK:1:38400             BNU.EXE /L1=38400
  480.          goto start                      goto start
  481.  
  482.          If you are having trouble when trying to /SEND faxes under DV,
  483.          make sure that "Optimize Communications=YES" in the DV config.
  484.  
  485.          -------------------------------------------------------------
  486.          RECOMMENDED INITIALIZATION AND ANSWER STRINGS
  487.          -------------------------------------------------------------
  488.  
  489.          This section tells you the recommended initialization and answer
  490.          strings for your modem.  It will not tell you what the commands
  491.          do.  Look in the "Quick tutorial" section to find that out.
  492.  
  493.          MAKE SURE YOU ARE _NOT_ USING THE AUTO ANSWER FEATURE OF YOUR
  494.          MODEM.  Auto answer tells the modem to answer (by itself) on X
  495.          number of rings.  We want to be able to send the modem special
  496.          commands when the phone rings, so auto answer will not want to be
  497.          used.  (Auto answer should never be used in a BBS environment,
  498.          anyway.)  Make sure that auto answer is disabled by checking to
  499.          see that the S0 register is set to 0.  (S0=0).
  500.  
  501.          The "pipe", or |, is used at various places in the following
  502.          section.  The | simply means a carriage return is to be sent
  503.          after typing that line.  i.e., if you were in terminal mode,
  504.          "ATZ|" would mean press "A", "T", "Z", then "ENTER".
  505.  
  506.          If the software is smart, it SHOULD wait for an "OK" to come
  507.          back from the modem before sending the next next string.
  508.          Unfortunetly, most software I've seen is dumb and tries to
  509.          rapid-fire the init strings to the modem without waiting for
  510.          an "OK".  :-(
  511.  
  512.          Class 2 modems (Supra v.32bis, PPI, Zoom, etc.)
  513.             Init-1 ... ATZ|
  514.             Init-2 ... AT+FCR=1;+FDCC=1,3,0,2,0,0,0,0|
  515.             Init-3 ... AT+FLID="713 555 1212"|
  516.             Answer ... AT+FAA=1;A|
  517.             Dial ..... ATDT
  518.  
  519.          Class 2.0 modems (USR 28800 V.Everything)
  520.             Init-1 ... ATZ|
  521.             Init-2 ... AT+FCLASS=2.0|
  522.             Init-3 ... AT+FLI="713 555 1212"|
  523.             Answer ... AT+FCLASS=2.0|~AT+FAA=1+FNR=1,1,1;A|
  524.             Dial ..... AT+FCLASS=0DT
  525.  
  526.          Class 1 modems (Hayes Optima 288, Supra 144LC)
  527.             Init-1 ... ATHZ|
  528.             Answer ... AT+FCLASS=1|~AT+FAE=1;A|
  529.             Dial ..... AT+FCLASS=0DT
  530.  
  531.          ZyXEL modems (ZyXEL E, S, E+, S+, etc.)
  532.  
  533.             Init-1 ... ATZ|
  534.             Init-2 ... AT#P713 893 9124
  535.             Init-3 ... AT#B1+FCLASS=6|
  536.             Answer ... ATA|
  537.             Dial ..... ATDT|
  538.  
  539.          -------------------------------------------------------------
  540.          QUICK TUTORIAL ON FAX COMMANDS AND ODDITIES
  541.          -------------------------------------------------------------
  542.  
  543.          Skip this section if you do not care about the internal
  544.          workings of fax modems...
  545.  
  546.          AT+FCLASS=?
  547.          ===========
  548.          This command asks the modem to tell you what fax classes it
  549.          is compatible with.  It will respond with something like:
  550.  
  551.      0,1,2 or 0,2 or 0,1,2.0 or 0,2,6 or 0,1,2,6 or 0,2,2.0,6 or ERROR
  552.  
  553.              0 = Data
  554.              1 = Fax Class 1 capable
  555.              2 = Draft Fax Class 2 "compatible" (TR29.2)
  556.            2.0 = Fax Class 2.0 capable
  557.              6 = ZyXEL or Rockwell voice mode compatible
  558.          ERROR = no fax capabilities
  559.  
  560.          GROUP and CLASS
  561.          ===============
  562.  
  563.          Many people are often confused between the terminology "GROUP" and
  564.          "CLASS" with regards fax modems.
  565.  
  566.          ALL FAX EQUIPMENT is "GROUP 3" compatible.  This includes fax
  567.          machines, fax modems, standalone PC fax cards, etc.  Group 3 just
  568.          defines the fax specifications, e.g., black-and-white, the
  569.          resolutions, etc.
  570.  
  571.          "CLASS" refers only to fax modems.  CLASS has NOTHING AT ALL to do
  572.          with fax machines.  Class 1, Class 2 and Class 2.0 are different
  573.          methods of sending "AT" COMMANDS to a fax modem from a computer
  574.          serial port.  Many fax modems offer the Class 2 command set.
  575.  
  576.          GROUP III
  577.          =========
  578.  
  579.          Most Group III fax images are 1728 bits across.  A normal
  580.          resolution page is approximately 1100 scan lines long, while
  581.          a high resolution page is approximately 2200 scan lines long.
  582.  
  583.          When the fax devices are handshaking, this occurs at 300 bps,
  584.          regardless of what the negoiated fax DCE rate is (i.e., 9600).
  585.          (This is why on some modems, you will see the HS [high speed]
  586.          light go on and off several times during the fax transfer.)
  587.  
  588.          Computer fax modems use v.17 modulation at 12000 and 14400,
  589.          v.29 at 7200 and 9600, and v.27ter at 2400 and 4800 bps.  The 300
  590.          bps handshaking signals use something called v.21 channel 2.  All
  591.          fax modulations are half duplex (data going only in one direction
  592.          at any given time.)
  593.  
  594.          Fax images can use one or two-dimensional Modified Huffman
  595.          encoding.  One-dimensional is known as MH, and two-dimensional is
  596.          known as MR (Modified Read).  MR encoding sends one scan line,
  597.          followed by special bits that spell out differences between the
  598.          above line and the current line.  This results in generally about
  599.          as 12% compression.  BGFAX's VIEW.EXE program can only view 1D-MH
  600.          faxes at this time, although BGFAX will support receiving and
  601.          saving to disk of both types of compression.  (See T4SPEC.TXT for
  602.          a very detailed description of the 1D-MH compression method.  That
  603.          file is included in SOURCE.ARJ.)
  604.  
  605.          Fax images have things known as EOLs and RTC.  EOL stands for
  606.          End-Of-Line and is represented as 000000000001.  Fax viewing
  607.          programs read through the fax image file, scan line by scan line.
  608.          They know where each scan line ends by searching for all the EOLs
  609.          in the file.  RTC, Return-To-Control, is a series of six EOLs.
  610.          The RTC sequence usually indicates an "end of page".  No huffman
  611.          codes start with 11 zeros like the EOL character.  Why am I
  612.          telling you all this?  Because many older fax machines send "fill"
  613.          to your fax modem when receiving.  "Fill" is just extraneous zeros
  614.          that are stored on your hard disk that take up space.  For
  615.          example, you might have an scan line that ends with...
  616.  
  617.               0000000000000000000000000000000000000000000000000000000000001
  618.  
  619.          ...but, all that is actually needed is 000000000001.  As you can
  620.          see, many extraneous zeros could be filtered from this line to
  621.          reduce the size of fax image files a few bytes per scan line.  Fax
  622.          machines like to add all those extra zeros in there.  That's why
  623.          you should notice that fax modem->fax modem facsimile transfer is
  624.          faster than fax modem->fax machine or fax machine->fax modem.
  625.  
  626.          Another interesting Group III fact is that a "training check" is
  627.          performed by fax machines shortly after they connect.  The
  628.          training check consists of the sender sending zeros for
  629.          approximately 1.5 seconds (at the negoiated rate, i.e., 9600
  630.          bps).  The receiving end will count all the zeros received, and
  631.          any non-zeros received (bad bits that got corrupted by noise over
  632.          the phone line), and if 10% (or more) of the bytes received were
  633.          bad (non-zero), the receiving end will request a RETRAIN.  This
  634.          usually involves a downshift of 2400 bps, i.e., 9600 -> 7200 bps.
  635.          After the shift, another training check will be performed.
  636.  
  637.          AT+FAA=1
  638.          ========
  639.          This command will put a Class 2/Class 2.0 modem in ADAPTIVE
  640.          ANSWERING mode.
  641.  
  642.          Your modem will properly mate with either a standard modem
  643.          data call or a fax machine/fax modem.  Some modems, such as the
  644.          Supra, will report a "FAX" response the instant a fax CNG tone is
  645.          heard from the remote end.
  646.  
  647.          All modems, on true fax calls, will report a "+FCON" response code
  648.          when the fax connection is truly established.  (This is similar to
  649.          a "CONNECT 9600" or "CONNECT 14400" on a data call.)
  650.  
  651.          Many modems are slightly brain dead and will forget the +FAA
  652.          setting when another command is issued to the modem.  To ensure
  653.          you always answer in adaptive mode, rather than using "ATA" to
  654.          answer the phone, use the following: "AT+FAA=1;A".
  655.  
  656.          The ";", semicolon, is used as a seperator for fax commands.  Some
  657.          modems, such as the Supra, do not require it.  Others, such as the
  658.          PPI, will "ERROR" out if the semicolons are not used.
  659.  
  660.          Please note that many modem manufactuers did not test adaptive
  661.          answering as much as they should have before they released their
  662.          modems.  Some modems won't allow low speed callers into your BBS
  663.          when adaptive answering is enabled.  Others won't allow high
  664.          speed callers into your BBS when adaptive answering is enabled.
  665.          If this is happening, you will need to call your modem manufactuer
  666.          and request new ROMs if any are available.  For example, the 14.4K
  667.          PC Logic modem's adaptive answering doesn't work at all.  Even
  668.          well known companies sometimes overlook adaptive answering.  A key
  669.          example is that early version of the USR 21.6K modem would lock up
  670.          whenever an HST call would come into their BBS when adaptive answer
  671.          mode was enabled.
  672.  
  673.          The SupraFaxModem v.32bis, for example, is pretty good concerning
  674.          adaptive answering.  (Note that very earlier versions of the
  675.          Supra, did not offer adaptive answering until the 1.2-H and 1.2-J
  676.          ROMs appeared on the scene.)  However, many older fax machines do
  677.          not send out a CNG tone when they are engaged.  Many fax modems,
  678.          including the Supra, won't know what to do, and will assume the
  679.          old fax machine is really a data caller.  Again, this is not good,
  680.          but its not that much of a problem.  Tell the operator of the old
  681.          fax machine to push their "START" button *IMMEDIATELY* after dialing
  682.          the last digit of the telephone number instead of waiting to hear
  683.          the fax tones on our end like many office people do.
  684.  
  685.          AT+FAE=1
  686.          ========
  687.          This is the Class 1 command to enable adaptive answering.
  688.  
  689.          AT+FCR=1
  690.          ========
  691.          This is a Class 2/2.0 command to give your modem PERMISSION to
  692.          take faxes.  Note that Class 2.0 modems default +FCR=1, so you
  693.          won't need to use this command.
  694.  
  695.          AT+FLID="713 893 9124"
  696.          ======================
  697.          ( The Class 2.0 command is AT+FLI="713 893 9124" )
  698.  
  699.          The above command sets your modems fax ID string.  This is the
  700.          string that is send to the remote end on fax connects.  (It's the
  701.          deal that's printed on the little 'confirmation reports' that many
  702.          fax machines make.)  The fax ID can ONLY BE A MAXIMUM OF *20*
  703.          CHARACTERS.  If you try to stuff more than 20 characters in a fax
  704.          ID string, the modem will respond with an "ERROR".  DO NOT USE
  705.          HIGH-BIT ASCII CHARACTERS IN THIS STRING.  Use only simple
  706.          letters, numbers, and punctuation marks.  (High-bit ASCII
  707.          characters include foreign accented letters, inverted question
  708.          marks, etc.)
  709.  
  710.          Some fax machines will go nuts (hang up on you) if you use
  711.          non-CCITT defined characters in the fax ID field.  The only
  712.          "valid" characters are PLUS, SPACE, and ZERO through NINE.
  713.  
  714.          +1 713 893 9124   <-- Valid
  715.          713 893 9124      <-- Valid
  716.          +1 713.893.9124   <-- Not Defined  (the periods)
  717.          713-893-9124      <-- Not Defined  (the dash)
  718.          MY GREAT BBS      <-- Not Defined  (the letters)
  719.  
  720.          I've never personally seen a fax machine that will hang up on you
  721.          for using any of the above "Not Defined" strings, however, I have
  722.          been told that someone found an old fax machine that did, infact,
  723.          hang up if you used letters (or dashes) in the ID string.
  724.  
  725.          Class 1 fax modems have their ID set by the fax software.
  726.  
  727.          AT+FDCC=1,3,0,2,0,0,0,0
  728.          =======================
  729.  
  730.          The above command is what the power on defaults to a 9600 fax
  731.          modem are, with one exception.  The first number, 1, allows your
  732.          fax modem to accept high resolution fax documents.  The power on
  733.          default to most modems are to accept only low resolution
  734.          documents.  The second number, 3, allows your fax modem to use fax
  735.          speeds up to 9600 bps.  In the past I would always tell people
  736.          to use 1,5,0,2,0,0,0,0 (where the "5" uses 14400), but I've since
  737.          discovered that a large number of fax modems do not work in 14400
  738.          fax mode very well.  (Most stand-alone fax machines only support
  739.          9600 bps anyway, so it's no real loss to limit your maximum receive
  740.          fax speed to 9600.)
  741.  
  742.          If you issue the above command on a fax modem with an upper limit
  743.          of 9600 on fax tranmissions, you will receive an "ERROR" or cause
  744.          the modem to behave odd.  Use this string on a 9600 fax modem:
  745.  
  746.          AT+FDCC=1,3,0,2,0,0,0,0
  747.  
  748.          If you want to activate 2D-MR compression on a 14400 capable fax
  749.          modem, use:
  750.  
  751.          AT+FDCC=1,5,0,2,1,0,0,0
  752.                          ^
  753.          That "1" after the "2" means that you wish to allow 2D-MR
  754.          compression.  As previously mentioned, 2D-MR approximates gets
  755.          about 12% better compression than the more familar 1D-MH.  If you
  756.          tell your modem to allow 2D-MR compression, it should be noted
  757.          that you will not lose any compatibility.  Enabling 2D-MR allows
  758.          for both receiving in standard 1D-MH mode and 2D-MR mode.
  759.          Remember that VIEW.EXE will not yet view 2D-MR faxes.  If you
  760.          decide to use that extra "1", you must use ZFAX to view any
  761.          received 2D faxes!
  762.  
  763.          The remaining numbers are not that important.  Changing them
  764.          around, though, may cause BGFAX to fail.  The command can also be
  765.          abbreviated to "AT+FDCC=1,5" or "AT+FDCC=1,3".
  766.  
  767.          You do not need to use this command on Class 1 and 2.0 modems.  On
  768.          Class 1 modems, if you wish to change these settings, you will
  769.          need to do it via BGFAX's /DIS:nnn command line parameter.
  770.  
  771.          STACKING COMMANDS
  772.          =================
  773.          A single command string can be made using what we need ...
  774.  
  775.          AT+FAA=1;+FCR=1;+FLID="713 893 9124";+FDCC=1,3,0,2,0,0,0,0
  776.  
  777.          However, if you are using BGFAX in rear end mode with a Fido
  778.          mailer, you may have a hard time of making an initialization
  779.          string that long, so you may be required to split the line into a
  780.          few pieces.  Remeber to make your ATA command "AT+FAA=1;A" if it
  781.          is possible to change in your mailer.
  782.  
  783.          The +FDCC string must come at the end of the stack of commands!
  784.  
  785.          AT+FMFR?
  786.          ========
  787.          ( The Class 2.0 command is AT+FMI? )
  788.  
  789.          If you want to find out who makes the fax datapump for your modem,
  790.          this command should tell you if you enter it in while in terminal
  791.          mode.  My Supra (and many others) report "ROCKWELL".  My Cheap
  792.          2400 data, 9600 S/R fax modem reports "SIERRA".  Others report
  793.          "EXAR" and other things as well.
  794.  
  795.          AT+FNR=1,1,1,1
  796.          ==============
  797.  
  798.          This is a Class 2.0 command that tells the USR modem to let BGFAX
  799.          know many details about the current fax reception, such as the
  800.          resolution of the fax, what the fax DCE speed is currently
  801.          negotiated at, etc.  Class 2 modems always report this.  However,
  802.          for some strange reason, the Class 2.0 spec writers thought it's
  803.          be "nice" to have the fax program NOT knowing this critical
  804.          information.  I can think of no logically reason for this command
  805.          existing, but if you forget to set it, your faxes on your Class
  806.          2.0 modems may look elongated or smashed together.
  807.  
  808.          AT#B1+FCLASS=6
  809.          ==============
  810.  
  811.          This is a ZyXEL fax command.  This is of use only to ZyXEL owners,
  812.          and the ZyXEL user manual explains it very nicely.
  813.  
  814.          FAX MODE
  815.          ========
  816.  
  817.          Probably 95% of you will be using BGFAX with a high speed modem
  818.          (v.32 or v.32bis).  Many of you may have started off with slower
  819.          300, 1200, or 2400 modems from long ago.  If you can remember back
  820.          that far, when an incoming data call came in, you would see a
  821.          string like "CONNECT 1200".  If your port was set at 2400, you
  822.          would garbage on the screen unless you shifted your bps rate down
  823.          to 1200 to match that of the caller.  Many newer terminal programs
  824.          refer to this speed shift as "Autobaud".
  825.  
  826.          Modern modems require your serial port be locked at a specific
  827.          speed (such as 19200, 38400, 57600, etc.) so that you can achieve
  828.          higher thruput via compression engines such as MNP and v.42bis.
  829.          The modem-to-modem speed may only be 14400, but the modem-to-
  830.          computer speed stays "locked" at 38400.  Autobaud is not required,
  831.          and if used, would result is garbage on the screen.
  832.  
  833.          Why am I telling you all this?  Well, I don't know who's silly
  834.          idea it was, but the powers that be decided that fax modems should
  835.          use the ancient method of changing the port rate when a fax is
  836.          incoming or outgoing.
  837.  
  838.          After your modem reports the result code "+FCON" all further
  839.          communications *MUST* be done at 19200 bps, even if you are locked
  840.          at 38400 or 57600.  If the port speed is not relocked at 19200,
  841.          nothing but garbage will come on the screen.
  842.  
  843.          I'm telling you this because I frequently get mail asking me why
  844.          I'm changing the port speed to 19200.  It's not my fault!  That's
  845.          the way is has to be done!  The only modem that I know that does
  846.          not require this idiotic speed shift is the ZyXEL modem.  In fact,
  847.          a special option must be used to tell BGFAX you are using a ZyXEL
  848.          or BGFAX will fail as it will try talking to the ZyXEL modem at
  849.          19200 instead of 57600 or whatever rate it's locked at.
  850.  
  851.          Note that the 19200 shift is not needed on Class 1 and 2.0 modems.
  852.  
  853.          BIT ORDER
  854.          =========
  855.  
  856.          Class 2 fax modems receive in reverse bit order and transmit in
  857.          direct bit order.  Actually, this is not in the Class 2 spec, but
  858.          a bug in Rockwell's Class 2 implementation.  This reverse bit
  859.          order bug became so wide spread, that other fax modem manufactuers
  860.          now have to receive in reverse bit order to make their modems
  861.          compatible with existing fax software.  :-)
  862.  
  863.          BGFAX will save all incoming fax files in direct bit order, so it
  864.          effectively flips all the bytes on the fly when receiving.
  865.  
  866.          Class 1, Class 2.0, and ZyXEL modems receive and transmit in
  867.          direct bit order.  BGFAX will know this and keep the received
  868.          faxes in the correct bit order.
  869.  
  870.          -------------------------------------------------------------
  871.          FRONTEND/HOST MODE
  872.          -------------------------------------------------------------
  873.  
  874.          If you want BGFAX to answer the phone, BGFAX is started up using
  875.          the /HOST command line parameter.
  876.  
  877.          If you plan on using BGFAX in Frontend mode, you need to do a
  878.          couple of things first.
  879.  
  880.          1. An evironment variable called BGFAX needs to be inserted in
  881.             your AUTOEXEC.BAT or someother batch file.  Example:
  882.  
  883.             SET BGFAX=C:\BGFAX
  884.  
  885.             This environment variable points to the location of your BGFAX
  886.             configuration file and the directory where faxes will be
  887.             received into.
  888.  
  889.             (Note, some people don't like cluttering their environment with
  890.             variables.  You can start up /HOST mode using a different config
  891.             file other than BGFAX.CNF, by using the "$" modifier, e.g.:
  892.  
  893.               BGFAX /HOST /50 $C:\BAT\ROBIN.CNF
  894.               BGFAX /SEND C:\BGFAX\FAX0001.FAX 893-9124 $C:\BAT\BATGIRL.CNF
  895.  
  896.             The "$" modifer must be the last thing on the command line.
  897.             Instead of looking for a BGFAX.CNF file as specified by the
  898.             BGFAX environment variable, this will cause BGFAX to look for
  899.             a "ROBIN.CNF" (in host mode) or "BATGIRL.CNF" if sending.
  900.             The "$" modifer has NO EFFECT on rear end mode operation.)
  901.  
  902.          2. Make sure the BGFAX.CNF configuration file is in the directory
  903.             pointed to by the BGFAX environment variable and make any
  904.             changes you think necessary.  The included configuration file
  905.             is self explantory.  I won't repeat the format here.
  906.  
  907.          3. BGFAX can exit with 7 possible internal errorlevels:
  908.  
  909.                6 - host mode idle for more than x minutes
  910.                4 - fax was received
  911.                3 - local logon
  912.                2 - data call
  913.                1 - restart batch file
  914.  
  915.             If no errorlevel is encountered, it means the sysop aborted
  916.             BGFAX by pressing the [Esc] key or a serious error occurred.
  917.  
  918.             Actually, BGFAX can exit with several errorlevels if you setup
  919.             events.  Events are specified in the BGFAX.CNF file (see the
  920.             example file included).  Example:
  921.  
  922.             ev=07:00,192
  923.             ev=19:00,193
  924.  
  925.             That would cause BGFAX to exit with errorlevel 192 at 7:00am
  926.             and errorlevel 193 at 7:00pm.  BGFAX's event handling is very
  927.             crude, and I very much need to change it.  The event handling
  928.             still has several bugs that need to be fixed.  It works best if
  929.             you use a total of two events.  One event doesn't work very
  930.             well, and if you use more (up to 20 are allowed), you can miss
  931.             an event or two if a caller to your BBS overstays their visit.
  932.             BGFAX will always execute the first event that is passed over,
  933.             but won't do any more.  And, if you only have one event setup,
  934.             it will not execute that one if it is missed.  But it will, if
  935.             you set up two events.  You can probably tell I hate events.
  936.             If anyone has some ideas on how to keep track of events and
  937.             execute the ones that are missed, etc., I'd appreciate it.
  938.  
  939.          4. When BGFAX is waiting for a call, pressing Ctrl-R will reset
  940.             the on screen counters.  Ctrl-A will force BGFAX to send the
  941.             answer string to the modem.
  942.  
  943.          5. If you some reason, you want to use the USR Class 2.0 modem in
  944.             Class 1 mode with BGFAX's /HOST mode, you will need to use the
  945.             /ATO switch which will cause BGFAX to send an "ATO" to the
  946.             modem after the "DATA" response is received.
  947.  
  948.          6. When a data call comes in, BGFAX creates a DOBBS.BAT file that
  949.             looks like so...
  950.  
  951.             C:\BGFAX\EXEBBS.BAT 9600 1 528 /ARQ
  952.  
  953.             BGFAX/2 will create DOBBS.CMD: C:\BGFAX\EXEBBS.CMD 9600 5 528 /ARQ
  954.             
  955.             The first parameter is the DCE data speed, then the com port,
  956.             number of minutes until the next event, and then the error
  957.             correcting string, if any.  The EXEBBS.BAT file must be created
  958.             by you so that your bulletin board software is loaded up in
  959.             frontend mode (ie., the data connection is already hot.)
  960.  
  961.                  %1 -> the DCE speed, modem-to-modem real connect speed
  962.                  %2 -> the COM port (BGFAX/2 will put the OS/2 com handle)
  963.                  %3 -> number of minutes until the next event
  964.                  %4 -> error correction/reliable mode indicators
  965.  
  966.          DOBBS.BAT theory
  967.          ================
  968.  
  969.          If you have never used a frontend program uses DOBBS.BAT theory,
  970.          there are several things you need to know.  You have to be pretty
  971.          confident in DOS and batch files, or you will get lost very
  972.          easily.  First, you need a main batch file that runs BGFAX.  Let's
  973.          call this FBBS.BAT:
  974.  
  975.               @echo off
  976.               c:
  977.               cd\bgfax
  978.               bgfax /host
  979.               if errorlevel 4 goto faxrcvd
  980.               if errorlevel 3 goto datacall
  981.               if errorlevel 2 goto datacall
  982.               if errorlevel 1 fbbs.bat
  983.               goto end
  984.               :faxrcvd
  985.                 rem [you can put a printing batch here if you want]
  986.                 call %bgfax%\doprint.bat
  987.                 del %bgfax%\doprint.bat
  988.               :datacall
  989.                 rem [errorlevel 3 is local login, 2 is data caller]
  990.                 %bgfax%\dobbs.bat
  991.               :end
  992.  
  993.  -->     Note that DOS requires all if-errorlevel statements to go in
  994.  -->     DESCENDING ORDER!  (255,254,253,...,4,3,2,1).  This is a fact that
  995.  -->     many people forget.
  996.  
  997.          This FBBS.BAT file will run BGFAX and when a data caller calls
  998.          your system, BGFAX will exit with an errorlevel of 3.  This will
  999.          cause the batch file to jump to the ":datacall" label.  Here, the
  1000.          line "%bgfax%\dobbs.bat" is executed, causing DOS to shift control
  1001.          of the computer to the DOBBS.BAT file.  Rememeber, this is a file
  1002.          that BGFAX creates!  You do not need to make a DOBBS.BAT file.
  1003.          The DOBBS.BAT then executes _another_ batch file called EXEBBS.BAT
  1004.          which will look something like:
  1005.  
  1006.               EXEBBS.BAT
  1007.               ==========
  1008.               @echo off
  1009.               bbsprog /f:%1:%2
  1010.               fbbs
  1011.  
  1012.          THE EXEBBS.BAT FILE WILL LOOK DIFFERENT FOR EVERY DIFFERENT
  1013.          TYPE OF BBS SOFTWARE!!!
  1014.  
  1015.          You will have to look up the info for the EXEBBS.BAT file in
  1016.          your BBS user's manual.  I can't help you with that.  Notice
  1017.          that the last line "fbbs" restarts the original FBBS.BAT
  1018.          file that runs BGFAX in /HOST mode.
  1019.  
  1020.          In review: (1) Modify FBBS.BAT to meet your needs, (2) BGFAX will
  1021.          MAKE a DOBBS.BAT file by itself, (3) YOU will need to MAKE an
  1022.          EXEBBS.BAT file, (4) the EXEBBS.BAT file must restart FBBS.BAT.
  1023.  
  1024.          Do not use the CALL statement anywhere unless you really know what
  1025.          you are doing.  "FILE.BAT" and "CALL FILE.BAT" causes two
  1026.          completely different things to happen.  Only experienced DOS/batch
  1027.          file writers need to experiment with that.  Example:
  1028.  
  1029.                TEST.BAT
  1030.                ========
  1031.                echo **TEST**
  1032.  
  1033.                EXAMPLE1.BAT                Example1.BAT output:
  1034.                ===========
  1035.                echo Hello World!             Hello World!
  1036.                call test.bat                 **TEST**
  1037.                echo Bye World!               Bye World!
  1038.                rem ***We RETURNED to the batch file after TEST.BAT
  1039.  
  1040.                EXAMPLE2.BAT                Example2.BAT output:
  1041.                ============
  1042.                echo Hello World!             Hello World!
  1043.                test.bat                      **TEST**
  1044.                echo Bye World!
  1045.                rem ***We DID NOT RETURN to the batch file after TEST.BAT
  1046.  
  1047.          If you want to allow 300 bps callers, you must use the /300
  1048.          command line switch.  ( Example:  BGFAX /HOST /300 ).
  1049.  
  1050.          -------------------------------------------------------------
  1051.          INITIALIZATION MODE
  1052.          -------------------------------------------------------------
  1053.  
  1054.          If you want BGFAX just to initialize the modem, you can have it do
  1055.          so with the BGFAX /INIT parameter.  BGFAX will get the port,
  1056.          speed, and initialization strings from the BGFAX.CNF file in the
  1057.          directory specified by the BGFAX environment variable.
  1058.  
  1059.          This mode is provided for people who need to use BGFAX in rear end
  1060.          mode, but their Fido mailers (or BBS software) do not allow them
  1061.          to use the long initialization strings required for fax usage.
  1062.  
  1063.          -------------------------------------------------------------
  1064.          REAR END MODE (FIDO MAILERS, ETC.)
  1065.          -------------------------------------------------------------
  1066.  
  1067.          Rear end mode is useful for those of us who are FidoNet members
  1068.          where a Fido mailer is required to be running 24 hours a day.  It
  1069.          will be your job to figure out how to get your mailer to exit to
  1070.          BGFAX when your modem informs the mailer a fax call is coming
  1071.          through.  (See the HELPME.ARJ file for hints on specific mailers.)
  1072.  
  1073.          You will need to know the result code your modem sends when an
  1074.          incoming fax call is detected.  Some modems send TWO fax connect
  1075.          strings.  For example, the Supra will send "FAX" followed by an
  1076.          "+FCON" response about 2 seconds later.  The ZyXEL will send
  1077.          "CONNECT FAX" followed immediately by "ZyXEL".  Most fax modems
  1078.          report only one string though.  Use this chart for reference:
  1079.  
  1080.          Result   Modems
  1081.          ======   ====================================================
  1082.          FAX      Supra, Zoom, Hayes, most Rockwell based chipsets
  1083.          +FCON    PPI, other Class 2 modems
  1084.          +FCO     USR V.Everything 28.8K and other Class 2.0 modems
  1085.  
  1086.          You need to configure your mailer (or BBS software) to exit
  1087.          IMMEDIATELY upon receipt of the proper fax result code.  You
  1088.          need to call BGFAX in the following manner:
  1089.  
  1090.          BGFAX /how [faxpath port faxtype [pid]]
  1091.  
  1092.          FAXPATH will be the directory where incoming faxes are to be
  1093.          placed.  PORT is a valid communications port from 1 to 4, or,
  1094.          optionally, a hexidecial base address and IRQ formatted as
  1095.          followed "3F8x5".  Also, optionally, if the port has a bang, !,
  1096.          following it, it will force the port to stay locked at the current
  1097.          speed rather than shifting to 19200 on fax connects.  FAXTYPE is a
  1098.          single character 'Z' or 'Q'.  'Z' for ZyXEL ZFAX format, 'Q' for
  1099.          Smith Micro Software's Quick Link II fax format.
  1100.  
  1101.          The "/how" deal is the most critical switch.  There are three
  1102.          possible settings.
  1103.  
  1104.               /FAX   ... Modem reports "FAX" or "CONNECT FAX".
  1105.                          BGFAX will automatically detect whether it should
  1106.                          use Class 2 (Supra, Zoom) or the ZyXEL fax mode
  1107.                          based on the next message (ie, "+FCON" or "ZyXEL").
  1108.  
  1109.               /FAX:713_893_9124     If your modem in Class 1, try one of
  1110.               /FHAY:713_893_9124    these two options.
  1111.  
  1112.               /FAST  ... Modem reports "+FCON" (PPI, other Class 2 modems)
  1113.               /FCON  ... Try this option if /FAST doens't work.
  1114.  
  1115.               /FCO   ... Modem reports "+FCO" (USR V.Everything)
  1116.               /FCOS  ... Try this option if /FCO doesn't work.
  1117.  
  1118.               /FZYX  ... ZyXEL owners use this if /FAX doesn't work.
  1119.  
  1120.          Here is a schematic of how each option behaves:
  1121.  
  1122. ***           /FAX [ Supra, ZyXEL, i.e. all modems that report "FAX" ]
  1123. 1. keeps port at locked DTE    1. <same>                1. <same>
  1124. 2. waits for "+FCON"     _or_  2. waits for "OK"  _or_  2. waits for "ZyXEL"
  1125. 3. drops port to 19200         3. sends "AT+FDR"        3. waits for high CTS
  1126. 4. waits for "OK"                                       4. sends <DC2>
  1127. 5. sends "AT+FDR"
  1128.  
  1129. ***           /FAX:713_893_9124 [ Supra LC modem, Class 1 modem ]
  1130.                 1. keeps port at locked DTE
  1131.                 2. waits for "CONNECT"
  1132.                 3. begins sending Class 1 HDLC frames
  1133.  
  1134. ***           /FHAY:713_893_9124 [ Hayes 288, other Class 1 modems ]
  1135.                 1. keeps port at locked DTE
  1136.                 2. blindly starts sending Class 1 HDLC frames
  1137.  
  1138. ***           /FAST [ PPI, i.e. all modems that report "+FCON" ]
  1139.                 1. drops port to 19200
  1140.                 2. waits for "OK"
  1141.                 3. sends "AT+FDR"
  1142.  
  1143. ***           /FCON [ PPI, use this if above options don't work ]
  1144.                 1. drops port to 19200
  1145.                 2. blindly sends "AT+FDR"
  1146.  
  1147. ***           /FAST:nn [ all Class 2 modems where /FAX won't work ]
  1148.                 This switch is a hybrid of the /FAST and /FCON switches.
  1149.                 Let's present we use /FAST:4 ...
  1150.                 1. drops port to 19200
  1151.                 2. waits for "OK" for nn seconds (FOUR seconds if /FAST:4)
  1152.                 3. if "OK" occurs before nn seconds, sends AT+FDR
  1153.                          _or_
  1154.                 3. if "OK" is not received in nn seconds,
  1155.                      blindly sends AT+FDR
  1156.  
  1157. ***           /FCO  [ USR, i.e. all Class 2.0 modems that report "+FCO" ]
  1158.                 1. keeps port at locked DTE
  1159.                 2. waits for "OK"
  1160.                   [ 2a. If the /OU switch is used, if the port is locked at
  1161.                         38400, it will shift the DTE to 19200 ]
  1162.                 3. sends "AT+FDR"
  1163.  
  1164. ***           /FCOS [ USR, i.e. all Class 2.0 modems that report "+FCO" ]
  1165.                 1. blindly sends "AT+FDR"
  1166.  
  1167. ***           /FCO:nn [ USR, i.e., all Class 2.0 modems that report "+FCO"]
  1168.                 This switch is a hybrid of the /FCO and /FCOS switches.
  1169.                 Let's pretend we use /FCO:4 ...
  1170.                 1. keeps port at locked DTE
  1171.                 2. waits for "OK" for nn seconds (FOUR seconds if /FCO:4)
  1172.                 3. if "OK" occurs before nn seconds, sends "AT+FDR"
  1173.                             _or_
  1174.                 3. if "OK" is not received in nn seconds,
  1175.                      blindly sends "AT+FDR"
  1176.  
  1177.  
  1178. ***           /FZYX  [ ZyXEL, use this only if /FAX doesn't work ]
  1179.                 1. waits for high CTS
  1180.                 2. sends <DC2>
  1181.  
  1182.          NOTE:  /FCO:0 is equivilant to /FCOS
  1183.                 /FAST:0 is equivilant to /FCON
  1184.  
  1185.          The /FCO:nn and /FAST:nn are more reliable than using the
  1186.          regular /FCO, /FCOS, /FAST, or /FCON commands.  In the next
  1187.          version of BGFAX, the above four switches may be phased out so
  1188.          that /FAX, /FHAY, /FZYX, /FCO:nn, /FAST:nn are the only valid
  1189.          switches.
  1190.  
  1191.          When a fax is inbound, here are some example BGFAX command
  1192.          lines for rear-end mode operation on my Supra:
  1193.  
  1194.               BGFAX /FAX C:\BGFAX 1 Z
  1195.               bgfax /fax c:\bgfax f3 z
  1196.               bgfax /fax c:\bgfax 3f8x7 z
  1197.  
  1198.          Using my Hayes 288, example command line options might be:
  1199.  
  1200.               bgfax /fhay:713_893_9124 c:\bgfax 1 z
  1201.  
  1202.          ...note that the ID string MUST be presented on the command line
  1203.          when you are receiving with a Class 1 modem in rear end mode.
  1204.          In Class 1, the fax software is responsible for sending the ID
  1205.          string to the remote machine.  (In contrast to Class 2/2.0 modems,
  1206.          which automatically send the ID to the remote machine.)
  1207.  
  1208.          The /FAX means that I used the modem response "FAX" as a trigger
  1209.          for FD (see BGFAX.HLP for more details), C:\BGFAX is the path
  1210.          where I want all faxes to be stored, "1" is the communications
  1211.          port, and the "Z" represents I want faxes saved in ZyXEL's ZFAX
  1212.          image format.
  1213.  
  1214.          If you want to run BGFAX on a multinode system, an optional fifth
  1215.          parameter can be used.  This fifth parameter can be up to three
  1216.          characters and it is called the PID.  Example:
  1217.  
  1218.               BGFAX /FAX C:\BGFAX 1 Z /PID:99
  1219.  
  1220.          The only difference between the command above and the previous one
  1221.          is that rather than making a BGFAX.LOG, all log entries will be
  1222.          written to a file called BGFAXpid.LOG, in this case, BGFAX99.LOG.
  1223.  
  1224.          -------------------------------------------------------------
  1225.          MISCELLANEOUS /HOST AND REAREND (/Fxxx) OPTIONS
  1226.          -------------------------------------------------------------
  1227.  
  1228.          Stop that hopping blue box
  1229.          ==========================
  1230.  
  1231.          In /HOST mode, the BGFAX status box hops around the screen every
  1232.          10 seconds to prevent screen burn-in.  However, some people got
  1233.          dizzy watching the box, and others complained that the screen move
  1234.          was taking up too many time slices in multitasking environment.
  1235.          The /NH parameter will force "No Hop" mode which has considerably
  1236.          less screen writes when sitting idle.
  1237.  
  1238.               bgfax /host /nh
  1239.  
  1240.          50 Line Mode
  1241.          ============
  1242.  
  1243.          BGFAX can use VGA's 50 line mode if you wish by using the /50
  1244.          command line parameter:
  1245.  
  1246.               bgfax /host /50
  1247.               bgfax /send c:\bgfax\fax0004.fax 893-9124 /50
  1248.               bgfax /fco c:\bgfax 1 z /50
  1249.  
  1250.          (Also, if you have only a EGA video card, the /50 switch should
  1251.          switch your display into 43 line mode.)
  1252.  
  1253.          BGFAX and the USR 21.6K modem with September 93 chips
  1254.          =====================================================
  1255.  
  1256.          If you are using BGFAX with the USR 21.6K modem, BGFAX will
  1257.          default to use the 12/08/93 firmware revision.  If you wish to use
  1258.          BGFAX with the 09/20/93 firmware, you will need to use the /OU
  1259.          switch on the BGFAX command line.  Example:
  1260.  
  1261.               bgfax /host /ou
  1262.               bgfax /fco c:\bgfax 4 q /ou
  1263.  
  1264.          ...DO NOT USE THE /OU SWITCH WITH ANY OTHER MODEM *EXCEPT* THE USR
  1265.          21.6K WITH SEPTEMBER 1993 FIRMWARE!  (See WHATS.NEW for other
  1266.          exceptions).
  1267.  
  1268.          Turning off the alert sound BGFAX makes when it receives a fax
  1269.          ==============================================================
  1270.  
  1271.          BGFAX will automatically sound an "alarm" to let you know when a
  1272.          succesful fax reception occurs.  This "alarm" is annoying to some
  1273.          people.  To disable the "alarm", use the /NS switch for No Sound.
  1274.          (ONLY AVAILABLE IN THE REGISTERED VERSION.)
  1275.  
  1276.               bgfax /host /ns
  1277.               bgfax /fast c:\bgfax 1 z /ns
  1278.  
  1279.          Telling Class 1 modems to receive at a maximum of 9600 bps  /DIS
  1280.          ================================================================
  1281.  
  1282.          If your Class 1 modem can receive at a maximum of 9600, strange
  1283.          things will happen if you forgot to tell BGFAX this, since it will
  1284.          default to tell the other side you will be using 14400 bps for fax
  1285.          operations.  To force BGFAX to receive at a maximum of 9600 bps
  1286.          with Class 1 faxmodems, use the /DIS:79 parameter, i.e.:
  1287.  
  1288.               bgfax /fhay:713_893_9124 c:\bgfax 1 z /dis:79 /ns
  1289.  
  1290.          To compute your own /DIS value, first, pick a value from the
  1291.          following table:
  1292.  
  1293.          2400  -> 3
  1294.          4800  -> 11
  1295.          9600  -> 15
  1296.          14400 -> 47
  1297.  
  1298.          Next, you have two options.  If you want to allow high resolution
  1299.          documents, add the value 64 to your choice.  If you want to allow
  1300.          2D-MR documents, add the value 128 to your choice.  For example,
  1301.          let's say you wanted a maximum speed of 9600 along with high
  1302.          resolution documents: 15 + 64 = 79, so use /DIS:79.
  1303.  
  1304.          See the following chart for pre-computed examples:
  1305.  
  1306.          /DIS:nnn   Description (all of the following allow high res faxes)
  1307.          --------   -------------------------------------------------------
  1308.          75         Maximum speed of 4800 bps, 1D-MH faxes only
  1309.          79         Maximum speed of 9600 bps, 1D-MH faxes only
  1310.          207        Maximum speed of 9600 bps, 1D-MH & 2D-MR faxes
  1311.          111        Maximum speed of 14400 bps, 1D-MH faxes only [DEFAULT]
  1312.          239        Maximum speed of 14400 bps, 1D-MH & 2D-MR faxes
  1313.  
  1314.  
  1315.          TSR fax notification
  1316.          ====================
  1317.  
  1318.          BGFAX comes with an optional TSR program (NFAX.COM) that will
  1319.          place the word "FAX" on your screen whenever a successful incoming
  1320.          fax occurs.  However, you must tell BGFAX that you wish to alert
  1321.          NFAX.COM to display the message.  You can do this by using the /NF
  1322.          switch.  Example:
  1323.  
  1324.               bgfax /fcon c:\bgfax 2 q /nf
  1325.  
  1326.          This will activate the NFAX.COM interrupt and cause the message to
  1327.          get displayed.  To turn the message off, you can run the FAXOFF.COM
  1328.          program contained in the BGFAX archive.  Remember, NFAX.COM is a
  1329.          TSR and must be loaded in your AUTOEXEC.BAT properly if you wish
  1330.          to use it with BGFAX.  It is totally optional!  Also, note that if
  1331.          your machine is rebooted, the fax message will not be on your
  1332.          screen when your system powers back up.
  1333.  
  1334.          NFAX.COM/FAXOFF.COM techinical information:
  1335.          ===========================================
  1336.  
  1337.          Here is a snip of the Turbo Pascal source code that tells NFAX.COM
  1338.          to put the fax indicator on the screen:
  1339.  
  1340.               var
  1341.                 regs : registers;
  1342.               begin
  1343.                 writeln('Activating "NFAX" interrupt.');
  1344.                 regs.ah := 30; { nfax-function }
  1345.                 regs.al := 21; { nfax-sub function }
  1346.                 regs.bl := 95; { nfax-"FAX" attribute, white on purple }
  1347.                 intr($55, regs); { nfax-tsr }
  1348.               end;
  1349.  
  1350.          When you want to turn off the "FAX" alert message, you need to
  1351.          run the included "FAXOFF.COM" file.  It basically issues the
  1352.          same code above except that "regs.al := 22" instead of 21.
  1353.          (Go into DEBUG and do an unassemble on the .COM file to see
  1354.          exactly how to turn it off.)
  1355.  
  1356.     ************************************************************************
  1357.          AFTER YOU RECEIVE THE FAX
  1358.     ************************************************************************
  1359.  
  1360.          NAMING CONVENTION
  1361.          =================
  1362.          The name of the fax file will be FAXnnnn.??? where "nnnn" is a
  1363.          number that is padded with zeros and "???" is "FAX" or "QFX",
  1364.          depending upon which fax format you save the file in.  If you ever
  1365.          see a BGFAX.$$$ file in your directory, it should *NOT* be there,
  1366.          as it should have been renamed in the FAXnnnn.??? format.  If it
  1367.          is there, it means some kind of problem happened during the fax
  1368.          reception.  Normally, problem faxes will be renamed to BADnnnn.???.
  1369.  
  1370.          FAXIN.LOG
  1371.          =========
  1372.          BGFAX creates a BGFAX.LOG file that contains a bunch of
  1373.          information that is mainly only for debug purposes.  A much
  1374.          cleaner log file is called FAXIN.LOG and looks like this:
  1375.  
  1376. Date  Time  ET    Bytes   Rate  Filename     Remote Fax ID        Pgs  Notes
  1377. -------------------------------------------------------------------------------
  1378. 12-21 11:52 00:42   18183  9600*FAX0001.FAX  Unknown                2  Finished
  1379. 12-21 18:04 00:38   18182  9600 FAX0002.FAX  Unknown                2  Not Done
  1380. 12-22 21:30 00:29   17793 14400*FAX0003.FAX  7138939124             1  Finished
  1381. 12-22 21:42 00:29   17541 14400#FAX0004.FAX  TRANQUILITY BASE       1  Finished
  1382. 12-23 06:44 00:32   16941  9600%FAX0005.FAX  Null ID Received       1  Finished
  1383. 12-25 17:21 01:22  107392 14400*FAX0006.FAX  7132424708             1  Finished
  1384.  
  1385.          Notice the special symbols between the Rate and Filename:
  1386.  
  1387.            -> (space) means low resoultion, 1D-MR compression
  1388.          * -> means high resolution, 1D-MH compression
  1389.          % -> means low resoltion, 2D-MR compression
  1390.          # -> means high resolution, 2D-MR compression
  1391.  
  1392.          "Not Done" under Notes means that BGFAX believed more pages were
  1393.          to have followed, but were not actually received.  "ET" is
  1394.          estimated time.  Everything else is self explanatory.
  1395.  
  1396.          VIEWING/PCX CONVERSION
  1397.          ======================
  1398.  
  1399.          You can use the included VIEW.EXE file to view the faxes you have
  1400.          received.  It's use is quite simple:
  1401.  
  1402.               VIEW FAX0002.FAX
  1403.  
  1404.          ...will cause VIEW.EXE to start viewing operations on FAX0002.FAX.
  1405.  
  1406.          VIEW should automatically detect what kind of video card you are
  1407.          using (VGA, EGA, and CGA) and use that video card's monochrome
  1408.          mode.  If VIEW.EXE has trouble finding a video mode, you can force
  1409.          VIEW to use an alternate mode with the /CGA, /EGA, or /VGA
  1410.          command as the second command line parameter after the filename.
  1411.  
  1412.               VIEW FAX0002.FAX /CGA   or  VIEW FAX0002.FAX /EGA
  1413.  
  1414.          When you are viewing the fax, you have a few options:
  1415.  
  1416.          Alt-F ... Flip the image (makes upside down and mirrors)
  1417.          Alt-I ... Inverse the image (white-black -> black-white)
  1418.          Alt-S ... Shrink current on-screen image to 1/3 width
  1419.          PgDn .... go to next page
  1420.          PgUp .... go to previous page
  1421.          ...and the Up/Down/Right/Left arrows do their normal job.
  1422.  
  1423.          Note that viewing the fax, with my VIEW.EXE program, takes up
  1424.          quite a bit of memory.  (It uses 216 bytes of memory for each scan
  1425.          line, so a single high resolution fax page of 2200 lines uses
  1426.          a minimum of 475K of memory!)
  1427.  
  1428.          If you want to convert a fax to PCX ...
  1429.  
  1430.               VIEW FAX0002.FAX /PCX
  1431.  
  1432.          ...would create a FAX0002.P01 and FAX0002.P02 file.  (Two PCX
  1433.          files since there are two pages in this fax image.)
  1434.  
  1435.          A special option, /BO, is also available with VIEW.EXE.  /BO
  1436.          tells VIEW that you wish to flip all the bytes in the fax data
  1437.          stream before processing it.  This should NEVER need to be used,
  1438.          as it is for my debugging purposes only.  (Basically, using the
  1439.          /BO parameter will let VIEW display/convert reverse bit order
  1440.          faxes.  Normally, BGFAX will save all faxes in direct bit order,
  1441.          no matter what bit order the modem actually receives in.)
  1442.  
  1443.          Another special option, /DB, forces VIEW to display the bad scan
  1444.          lines of a fax image.  Normally, if VIEW encounters a bad scan
  1445.          line, it will display it is a dotted line going all the way across
  1446.          the width of the fax image.  If /DB is active, VIEW will put up to
  1447.          1728 bits of the incorrectly decoded scan line on the page.
  1448.  
  1449.          DOPRINT.BAT
  1450.          ===========
  1451.          After you successfully receive a fax, BGFAX will exit with an
  1452.          errorlevel of 4 and append (or create) a DOPRINT.BAT file.
  1453.  
  1454.          CALL C:\BGFAX\EXEPRINT.BAT C:\BGFAX\FAX0085.FAX
  1455.          CALL C:\BGFAX\EXEPRINT.BAT C:\BGFAX\FAX0086.FAX
  1456.  
  1457.          You do not have to do anything with this at all, but it is
  1458.          provided for those of you who wish to print faxes as they are
  1459.          received.  It will call the EXEPRINT.BAT file and pass it the
  1460.          parameter with the path and name of the fax file that was just
  1461.          received.  If you are using Smith Micro Software's Quick Link II,
  1462.          for example, and are one of those people that leave your printer
  1463.          on 24 hours a day, your EXEPRINT.BAT file might contain this:
  1464.  
  1465.          @echo off
  1466.          printfax %1 24pin.qlp
  1467.  
  1468.          Remeber to delete the DOPRINT.BAT file after you process it.
  1469.          (If you do not, every time BGFAX goes to print another fax,
  1470.          it will print ALL faxes received since you first set it up.)
  1471.  
  1472.          -------------------------------------------------------------
  1473.          SEND FAX MODE
  1474.          -------------------------------------------------------------
  1475.  
  1476.          Currently, if you want to send a fax to another person, the fax
  1477.          file must already be in either ZFAX or Quick Link II fax image
  1478.          format.
  1479.  
  1480.               BGFAX /SEND FAX0001.FAX 893-9124
  1481.  
  1482.          See the BGFAX.CNF file for more info, such as maximum amount of
  1483.          busy signals and failures before exit, etc.
  1484.  
  1485.          At this time, only previously converted fax files can be sent.
  1486.          (i.e., ASCII files have to be translated to ZFAX .FAX format or
  1487.          QLII .QFX format.)  You can use the included MAKEFAX.EXE program
  1488.          to convert an ASCII file to .FAX format.  MAKEFAX.EXE will require
  1489.          that the font file BGFAX.FNT exists in your BGFAX directory.
  1490.          MAKEFAX allows a width of up to 100 characters per line.  (Use
  1491.          the /SP command line parameter on MAKEFAX if you want it to use
  1492.          short sized pages for pages in the fax that aren't fully used.)
  1493.  
  1494.          BGFAX can exit with three possible errorlevels when sending...
  1495.  
  1496.               errorlevel 5  -> fax sent successfully
  1497.               errorlevel 1  -> fax send failure
  1498.               no errorlevel -> file not found, keypress abort, etc.
  1499.  
  1500.          If the number is BUSY, BGFAX will try a few more times (the number
  1501.          of times specified in the MB= entry in the BGFAX.CNF file) and
  1502.          will pause for SW= number of seconds between dials.  If a failure
  1503.          occurs during handshaking or during the actual sending of the fax,
  1504.          BGFAX will terminate with an failure errorlevel.
  1505.  
  1506.          If you are a programmer, and need to use BGFAX to send faxes, but
  1507.          need more information than success or failure, you need to use the
  1508.          /ER switch on the BGFAX /SEND command line.  BGFAX will make only
  1509.          ONE attempt to send the fax in /ER mode (regardless of BUSY, etc.)
  1510.  
  1511.               bgfax /send fax0001.fax 893-9124 /er
  1512.  
  1513.          The following "Extended Results" are available:
  1514.  
  1515.               errorlevel 18 -> input fax file not found on disk
  1516.               errorlevel 17 -> remote fax device does not support 2D-MR
  1517.               errorlevel 16 -> remote fax does not support high resolution
  1518.               errorlevel 15 -> failure after connect (HDLC frameout, etc.)
  1519.                                (a class 1 failure)
  1520.               errorlevel 14 -> a timeout occurred
  1521.               errorlevel 13 -> no +FCON ever occurred (NO CARRIER, etc.)
  1522.               errorlevel 12 -> failure after connect (+FHNG, no XON, etc.)
  1523.                                (a class 2 or 2.0 failure)
  1524.               errorlevel 11 -> "NO DIALTONE"
  1525.               errorlevel 10 -> "BUSY"
  1526.                   9,8       <reserved, i have no idea why>
  1527.               errorlevel 7  -> the number is BLACKLISTED by the modem
  1528.                    6        <dr. samuel beckett steped into the quantum leap
  1529.                              accellerator and vanished>
  1530.               errorlevel 5  -> *** FAX SENT SUCCESFULLY ***
  1531.                  4,3,2      <reserved for bgfax /host mode>
  1532.               errorlevel 1  -> generic fax send failure
  1533.               no errorlevel -> keypress abort, unknown failure type
  1534.  
  1535.          TOP OF PAGE HEADERS
  1536.          ===================
  1537.          BGFAX will print a top of page header at the top of each page
  1538.          BGFAX sends out.  This is same time of things that real fax
  1539.          machines and other computer fax software do that identify who sent
  1540.          the fax, where it's going, the date and time, and the page number.
  1541.  
  1542.          BGFAX will need to call MAKEFAX.EXE with a special command line
  1543.          parameter to cause the creation of the top of make banners.  Make
  1544.          sure you keep both MAKEFAX.EXE and BGFAX.FNT in your BGFAX
  1545.          environment directory.
  1546.  
  1547.          If you get lost real easy, you can skip the rest of this section.
  1548.          This rest of this section describes how to configure BGFAX to
  1549.          change the format of the top of page banners.
  1550.  
  1551.          BGFAX lets you be very flexible with what exactly is said on the
  1552.          top of page headers.  It does this by the use of a "template" that
  1553.          is located in the BGFAX.CNF file.  This is necessary so that
  1554.          countries that do not use English can put their own langauge on
  1555.          the top of page banners.  Also, it's just plain fun.
  1556.  
  1557. fh=To: %to21% From: %fr42% %mo2%/%dy2%/%yr2%  %hr2%:%mi2%  Pg %pg2%/%mp2%
  1558. fr=B.J. Guillot (713-893-9124)
  1559.  
  1560.          The fh= entry is the template.
  1561.  
  1562.          It should be obvious as to what all those %TTNN% things do,
  1563.          but if not, here's a little dictionary:
  1564.  
  1565.    %toNN% -> who the fax is for (will default to the sending phone number,
  1566.      but can override to say any text with the /TO= command line switch)
  1567.    %frNN% -> who the fax if from (will default to the ID= entry in the
  1568.      BGFAX.CNF file, unless a FR= entry is found, but can override to say
  1569.      any text with the /FR= command line switch)
  1570.    %moNN% -> month
  1571.    %dyNN% -> year
  1572.    %hrNN% -> hour
  1573.    %miNN% -> minute
  1574.    %pgNN% -> current page number
  1575.    %mpNN% -> maximum number of pages
  1576.  
  1577.    With %to and %fr, BGFAX will right pad the whoto or whofrom strings to
  1578.    a total number of NN characters with blanks.  All other fields, are
  1579.    left padded to NN characters with ZEROS.  Keep in mind that BGFAX can
  1580.    fit 100 characters across the page.
  1581.  
  1582.          The fr= option, is used in the fh= template entry.  Basically,
  1583.          fr= is what will be inserted into the %frNN% template variable.
  1584.  
  1585.          Are you lost?  Here is an example and what it would look like:
  1586.  
  1587.           C:\> bgfax /send output.fax 555-1212
  1588.  
  1589. To: 555-1212              From: B.J. Guillot (713-893-9124)                05/08/94  16:25  Pg 01/15
  1590.  
  1591.          Let's say you run a BBS with a fax door and want to stick you
  1592.          user's name at the top of each page instead of your personal name.
  1593.          No need to rebuild a BGFAX.CNF!  You can manipulate the %toNN% and
  1594.          %frNN% template variables from the command line.  If you do this,
  1595.          remember to use underscores (_) to indicate spaces.  Example:
  1596.  
  1597. C:\> bgfax /send output.fax 555-1212 /fr=BGFAX_Tech_Support /to=John_Doe
  1598.  
  1599. To: John Doe              From: BGFAX Tech Support                         05/08/94  16:25  Pg 01/15
  1600.  
  1601.          MISCELLANEOUS /SEND OPTIONS
  1602.          ===========================
  1603.  
  1604. /C1      Some Class 2 modems have bugs and cannot send to all fax machines
  1605.          reliably in Class 2 mode.  Because of this, the /C1 parameter is
  1606.          available.  It causes BGFAX to force the use of Class 1 when
  1607.          sending:
  1608.  
  1609.               bgfax /send c:\bgfax\fax0001.fax 893-9124 /c1
  1610.  
  1611. maximum  Some fax machines and fax modems don't operate very well together
  1612.          at 14400 speeds.  You can force BGFAX to use a lower maximum speed
  1613.          by putting the BPS rate after the send command, e.g.:
  1614.  
  1615.               bgfax /send:9600 fax0001.fax 893-9124
  1616.               bgfax /send:7200 fax0001.fax 893-9124
  1617.               bgfax /send:12000 fax0001.fax 1-713-893-9124 /c1
  1618.  
  1619. /SMD     A special option, /SMD, is available for my testing purposes only.
  1620.          You should NEVER use this option.  Basically, between each page,
  1621.          it will tell the remote fax machine another "document" is coming
  1622.          next, rather than the normal response that another "page" is
  1623.          coming next.  Example:
  1624.  
  1625.               bgfax /send fax0001.fax 893-9124 /smd
  1626.  
  1627.          REMEMBER, /SMD is only for testing purposes.  DON'T USE /SMD!
  1628.  
  1629. /NB      Some people do not want top of page banners to be added by BGFAX.
  1630.          The /NB switch will do this.  (PLEASE NOTE THAT UNITED STATES AND
  1631.          CANADIAN CITIZENS CANNOT LEGALLY USE THIS SWITCH.)
  1632.  
  1633. /XB      For some reason, you may want to tell BGFAX to use an existing
  1634.          BGFAX top of page temporary fax graphics file (BGFAX.HH$).  This
  1635.          will prevent BGFAX from exec()'ing MAKEFAX.EXE.  The only real
  1636.          situation that you'd want to use this in, is if you were so low on
  1637.          memory you didn't have enough to have BGFAX shell to MAKEFAX, or
  1638.          if you wanted to design top of page banners completely independant
  1639.          of BGFAX's fh= template.  Ask me about MAKEFAX's internal /HDR
  1640.          command if you want more details about this.  (Basically, if you
  1641.          will be sending out a 4 page fax, you will create a 4 line ASCII
  1642.          text file called BGFAX.H$$ that has the header text for the top of
  1643.          each page.  Running MAKEFAX /HDR will take the BGFAX.H$$ ASCII file
  1644.          and convert it to a BGFAX.HH$ graphics file.  All BGFAX.H?$ files
  1645.          must appear in the BGFAX environment directory.  If the fax
  1646.          document you are sending will be high resolution, you will also
  1647.          need to do MAKEFAX /HDR /HR -- If you are going to be sending a 2D
  1648.          fax document, you'll need to do MAKEFAX /HDR /2D ).
  1649.  
  1650.          FAXOUT.LOG
  1651.          ==========
  1652.  
  1653.          A FAXOUT.LOG file is created when sending out faxes to indicate
  1654.          the success or failure.  Here is an example:
  1655.  
  1656. Date  Time  ET    Bytes   Rate  Filename     Phone Number         Pgs  Notes
  1657. -------------------------------------------------------------------------------
  1658. 03-22 13:18 00:25    3882 14400 RESPOND.FAX  8939124                2  Finished
  1659. 03-22 13:18 00:11    3884 NOFAX RESPOND.FAX  8939124                0  Busy
  1660. 03-22 13:19 00:11    3884 NOFAX RESPOND.FAX  8939124                0  No Fcon
  1661. 03-22 13:30 00:31    3208  7200 RESPOND.FAX  8939124                0  Bad Conn
  1662. 03-22 13:31 00:28    3882  9600 RESPOND.FAX  8939124                2  Finished
  1663. 03-23 14:42 00:26    3882 14400 RESPOND.FAX  8939124                1  Timeout
  1664. 03-23 14:44 00:29    3882 NOFAX RESPOND.FAX  8939124                0  BlackLst
  1665. 03-23 14:47 00:21    3882 NOFAX RESPOND.FAX  8939124                0  Max Busy
  1666. 03-23 14:51 00:23    3882 14400 RESPOND.FAX  8939124                1  Gen Fail
  1667. 03-23 14:54 00:05    3882 NOFAX RESPOND.FAX  8939124                0  No Dial
  1668.  
  1669.          -------------------------------------------------------------
  1670.          HANGUP STATUS CODES
  1671.          -------------------------------------------------------------
  1672.  
  1673.          When BGFAX reports "Problematic fax reception", it will indicate a
  1674.          fax hangup code, such as [+FHNG: 73].  This chart, taken from the
  1675.          Supra CLASS_2.TXT fax command set documentation (which, I believe
  1676.          was taken from the Rockwell Class 2 documentation), allows you to
  1677.          match up the +FHNG message with its true meaning.  For example,
  1678.          +FHNG: 73 would indicate "T.30 T2 timeout, expected page not
  1679.          received", which really does not say much, but it may give you
  1680.          some clue.  I don't know what most of these mean myself, so I
  1681.          don't know whether it will provide you any luck or not, but, many
  1682.          people asked that it be included, so here it is.
  1683.  
  1684.      /-----------------------------------------------------------------\
  1685.      | 2.0   Class 2 |  Cause Description                              |
  1686.      | --------------|-------------------------------------------------|
  1687.      | 00-0F     0-9 |  CALL PLACEMENT AND TERMINATION                 |
  1688.      |---------------|-------------------------------------------------|
  1689.      | 00          0 |  Normal and proper end of connection            |
  1690.      | 01          1 |  Ring Detect without successful handshake       |
  1691.      | 02          2 |  Call aborted, from +FK/+FKS or <CAN>           |
  1692.      | 03          3 |  No Loop Current                                |
  1693.      | 04      4,n/a |  Ringback detected, no answer (timeout)         |
  1694.      | 05        n/a |  Ringback detected, answer without CED          |
  1695.      |---------------|-------------------------------------------------|
  1696.      | 10-1F   10-19 |  TRANSMIT PHASE A & MISCELLANEOUS ERRORS        |
  1697.      |---------------|-------------------------------------------------|
  1698.      | 10         10 |  Unspecified Phase A error                      |
  1699.      | 11         11 |  No Answer (T.30 T1 timeout)                    |
  1700.      |---------------|-------------------------------------------------|
  1701.      | 20-3F   20-39 |  TRANSMIT PHASE B HANGUP CODES                  |
  1702.      |---------------|-------------------------------------------------|
  1703.      | 20         20 |  Unspecified Transmit Phase B error             |
  1704.      | 21         21 |  Remote cannot receive or send                  |
  1705.      | 22         22 |  COMREC error in transmit Phase B               |
  1706.      | 23         23 |  COMREC invalid command received                |
  1707.      | 24         24 |  RSPEC error                                    |
  1708.      | 25         25 |  DCS sent three times without response          |
  1709.      | 26         26 |  DIS/DTC received 3 times; DCS not recognized   |
  1710.      | 27         27 |  Failure to train at 2400 bps or +FMS/          |
  1711.      |               |                                  +FMINSP value  |
  1712.      | 28         28 |  RSPREC invalid response received               |
  1713.      |---------------|-------------------------------------------------|
  1714.      | 40-4F   40-49 |  TRANSMIT PHASE C HANGUP CODES                  |
  1715.      |---------------|-------------------------------------------------|
  1716.      | 40         40 |  Unspecified Transmit Phase C error             |
  1717.      | 41        n/a |  Unspecified Image format error                 |
  1718.      | 42        n/a |  Image conversion error                         |
  1719.      | 43         43 |  DTE to DCE data underflow                      |
  1720.      | 44        n/a |  Unrecognized Transparent data command          |
  1721.      | 45        n/a |  Image error, line length wrong                 |
  1722.      | 46        n/a |  Image error, page length wrong                 |
  1723.      | 47        n/a |  Image error, wrong compression code            |
  1724.      |---------------|-------------------------------------------------|
  1725.      | 50-6F   50-69 |  TRANSMIT PHASE D HANGUP CODES                  |
  1726.      |---------------|-------------------------------------------------|
  1727.      | 50         50 |  Unspecified Transmit Phase D error             |
  1728.      | 51         51 |  RSPREC error                                   |
  1729.      | 52         52 |  No response to MPS repeated 3 times            |
  1730.      | 53         53 |  Invalid response to MPS                        |
  1731.      | 54         54 |  No response to EOP repeated 3 times            |
  1732.      | 55         55 |  Invalid response to EOP                        |
  1733.      | 56         56 |  No response to EOM repeated 3 times            |
  1734.      | 57         57 |  Invalid response to EOM                        |
  1735.      | 58         58 |  Unable to continue after PIN or PIP            |
  1736.      |---------------|-------------------------------------------------|
  1737.      | 70-8F   70-89 |  RECEIVE PHASE B HANGUP CODES                   |
  1738.      |---------------|-------------------------------------------------|
  1739.      | 70         70 |  Unspecified Receive Phase B error              |
  1740.      | 71         71 |  RSPREC error   (before TCF??)                  |
  1741.      | 72         72 |  COMREC error   (after TCF??)                   |
  1742.      | 73         73 |  T.30 T2 timeout, expected page not received    |
  1743.      | 74         74 |  T.30 T1 timeout after EOM received             |
  1744.      |---------------|-------------------------------------------------|
  1745.      | 90-9F   90-99 |  RECEIVE PHASE C HANGUP CODES                   |
  1746.      |---------------|-------------------------------------------------|
  1747.      | 90         90 |  Unspecified Receive Phase C error              |
  1748.      | 91         91 |  Missing EOL after 5 seconds                    |
  1749.      | n/a        92 |  < Not assigned >           /--- Rockwell only  |
  1750.      | 92 -Note-> 94 |  Bad CRC or frame (ECM {or BFT} modes)          |
  1751.      | 93         93 |  DCE to DTE buffer overflow                     |
  1752.      |---------------|-------------------------------------------------|
  1753.      | A0-BF 100-119 |  RECEIVE PHASE D HANGUP CODES                   |
  1754.      |---------------|-------------------------------------------------|
  1755.      | A0        100 |  Unspecified Receive Phase D errors             |
  1756.      | A1        101 |  RSPREC invalid response received               |
  1757.      | A2        102 |  COMREC invalid response received               |
  1758.      | A3        103 |  Unable to continue after PIN or PIP            |
  1759.      |---------------|-------------------------------------------------|
  1760.      | C0-DF     n/a |  RESERVED FOR FUTURE STANDARDIZATION            |
  1761.      | E0-FF     n/a |  REVERVED FOR MANUFACTURER SPECIFIC USE         |
  1762.      | n/a   120-255 |  RESERVED CODES                                 |
  1763.      \-----------------------------------------------------------------/
  1764.  
  1765.          -------------------------------------------------------------
  1766.          LIST OF ALL COMMAND LINE PARAMETERS, SHORT DESCRIPTIONS
  1767.          ------------------------------------------------------------
  1768.  
  1769.          /NS       Eliminates the sound that BGFAX plays after successfully
  1770.                    receiving a fax.  Registered version only.
  1771.  
  1772.          /HW       Tells BGFAX to use hardware flow control (CTS) when
  1773.                    sending faxes.  See WHATS.NEW for more info.  Applies
  1774.                    only to the DOS version of BGFAX.
  1775.  
  1776.          /NF       Make "FAX" appear on screen after fax received, must be
  1777.                    have the NFAX.COM TSR loaded.  Use only on 286 machines
  1778.                    and higher.  Do not use under OS/2
  1779.  
  1780.          /OU       Use if you are using an "Old USR" modem, i.e., the 21600
  1781.                    only modem.  I do not recommened using BGFAX with the
  1782.                    21600 modem in Class 2.0 mode.
  1783.  
  1784.          /50       Tell BGFAX (DOS version only) to use 50 line text mode
  1785.  
  1786.          /DW       If you are using a Rockwell chipset based modem in
  1787.                    Class 1 receive mode, this parameter changes timing
  1788.                    somewhat to try and make the +FCERROR go away
  1789.  
  1790.          /ER       Extended Results send mode.  Discussed earlier.
  1791.  
  1792.          /NB       Do not create top of page banners when sending faxes.
  1793.  
  1794.          /XB       Create you own ASCII banners.  Don't use unless you
  1795.                    have read the /XB section of the documentation.
  1796.  
  1797.          /HB       For internal testing purposes only.  Don't use.
  1798.                    Has to do with top of page banners.
  1799.  
  1800.          /NH       No Hop.  In /HOST mode, BGFAX will normally do a
  1801.                    "screen saving" hop.  This takes less CPU resources.
  1802.  
  1803.          /C1       Forces BGFAX to use Class 1 mode when sending.
  1804.  
  1805.          /ED       Tells BGFAX to use "European Date" format.  DD-MM-YY.
  1806.  
  1807.          /ATO      In /HOST mode, use this parameter if you are using
  1808.                    some very old modems in Class 1 mode (some old 2400/9600
  1809.                    modems, as well as the newer USR modems).
  1810.  
  1811.          /PID:nnn  Example... /PID:34 will make all log files named
  1812.                    BGFAX34.LOG to keep from having trouble on multi-node
  1813.                    systems.
  1814.  
  1815.          /SMD      For internal testing purposes only.  Don't use.
  1816.                    Tells BGFAX to send each page as a seperate fax
  1817.                    document instead of a fax page.
  1818.  
  1819.          /300      Tells BGFAX's /HOST mode to allow 300 bps callers.
  1820.                    Only use this on a Class 2, 2.0, or ZyXEL modem.
  1821.                    Class 1 (when adaptive answering is disabled) uses
  1822.                    a string of "CONNECT" to represent a fax connect,
  1823.                    which is the same as a 300 BPS data caller.
  1824.  
  1825.         /DTE:nnnnn If BGFAX has trouble determining the DTE speed when
  1826.                    used in rear-end mode (sometimes happens on FOSSIL
  1827.                    based systems), you can tell BGFAX what DTE speed the
  1828.                    port is set to.  Example...  /DTE:57600
  1829.                    People using BGFAX/DOS in a dos session of Windows 3.11,
  1830.                    Windows 95, and OS/2 may need to use this.
  1831.  
  1832.          /DIS:nnn  Useful for limiting/changing the fax capabilities on
  1833.                    a Class 1 modem.  Discussed in detail in another part
  1834.                    of the documentation.
  1835.  
  1836.          /FR:xxxx  Overrides the FR= field in BGFAX.CNF when sending
  1837.                    faxes.  This text goes in the "From:" field in the
  1838.                    top of page banner.  Use underscores instead of
  1839.                    spaces.  Example... /FR:BGFAX_Tech_Support
  1840.  
  1841.          /TO:xxxx  Overrides the TO= field in BGFAX.CNF when sending
  1842.                    faxes.  Same story as /FR:xxx_xxx.
  1843.  
  1844.          /EX       If you are using an EXAR based fax modem, BGFAX will
  1845.                    not perform DLE escapes so that you can get a readable
  1846.                    fax image when receiving.  DO NOT USE THIS COMMAND ON
  1847.                    A ROCKWELL OR OTHER TYPE OF FAX MODEM.  Most people
  1848.                    in the United States will never need this parameter.
  1849.                    A few people in other countries might need to use it.
  1850.  
  1851.          /SB       In /HOSE mode for the OS/2 version of BGFAX, it causes
  1852.                    BGFAX/2 to _spawn_ the DOBBS.CMD file so that BBS
  1853.                    software such as Maximus/2 can be used successfully.
  1854.  
  1855.          /ME       In /HOST mode, if you make BGFAX ask the user to hit
  1856.                    <Escape> to load the BBS, normally, if nothing
  1857.                    happens in ten seconds or so, BGFAX times out and
  1858.                    loads the BBS anyway.  /ME stands for Must hit Escape
  1859.                    to actually load the BBS.  If the user does not,
  1860.                    BGFAX will hang up on them instead of loading the
  1861.                    BBS.  Can be used to keep people that don't have
  1862.                    <Esc> keys on their keyboard off your BBS.
  1863.  
  1864.          /ND       In /HOST mode, BGFAX will send a message to any human
  1865.                    (data) callers telling them the BBS is not currently
  1866.                    accepting modem callers.  You should never really need
  1867.                    to use this.
  1868.  
  1869.          -------------------------------------------------------------
  1870.          ACKNOWLEDGEMENTS
  1871.          -------------------------------------------------------------
  1872.  
  1873.          I would like to thank the following people for their assistance
  1874.          during the initial alpha and beta test phase.
  1875.  
  1876.          Bill Huther
  1877.          Brian Wood
  1878.          Russell Kroll
  1879.          Ethan Brofman
  1880.          Ed Lucas
  1881.  
  1882.          I also think the many people from the Internet and FidoNet that
  1883.          help out with the the on-going public beta program.
  1884.  
  1885.          US Robotics, Hayes and Supra have also been very helpful in
  1886.          getting BGFAX to work/work better with their modems.
  1887.  
  1888.          -------------------------------------------------------------
  1889.          SHAREWARE
  1890.          -------------------------------------------------------------
  1891.  
  1892.          THIS PROGRAM IS SHAREWARE.
  1893.  
  1894.          If you use this program for more than four weeks you are required
  1895.          to register it for its low cost of only $25 US DOLLARS.
  1896.  
  1897.          Please make sure BGFAX works for you BEFORE registering.  If you
  1898.          have a question or problem, I'll answer it (or say I don't know
  1899.          the answer) whether you have registered or not.  I receive so much
  1900.          mail that it sometimes takes me up to two months to reply to your
  1901.          question.  Again, this is whether you are registered or not.
  1902.          Voice contact is the only way you will be able to get prompt reply.
  1903.  
  1904.          Registrations encourage frequent updates.
  1905.  
  1906.          If you are paying by check or money order, please print out the
  1907.          REGISTER.FRM file, fill it out, and mail it to my address.  Please
  1908.          try your best to make sure checks are drawn on a US bank.
  1909.  
  1910.          If you are paying by credit card (Visa, Mastercard, Discover or
  1911.          American Express) you can (1) mail the form to me, (2) fax the
  1912.          form to me, (3) netmail the form to me, or (4) call my BBS and
  1913.          open door #6 and quickly register.
  1914.  
  1915.          You can also register with Authur Mol in the Netherlands.  (See
  1916.          the REGISTER.NL file for more info.  I hope you read Dutch.)
  1917.  
  1918.          Hamish Moffatt is the registration agent for Australia.  (See
  1919.          the REGISTER.AUS file for more info.  This one is in English.)
  1920.  
  1921.          I will mail (or air mail) registration letters to everyone who
  1922.          registers.  They will include your registration codes.  If you
  1923.          should ever lose the codes, you can call my BBS and open door #6
  1924.          to grab your codes off the BGFAX registration database.
  1925.  
  1926.          -------------------------------------------------------------
  1927.  
  1928.          Regards,
  1929.          B.J. Guillot
  1930.  
  1931.          "Don't take a vacation while basting your Rick Roger's turkey."
  1932.                                  -- Yan Can Cook, PBS television network
  1933.  
  1934.