home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / VRAC / SEL_M_18.ZIP / SELL'EM.DOC < prev    next >
Text File  |  1993-07-15  |  37KB  |  867 lines

  1.         **************************************************************
  2.         *                                                            *
  3.         *                      SELL'EM.EXE v1.8                      *
  4.         *                                                            *
  5.         *           Advertisement & Business Card Database           *
  6.         *                                                            *
  7.         *                  Copyright (c) 1992, 1993                  *
  8.         *                Sagerquist Micro Engineering                *
  9.         *                                                            *
  10.         *                   1414 W. Kerrick Street                   *
  11.         *                    Lancaster, Ca. 93534                    *
  12.         *                    Data  (805) 723-6908                    *
  13.         *                                                            *
  14.         **************************************************************
  15.  
  16. DESCRIPTION
  17. -----------
  18.     SELL'EM.EXE is a BBS Advertisement Trap Door program.  There may
  19.     be up to 20 defined database files where the ads can be placed. 
  20.     Within each database, up to 100 entries (records) may be placed by
  21.     the BBS callers or the SysOp for all callers to view.  To enhance
  22.     the ad, a file may be uploaded giving the BBS caller an expanded
  23.     explanation, .GIF picture, Shareware program, or other data deemed
  24.     appropriate by the person placing the ad.  The Sysop may control
  25.     the placement of all ads, i.e. who and how many, allowing SELL'EM
  26.     to be operated as a business.
  27.  
  28. SYNTAX
  29. ------
  30.     SELL'EM [/B:(bbstype)] [/D:(optional) DIRECTORY] [/S:(Sound ON/OFF)]
  31.                 or
  32.     SELL'EM /COMPRESS
  33.  
  34.     The optional directory is where the BBS file (DOOR.SYS, TRIBBS.SYS,
  35.     etc.) is located.  This is a directory only.  Do not include a
  36.     filename.  If this switch is not present, SELL'EM will search the
  37.     current directory.
  38.  
  39. EXAMPLES
  40. --------
  41.     SELL'EM /B:MH1
  42.     SELL'EM /B:MH1 /D:C:\MEGAHOST\DATA /S:OFF
  43.     SELL'EM /B:WILDCAT /D:C:\WC30\WCWORK
  44.     SELL'EM /COMPRESS    (See section on deleting records)
  45.  
  46.     SUPPORTED BBS'S     Switch:       BBS File:
  47.     -------------------------------------------------------------
  48.     MegaHost:           MH#           MEGAHST#.DEF [# = Node]
  49.     PcBoard:            PCBOARD       PCBOARD.SYS
  50.     QuickBBS:           QBBS#         DORINFO#.DEF [# = Node]
  51.     RBBS:               RBBS#         DORINFO#.DEF
  52.     Remote Access:      RA            DOOR.SYS - 6 line version
  53.     Remote Access:      RA#           DORINFO#.DEF [# = Node]
  54.     Teleguard:          TELEGUARD     CHAIN.TXT
  55.     TGP:                TGP           CHAIN.TXT
  56.     TRIBBS:             TRIBBS_D      DOOR.SYS - 52 line version
  57.     TRIBBS:             TRIBBS_T      TRIBBS.SYS
  58.     Wildcat (v3.0+):    WILDCAT       DOOR.SYS - 52 line version
  59.     Wildcat:            CALLINFO      CALLINFO.BBS
  60.     World War IV:       WWIV          CHAIN.TXT
  61.  
  62.     Note: The BBS will create its caller definition file, such as
  63.           DOOR.SYS, DORINFO3.DEF, etc.  The data format within
  64.           these files may be different for each BBS even though
  65.           the same filename is used for another:  DOOR.SYS for
  66.           MEGAHOST could be different than DOOR.SYS for Wildcat.
  67.           Be sure to use the proper switch.
  68.  
  69. FILES IN THIS PACKAGE
  70. ---------------------
  71.     SELL'EM  EXE        Executable program.
  72.     SELL'EM  DBM        Data Base Menu file.
  73.     SELL'EM  DOC        Document file (this file).
  74.     SELL'EM  REG        Registration text file.
  75.     SELL'EM  XFR        File transfer external protocol definitions.
  76.     SOFTWARE DAT        Sample database file.
  77.     SERVICES DAT        Sample database file.
  78.     NAT'LBBS DAT        Sample database file.
  79.     TRAPDOOR BAT        Sample batch file for a BBS Trap Door.
  80.     BBSFILES ZIP        Sample BBS files (DOOR.SYS, MEGAHST1.DEF, etc.)
  81.     MEGAHST1 DEF        Sample BBS file, allows TEST.BAT to run.
  82.     TEST     BAT        Batch file for initial testing.
  83.     XFR_BATS ZIP        Sample batch files for external protocols.
  84.     OPTIONAL ZIP        Database menu custom name file,
  85.                 and Ad Placement Screening files.
  86.     REGISTER FRM        Form for easy registration.
  87.  
  88. QUICK SETUP
  89. -----------
  90.     1 - Create a directory for SELL'EM and place all files there.
  91.     2 - Place YOUR NAME in the file SELL'EM.REG so you will be
  92.         recognized as the BBS sysop (with or without a valid
  93.         registration number).
  94.     3 - Edit SELL'EM.XFR and make the directory that it points to.
  95.     4 - Edit SELL'EM.DBM to your liking.
  96.     5 - Be sure your external protocol programs (like DSZ.COM) can
  97.         be found through your PATH.
  98.     6 - Edit your BBS Trap Door batch file to call SELL'EM.EXE.
  99.         Be sure that this batch file does one of these two things:
  100.         A - The command line must include the directory where the
  101.         BBS's file (MEGAHST1.DEF, DOOR.SYS, etc.) is located, or
  102.         B - Copies the current BBS file (MEGAHST1.DEF, DOOR.SYS,
  103.         etc.) into SELL'EM's default directory.
  104.  
  105. SETUP
  106. -----
  107.     Create a separate subdirectory for SELL'EM.  Place SELL'EM.EXE,
  108.     SELL'EM.DBM, SELL'EM.REG, SELL'EM.NAM (from OPTIONAL.ZIP, if
  109.     desired), and SELL'EM.XFR into this directory.  Also place the
  110.     external protocol batch files (from XFR_BATS.ZIP) into this
  111.     directory.
  112.  
  113.     Your database files will be created and maintained from this
  114.     directory.  If you desire, create a directory to keep your
  115.     database files separate from your executables.  Define this
  116.     directory in SELL'EM.DBM.
  117.  
  118.     With an ASCII text editor, edit SELL'EM.DBM.  This is where your
  119.     database names and their file names are defined.  A menu list may
  120.     appear like this:
  121.  
  122. Shareware: I B M Software;SOFTWARE.DAT
  123. Computers and Equipment;COMP.DAT
  124. BBS Listing - Local;LOCALBBS.DAT
  125. BBS Listing - National;NAT'LBBS.DAT
  126. Automotive: Cars for Sale;SELLCAR.DAT
  127. Real Estate;REALEST.DAT
  128. Home Services;SERVICES.DAT
  129. Garage Sales;GARAGE.DAT
  130.  
  131.     The menu item, as it will be displayed to the BBS caller has a
  132.     maximum length of 25 characters.  If you accidentally exceed 25
  133.     characters, it will be cut short.
  134.  
  135.     The semicolon   ;   separates the menu name from the filename that
  136.     will hold its data.
  137.  
  138.     This filename may contain a path.  Without a path, SELL'EM will look
  139.     for the file in the default directory (recommended method).  DOS 
  140.     standards must be met when deciding on a filename ie: maximum 8 
  141.     character file name, maximum 3 character extension, etc.  See your 
  142.     DOS manual for further details.  The filename entry (including the 
  143.     path, if necessary) must not exceed 54 characters.
  144.  
  145. Automotive: Engine Repair;CARFIX.DAT
  146. or
  147. Automotive: Engine Repair;C:\BBS\SELL'EM\DATABASE\CARFIX.DAT
  148.                                                                            
  149. └─ 25 characters max ───┘│└───────────────── Up to 54 characters ──────────────┘
  150.                          │     Place the file name (and path if desired) 
  151. Mandatory separator ─────┘     immediately after the semi-colon (NO SPACES!!).
  152.  
  153.     Create a directory for your caller's advertisement uploads (uploaded
  154.     with the advertisement).  With an ASCII text editor, edit SELL'EM.XFR.
  155.     Lines that begin with the asterisk '*' are comments and are ignored.
  156.     This is where your directory for uploads, protocol menu and your 
  157.     external protocols are defined.  SELL'EM.XFR might look like this:
  158.  
  159. FILE DIRECTORY;C:\BBS\SELL'EM\ADFILES
  160. Xmodem CRC;XMODEM-C.BAT
  161. Ymodem;YMODEM.BAT
  162. Ymodem-G;YMODEM-G.BAT
  163. Zmodem;ZMODEM.BAT
  164.  
  165.     The first line defines the directory where files will be transferred
  166.     to and from.  All other lines are the protocol definitions.  The
  167.     format of the protocol definitions is:  'MENU ITEM;BATCH FILE'
  168.     Place the name of the protocol first (up to 10 characters) as you
  169.     want it to appear on the menu, a semicolon, then the name of the
  170.     batch file that calls it (69 character maximum).  Each line must
  171.     not exceed 80 characters.  The actual protocol program (such as
  172.     DSZ.COM) must either be located with SELL'EM or in a directory
  173.     accessible through your PATH.
  174.  
  175.     Suggestion:
  176.  
  177.     C:\──────BBS
  178.                   │
  179.                   └─────SELL'EM     <-- SELL'EM's .EXE and definition files.
  180.                           │
  181.                           ├──────────ADFILES    <-- Files uploaded with ads.
  182.                           │
  183.                           └──────────DATABASE    <-- Database files.
  184.  
  185.     Extract all the sample batch files from XFR_BATS.ZIP.  Place these
  186.     batch files in the same directory as SELL'EM.EXE.  These files are
  187.     examples.  I chose to demonstrate this process with "DSZ.COM", an
  188.     external file transfer protocol program by Omen Technology Inc.,
  189.     P.O. Box 4681, Portland, Or. 97208.  Other external protocols are
  190.     available on BBS's around the world, and must be implemented in the
  191.     same manner, none of which are provided with this program.  These
  192.     external protocol program files must be accessed either from the
  193.     default directory or through your DOS PATH.
  194.  
  195.     SELL'EM sends the transfer protocol batch file all the data necessary
  196.     to complete the transfer: Port, baud rate, file path, filename, the
  197.     word "SEND" for download requests, or "RECEIVE" for upload requests.
  198.     These values are accessed in the batch file through the characters 
  199.     %1, %2, %3, %4, and %5:
  200.  
  201.         %1 = SEND or RECEIVE            SEND
  202.         %2 = PORT NUMBER            1
  203.         %3 = BAUD RATE                14400
  204.         %4 = FILE PATH                C:\BBS\SELL'EM\ADFILES
  205.         %5 = FILENAME                DADS_CAR.GIF
  206.  
  207.     Example Batch File "ZMODEM.BAT" using "DSZ.COM":
  208.  
  209. @ECHO OFF
  210. IF %1 == SEND GOTO SENDFILE
  211. IF %1 == RECEIVE GOTO RECEIVEFILE
  212. GOTO END
  213.  
  214. :SENDFILE
  215. DSZ port %2 speed %3 sz -r %4\%5 > nul
  216. GOTO END
  217.  
  218. :RECEIVEFILE
  219. DSZ port %2 speed %3 rz -r %4\%5> nul
  220. GOTO END
  221.  
  222. :END
  223.  
  224.     Be sure (with "@ECHO OFF" and "> NUL") that the screen output from
  225.     your protocol batch file is suppressed, or the local display of
  226.     SELL'EM will get garbled.  Remote appearance will be unaffected.
  227.  
  228.     Since the external protocol is called with a batch file, it is 
  229.     possible to add a line that checks an upload for readability
  230.     or viruses.  If you implement this action, please send me an
  231.     example of your batch file!  I'd like to see it.
  232.  
  233.     You may customize the displayed name of the door from SELL'EM to
  234.     whatever you want!  The database menu displays this box by default:
  235.                       ┌────────────────────────────────┐
  236.                       │          SELL'EM v1.8          │
  237.                       │                                │
  238.                       │       Advertisement Door       │
  239.                       │                                │
  240.                       │    Copyright (c) 1992, 1993    │
  241.                       │  Sagerquist Micro Engineering  │
  242.                       └────────────────────────────────┘
  243.     If the file SELL'EM.NAM (found in OPTIONAL.ZIP) exists in the 
  244.     directory where SELL'EM.EXE is run, then the text in this file
  245.     will replace the 4 lines above the copyright statement.  These
  246.     lines must not be more than 30 characters long, or they will be
  247.     cut short.  They will be automatically centered in the box.  The
  248.     file contents must start on the first column.  The following
  249.     example displays the format for the file SELL'EM.NAM and its output:
  250. Joe's BBS
  251.  
  252. Business Cards Index
  253.                       ┌────────────────────────────────┐
  254.                       │           Joe's BBS            │
  255.                       │                                │
  256.                       │      Business Cards Index      │
  257.                       │                                │
  258.                       │    Copyright (c) 1992, 1993    │
  259.                       │  Sagerquist Micro Engineering  │
  260.                       └────────────────────────────────┘
  261.     The file SELL'EM.NAM need not exist at all.
  262.  
  263.     I believe SELL'EM is best run from a batch file.  This allows
  264.     for the steps necessary for SELL'EM to run properly:
  265.     1 - Relocating the appropriate BBS file (DOOR.SYS, etc.) to the
  266.         subdirectory where SELL'EM is placed, if necessary.  (See the
  267.         command line syntax).
  268.     2 - Changing to the directory where SELL'EM is located.
  269.     3 - Make a BBS log file entry, if desired.
  270.     4 - Execute SELL'EM.
  271.     5 - Changing back to a subdirectory that's safe for BBS operations.
  272.     Unless your BBS can perform all these functions for you, I recommend
  273.     the batch file method.
  274.  
  275.     Edit the batch file TRAPDOOR.BAT (included in this ZIP package).  
  276.     Rename this batch file to a name that your BBS will recognize, place
  277.     it where the BBS will find it.
  278.  
  279.     Basically, that's it!  It will run for you and your callers.
  280.  
  281. 2 SAMPLE TRAP DOOR BATCH FILES
  282. ------------------------------
  283. @ECHO OFF
  284. CLS
  285. ECHO ******* Entering SELL'EM *******>> C:\BBS\DATA\BBS.LOG
  286. C:
  287. CD C:\BBS\SELL'EM
  288. COPY C:\BBS\DATA\MEGAHST1.DEF C:\BBS\SELL'EM > NUL
  289. SELL'EM -MH1
  290. CD C:\BBS\UPLOADS
  291.  
  292.     or
  293.  
  294. @ECHO OFF
  295. CLS
  296. ECHO ******* Entering SELL'EM *******>> C:\BBS\DATA\BBS.LOG
  297. C:
  298. CD C:\BBS\SELL'EM
  299. SELL'EM -MH1 C:\BBS\DATA
  300. CD C:\BBS\UPLOADS
  301.  
  302. AD PLACEMENT SCREENING
  303. ----------------------
  304.     This feature takes control of who may place an ad, and how many.
  305.     With Ad Placement Screening operational, SELL'EM may be run as
  306.     a business.  Placement of ads may be controlled globally, or
  307.     individually, or both!
  308.  
  309.     Example files for implementing Ad Placement Screening are found
  310.     in OPTIONAL.ZIP.
  311.  
  312.     Ad Placement Screening is activated by a text file. To control all
  313.     databases globally, use the file SELL'EM.APS, and place it in the
  314.     same directory as SELL'EM.EXE.  To control individual databases,
  315.     use the file [database name].APS.  The Ad Placement Screening file
  316.     for "AUTO.DAT" would be called "AUTO.APS", and exists in the same
  317.     directory as "AUTO.DAT".
  318.  
  319.     These .APS files all have the same format.  The caller's name is
  320.     followed by a semicolon, then the number of ads he/she is authorized
  321.     to place.  Also, if EVERYONE is to be allowed to place a certain
  322.     number of ads, use the word DEFAULT in place of the name.
  323.  
  324.     For example:
  325.  
  326. DEFAULT;2
  327. CARL SAGERQUIST;5
  328. BILL CLINTON;4
  329.  
  330.     In this example, anyone may place up to 2 ads, but Carl Sagerquist
  331.     may place up to 5.  Bill Clinton may place 4.  If no one is to place
  332.     any ads (until they pay for them), define the default as 0 (zero),
  333.     i.e. DEFAULT;0
  334.  
  335.     If a caller is to be allowed to place 5 ads total, scattered
  336.     within all existing databases, activate Ad Placement Screening
  337.     by placing the text file SELL'EM.APS into the directory where
  338.     SELL'EM.EXE is located.  Place this caller's name into the file
  339.     like this:  CARL SAGERQUIST;5
  340.  
  341.     If Ad Placement Screening is to be activated only for 1 database,
  342.     place the database's .APS file into the same directory as the
  343.     database file is located.  Again, the data file CARS.DAT would
  344.     require CARS.APS and is colocated with the database file.  This
  345.     file will not affect the other databases, even if global screening
  346.     is activated.
  347.  
  348.     It is possible to activate Ad Placement Screening globally through
  349.     SELL'EM.APS, and then control another database separately!  The
  350.     ads placed within the individually screened database are not
  351.     counted toward the ads placed globally.  This allows you to control
  352.     the majority of your databases as free ads, and charge for placement
  353.     into other databases.  Its up to you!
  354.  
  355.     If a caller is denied access to place an ad, the text in the file
  356.     SELL'EM.CTL is displayed.  Place this file in the directory where
  357.     SELL'EM.EXE is located.  In color mode, the Business Card box and
  358.     the Description box is overwritten.  In noncolor, the text is
  359.     displayed just like another ad.  When a key is pressed, the previous
  360.     ad is redisplayed.  Text to be placed into the Business Card box
  361.     is prefixed with the string "HOST;" followed by the text to be
  362.     displayed.  Text to be placed into the Description box is prefixed
  363.     with the string "REASON;" followed by the text to be displayed.
  364.  
  365.     Up to 8 lines can be defined with the "HOST;" string for the
  366.     Business Card box, first four being 31 characters long, last two
  367.     being 14 characters, all are centered in the box automatically.
  368.     Convention calls for this text to be the Host System's information,
  369.     ie. BBS name, sysop name, two address lines, and two phone numbers.
  370.  
  371.     Up to 9 lines can be defined with the "REASON;" string for the
  372.     Description box, all being up to 33 characters long, left justified.
  373.     Convention calls for this text to be the explanation why the caller
  374.     cannot place the ad.
  375.  
  376.     Example of SELL'EM.CTL:
  377.  
  378. HOST;The S M E Support Board
  379. HOST;Carl Sagerquist
  380. HOST;1414 W. Kerrick St.
  381. HOST;Lancaster, Ca. 93534-2225
  382. HOST;Contact your Sysop through this
  383. HOST;address for authorization.
  384. HOST;Unlisted
  385. HOST;(805) 723-6908
  386. REASON;   Advertisement Rate Schedule
  387. REASON;
  388. REASON;1  to  5 ads for 3 months:  $5.00
  389. REASON;6  to 10 ads for 3 months: $10.00
  390. REASON;10 to 15 ads for 3 months: $15.00
  391. REASON;
  392. REASON;Please advise  the Sysop  of your
  393. REASON;desire to place an ad. Payment is
  394. REASON;required in advance.  Thank You!!
  395.  
  396.     To deactivate Ad Placement Screening, just remove all the .APS files.
  397.  
  398.     Note:  The Sysop (as defined in SELL'EM.REG) is exempt from the 
  399.            screening.
  400.  
  401. ON-LINE OPERATION
  402. -----------------
  403.     SELL'EM will operate in monochrome mode, or ANSI color mode.  Either
  404.     way, the operation is identical.  Only the appearance is different.
  405.  
  406.     At the DATABASE MENU, (the opening screen), choose a database to
  407.     view or manipulate.  The <ENTER> key, or the <ESC> key will exit
  408.     back to the BBS.  Type the number of the database displayed, and
  409.     you will begin viewing the records within that database.
  410.  
  411.     Once into a database, the menu allows for many choices:
  412.  
  413.     [A]dd - - - - - Allows for adding a new advertisement (record).
  414.             The "Business Card" gets filled first, then the
  415.             description.  The "Description" allows for 8 lines
  416.             of 33 characters.  The time that the ad was placed
  417.             is displayed with each record.  Upon completion of
  418.             the new ad, the caller is prompted to upload a
  419.             file.  See "[T]ransfer" for file transfer details.
  420.  
  421.         NOTE:   Please notice that the name on the "Business Card" 
  422.             need not be the name of the person entering the ad.
  423.             This allows a caller to place an ad for a friend or
  424.             neighbor.  The actual record in the database file
  425.             will contain the name of the person who placed the
  426.             ad along with of the sysop's name.  If the ad is 
  427.             profane or offensive, view the database file with an
  428.             ASCII text editor.  You'll find the culprit's name!
  429.             This file is a binary file, so if you attempt to edit
  430.             with the ASCII editor, the database will be destroyed.
  431.             DO NOT SAVE CHANGES to the database file from an
  432.             ASCII editor!
  433.  
  434.     [D]elite  - - - Allows only the "Originator" (the person who placed
  435.             the ad) or the sysop to delete the record.  Actually,
  436.             the record is only MARKED as deleted.  The sysop can
  437.             view all records marked as DELETED.  The "Originator"
  438.             can view only those DELETED records that he/she placed.
  439.             Only the sysop can physically REMOVE these records from
  440.             the database file, explained later.  Marking them as 
  441.             "DELETED" inhibits other callers from viewing the
  442.             record.  
  443.  
  444.         NOTE:   The name of the "Originator" and the sysop are placed
  445.             into the database record.  This way, they can be
  446.             recognized for the Delete, Undelete and Edit functions.
  447.             The sysop is the person to whom SELL'EM is registered,
  448.             as defined in SELL'EM.REG.
  449.  
  450.     [U]ndelete  - - Records marked as "DELETED", may be "UNDELETED" by
  451.             the "Originator" or the sysop only.  This restores
  452.             them to the public view.
  453.  
  454.     [C]hange Database
  455.             Returns to the Database Menu, to allow viewing
  456.             another database of advertisements.  <ESC> performs
  457.             the same task.
  458.  
  459.     [E]dit  - - - - Allows the "Originator" or the sysop the ability to
  460.             alter the data in the record.  Entering 'E' at the
  461.             prompt places you into the "EDIT SELECT" mode.  The 
  462.             "EDIT SELECT" feature begins at the first item (field)
  463.             of the ad, the business name.  In the ANSI color mode,
  464.             the EDIT MENU is displayed, then the selected field to 
  465.             edit will flash.  In monochrome mode, the field is 
  466.             displayed below the EDIT MENU.  You must then choose
  467.             from the EDIT MENU:
  468.     ...[E]dit - - - Allows for editing that field.  The entire string of
  469.             characters must be typed.
  470.     ...[N]ext - - - Move to (select) the next field for possible editing.
  471.     ...[P]revious - Move to (select) the previous field for possible
  472.             editing.
  473.     ...[S]ave - - - Saves the edited record.
  474.     ...[Q]uit Edit- Exits the edit function.  If there were any changes
  475.             to the record, you are prompted to save.  You may
  476.             save the new data, or restore the old data.
  477.  
  478.     [T]ransfer  - - Allows for file transfer through the File Transfer Menu.
  479.     ...[U]pload - - Allows for the "Originator" or the sysop to upload
  480.             a file to the advertisement record.  The originator
  481.             may upload to the ad when it is placed, or at a later 
  482.             date.  If the uploaded file replaces a previously
  483.             uploaded file, the prior file is deleted.
  484.         Note:    When operated in Local Mode, the [U]pload feature only
  485.             allows entry of the file name into the advertisement
  486.             record.  The sysop is then responsible to place a copy
  487.             of the file into the appropriate directory.  If the
  488.             simulated upload replaces a previously uploaded file,
  489.             the prior file is deleted.
  490.     ...[D]ownload - Allows for any caller to download the file sent by
  491.             the person who placed the ad.
  492.         Note:    With [U]pload, the caller is prompted for the filename
  493.             and the protocol.  On [D]ownload, the caller is 
  494.             prompted for the protocol only.  On uploading, if
  495.             (by chance) a file already exists with the same name
  496.             entered, the caller is notified, and the transfer
  497.             procedure is stopped.
  498.     ...[R]emove - - Allows for the "Originator" or the sysop to remove
  499.             the file from the advertisement record AND FROM THE 
  500.             DISK.  Other callers cannot effect any change to 
  501.             someone else's advertisement.
  502.  
  503.     [N]ext  - - - - Allows for viewing the next record.  All records 
  504.             loaded from the database file are numbered.  Just
  505.             below the address on the business card, there's a
  506.             number like this: "03 of 73" meaning record 3 of
  507.             73 available records.  Maximum records is 100 per
  508.             database.
  509.  
  510.     [P]revious  - - Allows for viewing the previous record.
  511.  
  512.     [S]earch  - - - Allows for searching for a particular string of
  513.             characters from the record.  This function opens a
  514.             small menu while its searching the active records:
  515.     ...[N]ext - - - If a record is found, the search pauses, and displays
  516.             this record.  Use this function to continue searching
  517.             the remainder of the records (view the next one).
  518.     ...[S]earch - - This allows for typing in a new string of characters
  519.         String      to search for.  The search begins at the first record.
  520.             If the search does not find the string requested, the
  521.             function just exits, returning control where you
  522.             started.
  523.     ...[Q]uit - - - Stops the search at the current record.
  524.  
  525.     [G]oto Record # 
  526.             Allows for viewing a particular record number.  If
  527.             the number entered is beyond the available records
  528.             (below 0 or over the last record number), the record
  529.             displayed will either be the first or last record.
  530.  
  531.     [F]orward to Next Database
  532.             This feature places you into the next database.  If
  533.             you're viewing database 1, pressing 'F' will move
  534.             you to database 2, without redrawing the database
  535.             menu or the ad viewing screen.  If you're in the
  536.             last database, 'F' returns you to the beginning.
  537.             Think of it as scrolling you through, clockwise.
  538.  
  539.     [R]eturn to Previous Database
  540.             This feature places you into the previous database.
  541.             If you're viewing database 5, pressing 'R' will move
  542.             you to database 4, without redrawing the database
  543.             menu or the ad viewing screen.  If you're in the
  544.             first database, 'R' sends you to the end.  Think of
  545.             it as scrolling you through counterclockwise.
  546.  
  547.     [Q]uit  - - - - Exits program back to the BBS, skipping the Database
  548.             Menu.
  549.  
  550. REMOVING RECORDS
  551. ----------------
  552.     When the command line switch "/COMPRESS" is invoked, all the database
  553.     files are searched.  The records marked "DELETED" are physically
  554.     removed from the files.  The command looks like this:
  555.  
  556.     SELL'EM /COMPRESS
  557.  
  558.     Place this command into your BBS event batch file, and your databases
  559.     of advertisements will maintain themselves.  As a sysop, you might
  560.     need to prune it occasionally.  "Originators" of the ads might forget
  561.     about them.
  562.  
  563. TECHNICAL
  564. ---------
  565.     SELL'EM.EXE performs its own COM port I/O, no redirection programs
  566.     are required.  COM1 through COM4 are supported.
  567.  
  568.     With high speed modems and their ability to perform data compression,
  569.     the Data Terminal Equipment (DTE) must feed the modem faster than the
  570.     modem feeds the phone line.  This is where the DTE gets "locked" at
  571.     rates like 19200 or 38400 baud.  To ensure the modem's buffer does
  572.     not get overwritten, RTS/CTS transmit flow control (hardware flow
  573.     control) is used by SELL'EM.  The modem initialization string for the
  574.     BBS must turn this function on.  Some modems use the command AT&B1 to
  575.     unconditionally lock the DTE, or AT&B2 to lock the DTE for 9600 and
  576.     greater baud rate callers, and unlocked for 2400 and lower.  Also,
  577.     some modems use the command AT&H1 to enable the hardware flow control.
  578.     Check your modem owner's manual.
  579.  
  580.     Comm port functions include buffered send/receive input and output,
  581.     interrupt driven receive.  If installed, the 16550 UART's 16 character
  582.     FIFO buffer is supported for faster transmission speed.  Works well
  583.     with earlier UARTs, also.  
  584.  
  585.     Carrier Detect is monitored.  If a caller disconnects (hangs up) the
  586.     phone line, SELL'EM will automatically exit, and return to the BBS.
  587.     The BBS is expected to then perform its own reset.
  588.  
  589.     User input time is monitored.  A caller has two minutes (120 seconds)
  590.     to read the advertisement, or make a menu choice.  Basically, the
  591.     user must strike a key at least once every 120 seconds or SELL'EM 
  592.     will exit to the BBS.
  593.  
  594.     Incoming characters are checked for error conditions.  If a FRAMING
  595.     error, PARITY error, or DATA OVERRUN error occurs, SELL'EM.EXE will
  596.     recognize the error and exit to the BBS.
  597.  
  598.     The User BREAK is recognized.  Once received (see previous paragraph)
  599.     SELL'EM immediately breaks operation, and exits to the BBS.  The
  600.     User BREAK signal is 0800 hex (0x0800), not <Ctrl> C.  Some terminal
  601.     programs send the User BREAK with the '<Alt> B' key combination.
  602.  
  603.     All files used by SELL'EM are opened in SHARE mode.  This allows
  604.     for the program to be accessed by more than one caller at a time.
  605.     When SELL'EM writes to the data files, file locking is first 
  606.     performed.  This technique protects the system from failure in case
  607.     one node tries to read a file at the same time another node is writing
  608.     to it.
  609.  
  610.     On exit of SELL'EM, ERRORLEVELs are returned.  Your batch file can
  611.     check the ERRORLEVEL and determine what has happened.  The following
  612.     is a list of SELL'EM's ERRORLEVELs and their meaning:
  613.  
  614.     ERRORLEVEL   0        Normal exit from normal operation.
  615.     ERRORLEVEL   5        Normal exit from User BREAK.
  616.     ERRORLEVEL  10        COMPRESS function performed successfully.
  617.     ERRORLEVEL  15        Error exit: Keyboard time out.  No user input 
  618.                 for 120 seconds.
  619.     ERRORLEVEL  20        Error exit: Carrier Lost.  Telephone line was
  620.                 disconnected.
  621.     ERRORLEVEL  25        Error exit: Incomming character framing error.
  622.     ERRORLEVEL  26        Error exit: Incomming character parity error.
  623.     ERRORLEVEL  27        Error exit: UART Receive Data Register overrun.
  624.     ERRORLEVEL  28        Error exit: Receive Buffer data overrun.
  625.     ERRORLEVEL  30        Error exit: Error on the command line.
  626.     ERRORLEVEL  40        Error exit: Memory allocation: out of "HEAP" 
  627.                 memory.
  628.     ERRORLEVEL  90        Error exit: Unsupported COM port. 
  629.                 COM1: through COM4: only.
  630.     ERRORLEVEL 100        Error exit: Unable to read the BBS file.
  631.     ERRORLEVEL 110        Error exit: Unable to read SELL'EM.DBM, 
  632.                 the database menu file.
  633.     ERRORLEVEL 120        Error exit: Unable to open or write to the 
  634.                 temporary files used in the /COMPRESS feature.
  635.  
  636.     The best way to check for ERRORLEVELs is through a batch file.  Add
  637.     a line like the one below in the batch file that calls SELL'EM:
  638.  
  639. IF ERRORLEVEL 100 IF NOT ERRORLEVEL 101 ECHO *** SELL'EM cannot find the BBS file! >> C:\BBS\DATA\BBS.LOG
  640.  
  641.     Review your DOS manual for more information on ERRORLEVELs.
  642.  
  643. REGISTRATION
  644. ------------
  645.     SELL'EM.EXE is not public domain, but Shareware.  You are granted a
  646.     limited license to operate this program for a test period of 30 days.
  647.     Completing this test period, if you decide to continue its use, you
  648.     must register with the programmer.  The registration fee is $19.95.
  649.     For a printed manual, add $5.00 plus $1.00 shipping and handling.
  650.     California residents add 8.25% sales tax ($19.95 + $1.65, or
  651.     $24.95 + $2.06 + $1.00).  The file REGISTER.FRM is included for your
  652.     convenience.
  653.  
  654.     Make a check or money order payable to:
  655.  
  656.     Sagerquist Micro Engineering
  657.     1414 W. Kerrick St.
  658.     Lancaster, Ca. 93534
  659.     BBS: (805) 723-6908
  660.  
  661.     Payment is a one time investment which allows you all further revisions
  662.     at no extra expense.
  663.  
  664.     Registration of SELL'EM will increase its usefulness for you and your
  665.     BBS callers.  The database menu will expand from four to a maximum
  666.     of twenty!  The available records will expand from five to a maximum
  667.     of one hundred!  The credit banner stating "Unregistered" you see on
  668.     exit will go away.
  669.  
  670.     Please distribute this program, i.e. place it in your communications
  671.     program download area for others to evaluate and use.  Your comments
  672.     on this program are gladly accepted (requested, actually) at the data
  673.     number above.  Please use the BBS as our communication vehicle.  I
  674.     will gladly respond to all comments through the BBS.
  675.  
  676. COPYRIGHT
  677. ---------
  678.     This program is protected under US Federal Copyright laws.  No
  679.     alteration of the executable program file is authorized without
  680.     expressed written permission from Sagerquist Micro Engineering.
  681.  
  682. DISCLAIMER
  683. ----------
  684.     This program is distributed as is.  No warranty, either expressed or
  685.     implied is offered and the programmer is not responsible for any
  686.     damages or expenses that may occur through the use of this program.
  687.     The user shall determine its suitability.  Extensive testing has been
  688.     performed and every effort has been made to ensure satisfactory 
  689.     performance prior to release.  Please communicate any difficulties 
  690.     with the programmer through the BBS at (805) 723-6908.  Any problems
  691.     received will be treated as a top priority.
  692.  
  693. CREDITS
  694. -------
  695.     Many thanks to Mr. Jeff Silks of California City, Ca. (BBS (619) 
  696.     373-7058) who tested every function of SELL'EM.EXE more thoroughly
  697.     than I thought possible.  The direction and suggestions he gave
  698.     were above and beyond anything I could have asked for, and SELL'EM.EXE
  699.     is a better program to show for it.  Thanks, Jeff!  I owe you one!
  700.  
  701.     Many thanks to Mr. Bill Duffy of Indio, Ca., (BBS (619) 342-6871) who
  702.     brought a compatibility problem to my attention.  Mustang Software's
  703.     WILDCAT! BBS version 3.0 now uses DOOR.SYS rather than CALLINFO.BBS,
  704.     but in a format different than others.  Thanks to his persistence,
  705.     SELL'EM now works well with WILDCAT! v3.0 and earlier versions.  
  706.     Thanks, Bill!
  707.  
  708.     Thanks to Jack Cross of Sheppard AFB, Tx. (BBS (817) 855-1526), and
  709.     Charles Bell of West Palm Beach, Fl. (BBS (407) 731-1675) for 
  710.     advising me of the errors to v1.2, and for testing v1.3 prior to
  711.     release.
  712.  
  713.     Thanks to Debbie Engwiller of Rosamond, Ca. (BBS (805) 256-6447)
  714.     for her many efforts, suggestions, comments and direction during
  715.     on-line testing of version 1.4.
  716.  
  717.     Thanks to Gloria L. Short of Houston, Tx. (BBS (713) 467-9103) for
  718.     her input, making SELL'EM compatible with TRIBBS, through both
  719.     DOOR.SYS and TRIBBS.SYS.
  720.  
  721.     Thanks to Kent Craig of Vincennes, In. (BBS (812) 886-9269) for his
  722.     input and close attention to some fine details he discovered in the
  723.     program and the transfer batch files during extensive in-line testing
  724.     of version 1.4.
  725.  
  726.     Thanks to Phil Allamong of Quarryville, Pa. (BBS (717) 786-0715) for
  727.     notification of the RTS/CTS flow control problem in v1.4, and for
  728.     testing v1.6 prior to release.  I appreciate your persistence!
  729.  
  730.     Thanks to David Swift of Waldorf, Md. (who operates a private 
  731.     corporate BBS) for final testing of SELL'EM v1.5 the night of
  732.     release.  Your     final confirmation is what I needed!
  733.  
  734.     Thanks to Michael Carnell of Charleston, SC. (BBS (803) 766-7228)
  735.     for suggesting what has become "Ad Placement Screening", allowing
  736.     the BBS sysop to operate SELL'EM as a business.
  737.  
  738.     Thanks to Scott Hunter of Mustang Software, Bakersfield, Ca., for
  739.     his guidance on file locking, and file share programming for the
  740.     multi-tasking environment.
  741.  
  742.     Thanks to Tom McElvy of Norfolk, Va. (BBS (804) 490-LUST) also for
  743.     pushing the "Ad Placement Screening" functions, and for his extensive
  744.     testing in a miltitasking, multinode BBS, network environment, 
  745.     using 8088, 80286, 80386, and 80486 equipment.  Version 1.7 could
  746.     not have been completed without his efforts.  My hat if off!
  747.  
  748.     Thanks to Byron Hill of Memphis, Tn. (BBS (615) 298-1443) for
  749.     requesting the sound switch /S:.  Now, you can turn off that "end
  750.     or beginning of database beep" that keeps you up at night!
  751.  
  752. HISTORY
  753. -------
  754.     07/15/93 - Version 1.8 - Returned to interrupt driven transmit.
  755.                  Finally found that transmitter bug!
  756.  
  757.                  Sysop's name effectively removed from the
  758.                  database.  The sysop's name is still there,
  759.                  its just not used any more.  Database files
  760.                  will remain the same for now.
  761.  
  762.                  Command line switches overhauled.  "/B:...",
  763.                  "/D:...", and "/S:..." switches may be placed
  764.                  in any order.  "-COMPRESS" is now "/COMPRESS".
  765.  
  766.                  Database name placed below business card and
  767.                  description in ASCII (non-color) display.
  768.  
  769.     02/11/93 - Version 1.7 - Added "Ad Placement Screening" so SELL'EM
  770.                  can be operated as a business.
  771.  
  772.                  Revised all file access to "shared" access
  773.                  with locked/unlocked files.  This allows
  774.                  for SELL'EM to operate cleanly in a multi-
  775.                  tasking environment (multi line BBS).
  776.  
  777.                  Fixed bug in GOTO function: when a number
  778.                  greater than the amount of records is typed,
  779.                  the record pointer was beyond the amount
  780.                  of records, pointing to a record that did
  781.                  not exist.
  782.  
  783.                  Adjusted code in File Transfer function that
  784.                  may have been unreliable.
  785.  
  786.                  Fixed problem caused when remote keyboard
  787.                  types a curser arrow.
  788.  
  789.                  Adjusted the Edit function to allow the
  790.                  ANSI color caller to see which field is
  791.                  being edited, even if the field is blank.
  792.  
  793.                  Command line now may define the directory
  794.                  where the BBS's caller info file is located.
  795.  
  796.     11/10/92 - Version 1.6 - Comm routines revised again.  For reliability,
  797.                  transmit is now "polled" while receive is
  798.                  interrupt driven.  Versions 1.4 and 1.5 would
  799.                  crash if the caller would try to type ahead
  800.                  while characters are being transmitted.
  801.  
  802.                  Fixed nasty bug that caused system to crash
  803.                  when two ads are in the database and the
  804.                  second was deleted, then removed (with the
  805.                  -COMPRESS feature).  A memory pointer was not
  806.                  being "NULL'ed" out.
  807.  
  808.     10/27/92 - Version 1.5 - Added RTS/CTS (hardware) transmit flow
  809.                  control recognition for operations with
  810.                  high speed modems and "locked" DTE rates.
  811.  
  812.     10/20/92 - Version 1.4 - Added support for multi-line BBS's through
  813.                  the BBS files MEGAHST#.DEF and DORINFO#.DEF
  814.                  where the # is the node number.
  815.  
  816.                  Added file transfer (through external 
  817.                  protocol programs) allowing each record to
  818.                  have an attached file available.
  819.  
  820.                  Revised for compatibility with TRIBBS
  821.                  through TRIBBS.SYS, and DOOR.SYS.
  822.  
  823.                  Maximum amount of records per database
  824.                  increased to 100.
  825.  
  826.                  Comm port routines fine tuned, again.
  827.  
  828.     08/01/92 - Version 1.3 - "Go to Record (number)" function added.
  829.  
  830.                  ANSI code sequences reduced for efficiency.
  831.  
  832.                  Comm port routines fine tuned.  Fixed bug
  833.                  that caused v1.2 to freeze.
  834.  
  835.                  Database Menu name and copyright banner may
  836.                  now be customized through the file 
  837.                  SELL'EM.NAM.
  838.  
  839.     07/08/92 - Version 1.2 - Comm port routines overhauled.  Now supports
  840.                  the 16550 UART's 16 character FIFO buffer as
  841.                  well as earlier UARTs.
  842.  
  843.                  Input and output are now both buffered and
  844.                  interrupt driven.
  845.  
  846.                  More thorough error checking now takes place.
  847.  
  848.                  Unregistered, the evaluating sysop's available
  849.                  databases is increased from 2 to 4.  After
  850.                  registration, up to 20 databases may be
  851.                  defined.
  852.  
  853.                  In the search function, the record number is
  854.                  included in the search.  If the search string
  855.                  is "14", all records are searched for the 
  856.                  two characters together "14".  It still may
  857.                  not go directly to record 14.
  858.  
  859.                  Revised for compatibility with RBBS v17 and
  860.                  its DORINFO1.DEF format.
  861.  
  862.     06/15/92 - Version 1.1 - Revised for compatibility with WILDCAT! v3.0
  863.                  and its DOOR.SYS format.
  864.  
  865.     03/28/92 - Version 1.0 - First release, awaiting comments and 
  866.                  suggestions.
  867.