home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TRIDV230.ZIP / TRIDOOR.DOC < prev    next >
Encoding:
Text File  |  1992-05-25  |  52.9 KB  |  1,323 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.                        T R I U M P H   S O F T W A R E
  13.  
  14.  
  15.                                   Presents
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.            ░██████████        ░██   ░███████
  23.            ░█  ░██  ░█               ░██  ░██
  24.                ░██     ░█░██  ░██    ░██  ░██  ░███   ░███  ░█░██
  25.                ░██      ░█ ░█  ░█    ░██  ░██ ░█  ░█ ░█  ░█  ░█ ░█
  26.               ░████    ░██    ░███  ░███████   ░███   ░███  ░██
  27.  
  28.  
  29.  
  30.  
  31.                           An On-Line Door Support Unit
  32.                       For use with Turbo Pascal 5.5 and 6.0
  33.  
  34.  
  35.  
  36.  
  37.  
  38.                     TriDoor Written by Christopher M. Russo
  39.            TriComm Communications Support Written by Jeremy H. DuBois
  40.  
  41.          TriDoor, TriComm (c)1992 Triumph Software, All Rights Reserved.
  42.  
  43.  
  44.  
  45.  
  46.          PCBoard is a Registered Trademark of Clark Development Co, Inc.
  47.            QuickBBS is a Registered Trademark of the QuickBBS Group.
  48.             Turbo Pascal is a Registered Trademark of Borland, Inc.
  49.  
  50.  
  51.  
  52.                      Triumph Software is not affiliated
  53.             either Clark Development Co. Inc., The QuickBBS Group
  54.                        or Borland, Inc. in any way.
  55.  
  56.  
  57.              Triumph BBS : (508)263-4247 / FidoNet : 1:322/265
  58.  
  59.  
  60.  
  61. Triumph Software - TriDoor Documentation                                  pg. i
  62.  
  63.  
  64.  
  65.  
  66.  
  67.                                  DISCLAIMER
  68.  
  69.  
  70.      Triumph Software and  the  employees/programmers  in  conjunction with
  71.   and/or affiliated  with Triumph Software  can  not  be  held  responsible
  72.   for  the  condition  of any  software  received  through any  non-postal/
  73.   non-parcel means.  
  74.  
  75.      Nor  can  said persons  be held  responsible for  any damage caused to
  76.   media or hardware as a result of the use of any of our products.
  77.  
  78.      Triumph Software and  it's employees and  associates would like  it to
  79.   be known,  however, that  all of  their  products are  thoroughly  tested
  80.   before  leaving  our  offices.  It  is  only  in the deepest faith in our
  81.   own product that any such software is released to the public.
  82.  
  83.      Triumph  Software reserves  the right  to  change  any  documentation,
  84.   disclaimer,  licensing information  or registration  procedures and costs
  85.   at any time for any reason with no prior warning or notice.
  86.  
  87.  
  88.  
  89. Triumph Software - TriDoor Documentation                                pg. ii
  90.  
  91.  
  92.  
  93.  
  94.  
  95.                          LIMITED LICENSING AGREEMENT
  96.  
  97.  
  98.      The holder of  the  unregistered TriDoor package  is allowed a limited
  99.    usage period of 30 (thirty)  days,  wherein  he  or she  may incorporate
  100.    the unit  in any program  that he or she develops as long as the program 
  101.    incorporating the  TriDoor unit is not distributed  in any manner at any 
  102.    time.  After  the thirty day period, the holder of the unregistered copy
  103.    of the TriDoor  package must register the software to be allowed further
  104.    use of TriDoor.
  105.  
  106.      A private registered  copy may be obtained by filling  out the TriDoor
  107.    registration form and sending both the registration form and  $30.00, in
  108.    the form  of a  check or  money order, to Triumph Software.  The private
  109.    copy will  allow the registered  owner  to produce  programs  using  the
  110.    TriDoor  unit  and  distribute  them  as long as  the registered copy of
  111.    TriDoor  is  not  included  in  the  the  package,  no  compensation  is
  112.    obtained in any way from the distribution of the  software incorporating
  113.    the TriDoor unit, and Triumph Software is given ample credit as depicted
  114.    in the  final chapter  of  this document.  The  registered  copy  of the
  115.    TriDoor unit must not be distributed in any way other than as a compiled
  116.    portion of a program or software produced by the registered copy holder.
  117.  
  118.      A  commercial  registered  copy  may  be  obtained  by filling out the
  119.    TriDoor  registration  form and sending  both the registration  form and
  120.    $100.00, in the form of  check or  money order, to Triumph Software. The
  121.    commercial copy  will allow  the registered  owner  to  produce programs
  122.    using the TriDoor unit and distribute them.  This  copy  also allows the
  123.    holder of  the  registered  copy to  obtain legal  compensation  for the
  124.    program incorporating the TriDoor package.  The holder of the commercial
  125.    registered  copy  must include  acceptable credit  in  the documentation
  126.    of his or  her  program as  further  explained  in  the final chapter of
  127.    this document.  The  registered copy  of the  TriDoor unit  must  not be
  128.    distributed in any way other than as a compiled  portion of a program or
  129.    software produced by the registered copy holder.
  130.  
  131.      An individual copy must be registered for each  individual company and
  132.    person.  The  only exception  is in  the case  of a  company  owned by a
  133.    person in  which case the copy may be registered for both in the case of
  134.    a commercial copy.
  135.  
  136.      Triumph Software reserves the right to  revoke registration priviliges
  137.    either temporarily  or permanently if the conditions of the registration
  138.    are not properly met by the holder of the registered TriDoor package.
  139.  
  140.      Triumph Software reserves the right to use the registered owners name,
  141.    company and/or product  created incorporating the TriDoor unit in any of
  142.    Triumph Software's advertising of any type.
  143.  
  144.      Registered  copy holders  will be  entitled to  minor  upgrades of the
  145.    TriDoor package at a minimal processing  and materials fee  of $5.00 per
  146.    upgrade.  Major upgrades can be obtained at a cost of $12.00 for private
  147.    copies and $24.00 for commercial copies.
  148.  
  149.  
  150.  
  151.  
  152. Triumph Software - TriDoor Documentation                                pg. iii
  153.  
  154.  
  155.  
  156.  
  157.  
  158.                            TABLE OF CONTENTS
  159.  
  160.  
  161.      How to Use This Manual . . . . . . . . . . . . . . . . . . . . . 001
  162.  
  163.      Why Use TriDoor. . . . . . . . . . . . . . . . . . . . . . . . . 002
  164.  
  165.      Features of TriDoor. . . . . . . . . . . . . . . . . . . . . . . 003
  166.  
  167.      What's New This Version. . . . . . . . . . . . . . . . . . . . . 004
  168.  
  169.      Programming With TriDoor . . . . . . . . . . . . . . . . . . . . 005
  170.  
  171.      Programming Tips . . . . . . . . . . . . . . . . . . . . . . . . 007
  172.  
  173.      Locked Communications Support. . . . . . . . . . . . . . . . . . 008
  174.  
  175.      Accessable Global Variables. . . . . . . . . . . . . . . . . . . 009
  176.  
  177.      Global Constants . . . . . . . . . . . . . . . . . . . . . . . . 010
  178.  
  179.      Command Summary  . . . . . . . . . . . . . . . . . . . . . . . . 011
  180.  
  181.      Acceptable Credit in Programs and Documentation. . . . . . . . . 017
  182.  
  183.      Reserved Words . . . . . . . . . . . . . . . . . . . . . . . . . 018
  184.  
  185.      Who to Contact . . . . . . . . . . . . . . . . . . . . . . . . . 019
  186.  
  187.      History of TriDoor . . . . . . . . . . . . . . . . . . . . . . . 020
  188.  
  189.      Other Products by Triumph Software . . . . . . . . . . . . . . . 021
  190.  
  191.      Things to Come ("The Workbench") . . . . . . . . . . . . . . . . 022
  192.  
  193.      Join Our FidoNet Mailing List. . . . . . . . . . . . . . . . . . 023
  194.  
  195.      A Comment on Quality . . . . . . . . . . . . . . . . . . . . . . 024
  196.  
  197.  
  198.  
  199.  
  200.  
  201. Triumph Software - TriDoor Documentation                                pg. 001
  202.  
  203.  
  204.  
  205.  
  206.  
  207.                           HOW TO USE THIS MANUAL
  208.  
  209.  
  210.      First and  most importantly is  that you  read the  entire manual from
  211.    front  to back.  As  easy as  TriDoor is  to use  it will  be absolutely
  212.    useless to you if you don't at least read most of it, and in addition to
  213.    that  there are also many hints and refining  tips in this document that
  214.    will help you to truly take command of this software.
  215.  
  216.      It is also a very good idea to print this  document out.  It  is  made
  217.    especially for printers  allowing for page length  and form feeds and so
  218.    on.  Having a hard  copy of the text in your hand while you work on your
  219.    program will prove to be invaluable.
  220.  
  221.      As far as the actual text goes, you need to keep a  few things in mind
  222.    about my format.
  223.  
  224.        * Anything followed by a "()" is a function or procedure.
  225.          i.e. print(), writeln() and readquick()
  226.  
  227.        * Anything contained in "<>"s is a TriDoor variable acccessable
  228.          by you, the programmer.
  229.          i.e. <stats>, <queueoff> and <quit>
  230.  
  231.      The rest is simply in the text itself.  Good luck and happy reading.
  232.  
  233.  
  234.  
  235.  
  236. Triumph Software - TriDoor Documentation                                pg. 002
  237.  
  238.  
  239.  
  240.  
  241.  
  242.                              WHY USE TRIDOOR?
  243.  
  244.  
  245.      TriDoor is the  most advanced,  efficient  and easy-to-use  utility of
  246.    it's kind available  on the software  market today.  It allows  even the
  247.    novice  Borland  Turbo Pascal  programmer  to  create  fully-functioning
  248.    doors,  on-line  programs and utilities  in a  matter of minutes without
  249.    ever having to  delve  into  the hundreds  of  texts  on  communications
  250.    programming.
  251.  
  252.      In addition  to having complete  communications  support  TriDoor also
  253.    comes equipped with many  other features which are extremely useful when
  254.    writing communications  applications.  Examples of  these are color ANSI
  255.    graphics controls,  user time  handling routines  and  many  Pascal-like
  256.    commands  such  as  print()  which is  the communications  equivelant of
  257.    write() and writeln().
  258.  
  259.      TriDoor is  flexible too!  With  the  exception of  a few  things here
  260.    and there (like the tell-tale chat mode) your  users may never even know
  261.    that you  did not write  the entire program- communications routines and
  262.    all.  You will see no  hard-coded error  messages,  forced configuration
  263.    files or annoying  restrictions that you did not develop yourself.  This
  264.    allows you to  use all  your programming  resources  the way YOU want as 
  265.    opposed to the way a toolkit may  have set them up.  A prime  example of
  266.    this is command line parameters; some toolkits  will force  you to enter
  267.    in the name  of a configuration  file on  the command line.  What if you
  268.    would rather enter in an IRQ setting or a user name?  What if you do not
  269.    want a configuration file?  TriDoor allows you to do as you will.
  270.  
  271.      The programming  possibilities  are endless- I  have  written  on-line
  272.    games,  archive  viewing  utilties,  text/ANSI  graphics  file  viewers,
  273.    "top ten list"  generators,  terminal  programs, SysOp  paging doors and
  274.    many MANY more.
  275.  
  276.      How many  times have you said to yourself, "This is truly an excellent
  277.    system I have running if  only I could add on a [blank] without changing
  278.    to a new  BBS  software..."?  Well, there  are a  few solutions  to this
  279.    problem:  You could switch BBS software which may give you a few options
  280.    you did not have before but you are also reducing yourself to rebuilding
  281.    a system  you have already put  probably hundreds  of hours of work into
  282.    and potentially compromising the quality of your user's environment -or-
  283.    you  could  download a  door  from your  local BBS  where you may find a
  284.    program to do what you need, but it  may  not  be  EXACTLY what you want
  285.    -or- you could use TriDoor to write your own!  You  could have  the door
  286.    you want, make  the changes you  need at ANY  time and have the pleasure
  287.    of having made it yourself.
  288.  
  289.      I frequently  find  myself saying, "If you cannot do  it with TriDoor,
  290.    then you  probably cannot do it."   I have only  scraped the  surface of
  291.    it's capabilties  and ease of use; the  rest is up to you.  You now hold
  292.    the power to make the doors,  on-line games and utilities  that you have
  293.    always wanted!
  294.  
  295.  
  296.  
  297. Triumph Software - TriDoor Documentation                                pg. 003
  298.  
  299.  
  300.  
  301.  
  302.  
  303.                            FEATURES OF TRIDOOR
  304.  
  305.  
  306.      TriDoor has  many  advanced and  VERY easy-to-use  features  which are
  307.    built  right in.  And  allthough  there are  so many  that  I  literally
  308.    cannot  remember ALL  of them, we are  still adding all the time so give
  309.    us a call so we can get you a copy of the latest version.
  310.  
  311.  
  312.         * Automatic set-up and support of communications ports
  313.         * Automatic reading and processing of DORINFO1.DEF and PCBOARD.SYS
  314.         * Easy to use commands such as PRINT and GETINPUT which will 
  315.           print to the local screen, and the comport if a carrier is 
  316.           detected
  317.         * Built-in chat mode with word-wrap and ANSI color graphics
  318.         * Boolean variable QUIT which is set to TRUE if ALT-H is
  319.           hit from the local keyboard- allows for programmer-defined
  320.           or non-existent "hang-up" procedures
  321.         * Easy forced "caps-lock", and "password-entry" (see "***"
  322.           instead of "hey")
  323.         * Length restriction available on input fields
  324.         * Built-in string capitalization, first letter capitalization and
  325.           easy integer/longint to string conversion available
  326.         * Built-in direct screen write functions
  327.         * Automatic status bar displaying time, name and baud rate
  328.         * Automatic on-line user time handling routines
  329.         * Built-in routines for clearing user's and local screen
  330.         * Built-in boolean response "Are you sure?" function
  331.         * Built-in user-page (>BEEP!< "The SysOp is paging you!" >BEEP!<)
  332.         * Automatic "Last Printed" memory (can be disabled)
  333.         * Command list status bar on local screen
  334.         * Auto-sensing of color/monochrome local screen
  335.         * Borland Turbo Pascal 5.5 AND 6.0 support
  336.         * Full color ANSI graphics support
  337.         * User on-line time modification   
  338.         * Auto-hangup (QUIT := TRUE) at time<1
  339.         * System messages in status bar  ("SysOp : User is being paged.")
  340.         * Ability to add support for ANY BBS system
  341.         * Ability to be run in multi-tasking environments such as
  342.           DESQVIEW and WINDOWS.
  343.         * Local disable/enable of remote user keyboard
  344.         * Fake line-noise from local console
  345.         * Ability to use non-standard IRQ/COMM port configurations
  346.         * Ability to change all communications parameters
  347.         * Locked communications port support
  348.         * Complete flow control support (XON/XOFF and CTS/RTS)
  349.  
  350.  
  351. Triumph Software - TriDoor Documentation                                pg. 004
  352.  
  353.  
  354.  
  355.  
  356.  
  357.                           WHAT'S NEW THIS VERSION
  358.  
  359.  
  360.        * PCBOARD.SYS (PCBoard 14.x) support
  361.        * Locked COMM port capability
  362.        * Complete software/hardware flow control  (XON/XOFF and CTS/RTS)
  363.  
  364.        * TOTALLY NEW DOCUMENTATION- We advise that you read it all.
  365.  
  366.        * You may now use non-standard communications settings.  In other
  367.          words you may assign any IRQ value along with any communications
  368.          port.  To do this all you need to do is fill in the appropriate
  369.          variables in the <stats> record before you call the setuptri()
  370.          function.  For example:
  371.  
  372.              stats.comport := COM1;           {* set up comport *}
  373.              stats.comp_interrupt := IRQ4;    {* set IRQ        *}
  374.              stats.comp_dbits := 8;           {* set data bits  *}
  375.              stats.comp_sbits := 1;           {* set stop bits  *}
  376.              stats.comp_parity := EVEN;       {* set parity     *}
  377.  
  378.              if ( setuptri ) then             {* call setup routine *}
  379.                begin
  380.  
  381.                            {* main program here *}
  382.  
  383.                end;
  384.  
  385.          For further discussion on this topic see the chapters entitled
  386.          PROGRAMMING WITH TRIDOOR and ACCESSABLE GLOBAL VARIABLES.
  387.  
  388.        * The readquick() function will now automatically determine parity
  389.          stop bits and data bits from information in the DORINFO1.DEF file
  390.          and fill in the appropriate <stats> record variables.
  391.  
  392.  
  393.  
  394. Triumph Software - TriDoor Documentation                                pg. 005
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                           PROGRAMMING WITH TRIDOOR
  401.  
  402.  
  403.      Creating doors  with TriDoor is  an astoundingly simple  process but a
  404.    couple  steps must  be taken in  each program you write in order for the
  405.    program to function  normally.  The  computer may  physically  "hang" if
  406.    these  few following procedures are not completed (but will usually just
  407.    drop out with a complaint about not being able to set-up properly.)
  408.  
  409.      A basic example of how to set-up  a simple program (EXAMPLE.PAS) comes
  410.    with this software package.  It is useful to refer  back to it from time
  411.    to time to get a better feel for how things work.
  412.  
  413.      The first thing you must do is fill in the <stats> record  with all of
  414.    the appropriate values necessary- these values are normally recorded for
  415.    you in a  file your BBS software creates when it exits to DOS.  Examples
  416.    of this type of file would be DORINFO1.DEF, DOOR.SYS or PCBOARD.SYS.
  417.  
  418.      If you run a BBS  that supplies the DORINFO1.DEF file, all you need to
  419.    do to fill in these values is  call upon the readquick() function.  This
  420.    will  read the DORINFO1.DEF file and get  most of the needed values from
  421.    it.
  422.  
  423.      If you run a BBS  that supplies a PCBoard Compatible 14.x  PCBOARD.SYS
  424.    file, all you  need to do to fill in the <stats> record is call upon the
  425.    readpcb() function.  Because of  the amount of  information contained in
  426.    this file, you will  not have  to supply  any other  data to the <stats>
  427.    record.
  428.  
  429.      If you are running a BBS package  that does not  have support built-in
  430.    to TriDoor yet, then all  you need to  do is make a procedure to read in
  431.    your  support file and fill in the appropriate <stats> record variables.
  432.    To further  illustrate, I  have  supplied  a  copy  of  the  readquick()
  433.    and readpcb() functions  which utilize the  DORINFO1.DEF and PCBOARD.SYS
  434.    files  (respectively).   These  have   been  placed  in  a  file  called
  435.    READBBS.DOC which is included with this package.
  436.  
  437.      Remember that if  you are using  non-standard  IRQ settings,  you must
  438.    make it so that your program can determine the  appropriate address from
  439.    another means  such as a  command-line parameter or a configuration file
  440.    of your own.
  441.  
  442.      A list of  TriDoor-defined  global  constants such  as COM1, IRQ3  and
  443.    others  is  listed  in  the  chapter  entitled  GLOBAL CONSTANTS.  These
  444.    constants have addresses assigned to them to make programming easier.
  445.  
  446.      There  are also  many variables accessable  to you  which will  have a
  447.    great deal of affect on  the amount  of control  you have  over TriDoor.
  448.    These are listed in the chapter ACCESSABLE GLOBAL VARIABLES.
  449.  
  450.  
  451.  
  452. Triumph Software - TriDoor Documentation                                pg. 006
  453.  
  454.  
  455.  
  456.      Also  note that  if you  allow some  way  to fill  in  the  <mainpath>
  457.    variable (again through a parameter or configuration file) with the path
  458.    where the  DORINFO1.DEF or PCBOARD.SYS  file (assuming you are using the
  459.    readquick() or readpcb() functions  or have  incorporated that  variable
  460.    into your  own support algorythm) may be found you will not have to copy
  461.    it to the directory where your program will be executed.
  462.  
  463.      Once you have filled in all the <stats> record variables, all you need
  464.    to do is  call the  boolean setuptri() function.  If  it returns  a TRUE
  465.    then you  will be all set up and ready to  use any of the procedures and
  466.    functions in the chapter entitled COMMAND SUMMARY.
  467.  
  468.      Don't forget  the locked  communications support!  Because  of today's
  469.    high-speed  modems it is  sometimes necessary  to "lock" the  speed from
  470.    your  computer to your  modem at  a higher  rate  than the modems actual 
  471.    connection  to  the  remote  caller.  This  is  done  so   that  optimum 
  472.    performance from your high-speed modem can be obtained.
  473.  
  474.      This  version of  TriDoor has two  new variables to allow for "locked"
  475.    communications  ports.  The  old  <stats.baud>  has   been  changed   to
  476.    <stats.real_baud>  which   is   the    actual   connection   speed.  The
  477.    <stats.lock_baud> variable is your locked communications port setting or
  478.    your  computer  to modem speed.  To  support locked communications ports
  479.    you need  only  to  fill in  these two  variables  before   running  the
  480.    setuptri() function.  This  topic  will be  discussed  at  length in the 
  481.    chapter entitled LOCKED COMMUNICATIONS SUPPORT.
  482.  
  483.      That is pretty  much all there  is to programming TriDoor; it's simple
  484.    and straightforward.  Now take  your printed  copy  of this manual (I am
  485.    assuming  that you have printed  it out by now, if you haven't done so I
  486.    would  advise that you do.) and  try  working with  the example  program
  487.    (EXAMPLE.PAS) which I  have  provided  for  you  in  this  package.  Try
  488.    changing or adding a few things and see what you can do.  After you have
  489.    experimented  a few  minutes come  back and  read  the  PROGRAMMING TIPS
  490.    chapter immediately  following  this  one.  It  will further familiarize
  491.    you with some concepts and open your eyes to some completely new ones.
  492.  
  493.  
  494.  
  495.  
  496.  
  497. Triumph Software - TriDoor Documentation                                pg. 007
  498.  
  499.  
  500.  
  501.  
  502.  
  503.                             PROGRAMMING TIPS
  504.  
  505.  
  506.      Here are  several ideas  and concepts  to keep in mind as you program.
  507.    Remember that TriDoor is  very flexible to  allow you to  do pretty much
  508.    what you like  with the commands and make it as personalized as possible
  509.    but due to  this flexibility some  things are not so readily obvious (or
  510.    forced,  for  that  matter) as  they  might  be  in  a  more  structured
  511.    programming environment.
  512.  
  513.       * Remember  to frequently  check to see if  the user  is online()
  514.         and that  the <quit>  variable has  not been set to TRUE.  This
  515.         is most important in loops.  If you  do not check  these things
  516.         your computer  may  just sit  there after  a  user  hangs-up or
  517.         runs out of time.
  518.  
  519.       * If you create support for another BBS support  file it is often
  520.         a good idea to  make the procedure a boolean returning function
  521.         so that  way you can  immediately tell  if there  was a problem
  522.         when the program tried to read the data.  TriDoor's readquick()
  523.         function  does  this.  See  the example  program  (EXAMPLE.PAS)
  524.         provided with this package to see how it is used.
  525.  
  526.       * Again, if you are creating support for  another BBS, try to use
  527.         the <mainpath> variable  to allow your program to be present in
  528.         a directory  other than  the one  that your support file is in.
  529.         Refer, once again,  to the  readquick() function in the chapter
  530.         PROGRAMMING WITH TRIDOOR.
  531.  
  532.       * If you want the  local user (SysOp) to  see something  that the
  533.         remoter user (on-line user) does  not, use a  writeln() instead
  534.         of a print() or perhaps use TriDoor's sysmessage() routine.
  535.  
  536.       * Try not  to exclude  non-ANSI  graphics  users  from your door.
  537.         Many  people do  not have  ANSI graphics support.  Don't  limit
  538.         yourself and your program.
  539.  
  540.       * Remember that  many bulletin  board systems  run better if they
  541.         stay in  memory while  a door is  run, and some HAVE to stay in
  542.         memory at  all  times.  Keep  this in  mind  when  writing your
  543.         doors and  keep  them small, or break them into modules.  Don't
  544.         put once-a-day-maintenance programs  as  part of the main door,
  545.         etc.
  546.  
  547.       * THINK IT OUT!  If there's something you want to do, but are not
  548.         sure if you  can with TriDoor  then take  a  moment to think it
  549.         through.  I can almost  guarantee you can do it.  If you cannot
  550.         think of a way, give  us a  call and we will give you a hand or
  551.         rememdy the problem.
  552.  
  553.  
  554.  
  555. Triumph Software - TriDoor Documentation                                pg. 008
  556.  
  557.  
  558.  
  559.  
  560.  
  561.                       LOCKED COMMUNICATIONS SUPPORT
  562.  
  563.  
  564.      It is very  important to support  locked communications support in any
  565.    software that you plan to release to the public.  If you  do not  a fair
  566.    amount of  people with  high-speed modems will  not be  able to use your
  567.    package or will simply not bother to try.
  568.  
  569.      If you  are  running  PCBoard 14.x or any  other BBS  that  supplies a
  570.    compatible  PCBOARD.SYS  file  then  you  should  not  have  to  concern
  571.    yourself with  this issue  because  readpcb()  will automatically handle
  572.    any values  necessary to set  this support up.  If  you run another bbs,
  573.    however, different scenarios may apply.  Some of these are as follows:
  574.  
  575.      If  you  are  running   QuickBBS  or  another  BBS  that   supplies  a
  576.    DORINFOx.DEF file  you will have  to supply TriDoor with the locked baud
  577.    rate  through some  other means  such  as  a  configuration  file  or  a
  578.    parameter.  Never hard code the locked baud rate because others may want
  579.    to change it.  All  other information  will be  filled in  automatically
  580.    by readquick().
  581.  
  582.      If you are running any other BBS there are two possible scenarios.  If
  583.    your  BBS supplies  you with  the  locked  port information in it's door
  584.    support  file then  you may simply  read it in  like TriDoor's readpcb()
  585.    does.  If your  BBS does not  supply you  with the necessary information
  586.    you  must obtain the  information from  a  configuration file or command
  587.    line parameter as in the case of a DORINFOx.DEF support file.
  588.  
  589.  
  590.  
  591. Triumph Software - TriDoor Documentation                                pg. 009
  592.  
  593.  
  594.  
  595.  
  596.  
  597.                        ACCESSIBLE GLOBAL VARIABLES
  598.  
  599.  
  600.      Here is a  list of  accessable variables that  may be accessed  at any
  601.    time  during program  operation.  Remember that  the <stats> record must
  602.    be filled in before you run the setuptri() function.
  603.  
  604.      All variables with a "*" before them are  already defined  upon bootup
  605.    but may be/may need to be changed to suit your needs.
  606.  
  607.    statrec =               { RECORD OF ON-LINE USER STATISTICS }
  608.      record
  609.        name       : string[50];    { name of user on-line                    }
  610.        real_baud,                  { baud rate (as seen by user)             }
  611.      * lock_baud  : longint;       { baud rate (computer to modem)           }
  612.        time       : integer;       { time user has left                      }
  613.        comstr     : string[20];    { comstring in the format 1200,N,8,1      }
  614.        comport    : integer;       { comport- COM1,COM2, etc...              }
  615.  
  616.        comp_interrupt,             { changeable/assignable comport interrupt }
  617.      * comp_dbits,                 { changeable/assignable data bits         }
  618.      * comp_sbits,                 { changeable/assignable stop bits         }
  619.      * comp_parity  : integer;     { changeable/assignable parity            }
  620.  
  621.        ansi       : boolean;       { ANSI codes enabled if TRUE              }
  622.      end;
  623.  
  624.      The above record  is necessary  to support the  various bulletin board
  625.    systems.  The variable <stats> will be assigned as a record of this type.
  626.    Examples of how these variables are accessed are in the chapter entitled
  627.    PROGRAMMING WITH TRIDOOR.  For  further information,  consult your Turbo
  628.    Pascal manual on RECORDS.
  629.  
  630.      The rest of the global variables are  just standard variables that may
  631.    be accessed through the normal means.
  632.  
  633.    var
  634.      stats       : statrec;    { record of starec                         }
  635.      local,                    { local if true                            }
  636.      code,                     { "***" at getinput() if true              }
  637.      quit,                     { set to true at ALT-H and timeout         }
  638.      caps,                     { caps at getinput() if true               }
  639.      queueoff,                 { turn off print queue if true             }
  640.      timeoff,                  { display time in status bar if false      }
  641.      ansi,                     { ANSI active if true                      }
  642.      autohang    : boolean;    { sets quit to true at time<1 if true      }
  643.    * mainpath,                 { path to support files (default=current)  }
  644.      queueone    : string;     { queue store for print queue              }
  645.    * programname : string[80]; { name of program (shown in status bar)    }
  646.  
  647.  
  648.  
  649. Triumph Software - TriDoor Documentation                                pg. 010
  650.  
  651.  
  652.  
  653.  
  654.  
  655.                             GLOBAL CONSTANTS
  656.  
  657.  
  658.      The  following  is a  list  of global  constants available to  the the
  659.    programmer in  order to make  some tasks a  little easier.  They  cannot
  660.    be re-assigned  like accessable global  variables  can;  they  have been
  661.    pre-assigned to actual addresses and values.
  662.  
  663.       * EVEN, ODD, MARK, SPACE, NONE               Parity settings
  664.       * COM1, COM2, COM3, COM4                     Comport settings
  665.       * IRQ2, IRQ3, IRQ4                           IRQ settings
  666.  
  667.       * BLACK, RED, GREEN, YELLOW, BLUE,
  668.         MAGENTA, CYAN, WHITE, INTENSITY, BLINK     ANSI graphics settings
  669.  
  670.       * TDVER                                      Active TriDoor version
  671.       * TDDATE                                     Active TriDoor date
  672.  
  673.       * CR                                         Carriage return
  674.       * BS                                         Destructive backspace
  675.  
  676.  
  677.    All of these constants can be used in normal programming.  For example:
  678.  
  679.          -> print('This program is using V'+TDVER+' of TriDoor');
  680.          -> stats.comport := COM1;
  681.          -> stats.comp_interrupt := IRQ4;
  682.  
  683.  
  684.  
  685.  
  686. Triumph Software - TriDoor Documentation                                pg. 011
  687.  
  688.  
  689.  
  690.  
  691.  
  692.                              COMMAND SUMMARY
  693.  
  694.  
  695.    * NOTE : All  accessable  variables will be discussed  in more detail in
  696.             the ACCESSABLE GLOBAL VARIABLES chapter of this document.
  697.  
  698.             All commands marked with a signle * (asterix) are automatically
  699.             executed in the setuptri procedure or are automatically handled
  700.             by TriDoor under normal operating conditions.
  701.  
  702.  
  703.    <01> function  offline : boolean;
  704.  
  705.         This function will return a TRUE if there is no user "on-line".
  706.         This function automatically accounts for local users.
  707.  
  708.   *<02> procedure recordtimeon;
  709.  
  710.         This procedure records the time  that the user enters the door.
  711.  
  712.    <03> function  timeleft : integer;
  713.  
  714.         The timeleft  function will check  the user's  time left in the
  715.         door. If the boolean variable <autohang> is set to TRUE and the
  716.         user's time runs  out, the boolean <quit> variable will also be 
  717.         set to TRUE.
  718.  
  719.   *<04> procedure puttime;
  720.  
  721.         This  procedure will  put the user's  time left  in  the  lower
  722.         righthand  area of  the screen as long as the boolean <timeoff>
  723.         variable is set to false.
  724.  
  725.    <05> function  strg( i : integer ) : string;
  726.  
  727.         This function will return the string of any integer.
  728.  
  729.    <06> function  bstrg( li : longint ) : string;
  730.  
  731.         This function is the same as the strg() function except that it
  732.         will accept long integers as well.
  733.  
  734.    <07> function  ucase( strg : string ) : string;
  735.  
  736.         This  function  will  return  the  string  given it  in capital
  737.         letters.
  738.  
  739.    <08> procedure dwrite( outchr : char; attr : integer );
  740.  
  741.         The  dwrite()  procedure  will  write  the  character  <outchr>
  742.         directly  to screen  memory  at  position <scrnpos>, which is a
  743.         global variable.
  744.  
  745.  
  746.  
  747. Triumph Software - TriDoor Documentation                                pg. 012
  748.  
  749.  
  750.    <09> procedure gotopos( x,y : integer );
  751.  
  752.         The  gotopos()  procedure  will set  the  variable <scrnpos> in
  753.         accordance to the standard <x>,<y> position.
  754.  
  755.    <10> procedure dstr( outstr : string; attr : integer );
  756.  
  757.         This procedure writes a string to screen memory at the position
  758.         of <scrnpos>.
  759.  
  760.   *<11> procedure statusbar;
  761.  
  762.         The statusbar() procedure will print a bar at the bottom of the
  763.         local  screen  with  with the  user's name , time left and baud
  764.         rate.   This is  also where the  variable <programname> will be 
  765.         displayed.
  766.  
  767.    <12> procedure sysmessage( strng : string );
  768.  
  769.         The sysmessage() procedure will  print a message <strng> in the
  770.         statusbar on the local screen.
  771.  
  772.    <13> function  readquick : boolean;
  773.  
  774.         This   function   will   read  the  necessary   door  operation
  775.         information  from  the door support file DORINFO1.DEF.  TriDoor
  776.         MUST get it's essential information from a door support file in
  777.         order to be able to operate properly.  This  will also return a
  778.         TRUE if the file was successfully read.
  779.  
  780.    <14> function  topcaps( strg : string ) : string;
  781.  
  782.         This  function  will return a  string with the  first letter of
  783.         word capitalized and all other letters in lower-case.
  784.  
  785.    <15> procedure clearcom;
  786.  
  787.         This function will clear the local screen and the remote screen
  788.         if a user is online.
  789.  
  790.    <16> procedure angotoxy( x, y : integer );
  791.  
  792.         This is the ANSI  equivalent of the  Pascal procedure gotoxy().
  793.         If ANSI is disabled, this function will NOT work.
  794.  
  795.    <17> procedure anleft( ls : integer );
  796.  
  797.         This is  an ANSI  procedure that will  move left the  number of
  798.         spaces specified in the variable <ls>.
  799.  
  800.  
  801.  
  802. Triumph Software - TriDoor Documentation                                pg. 013
  803.  
  804.  
  805.    <18> procedure anright( rs : integer );
  806.  
  807.         This is identical to anleft() except that it goes right instead
  808.         of left.
  809.  
  810.    <19> procedure anup( us : integer );
  811.  
  812.         This procedure is similar to anleft() and anright() except that
  813.         it goes up the number of spaces passed as the variable <us>.
  814.  
  815.    <20> procedure andown( ds : integer );
  816.  
  817.         This procedure is identical to anup() except  that it goes down
  818.         instead of up.
  819.  
  820.    <21> procedure aneraseln;
  821.  
  822.         This is  the  ANSI procedure  to erase  an  entire line  in the
  823.         current ANSI color as set by ancolor().
  824.  
  825.    <22> procedure anclear;
  826.  
  827.         The  anclear() procedure is the ANSI equivalent of clearing the
  828.         screen.  Like all ANSI  functions and procedures, this does not 
  829.         function if ANSI is disabled.
  830.  
  831.    <23> procedure ancolor( bl, br, fg, bg : integer );
  832.  
  833.         This function will set the ANSI color.  The following constants
  834.         have been provided for easy access :
  835.  
  836.            <bl>      : BLINK      
  837.            <br>      : INTENSITY
  838.  
  839.            <fg>/<bg> : BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA,
  840.                        CYAN, WHITE
  841.  
  842.         The following are some examples :
  843.  
  844.         ancolor(0,0,WHITE,BLACK)           white/black background
  845.         ancolor(BLINK,0,CYAN,BLACK)        blinking cyan/black background
  846.         ancolor(0,INTENSITY,WHITE,BLACK)   bright white/black background
  847.  
  848.    <24> function  getkey : char;
  849.  
  850.         This  will  wait  for and return  a key that is  pressed either
  851.         locally or remotely if a user is on-line.
  852.  
  853.    <25> function  comwait : boolean;
  854.  
  855.         This will tell  you if there  is a  character  waiting  in  the
  856.         input buffer of the communications port waiting to be read.
  857.  
  858.  
  859.  
  860. Triumph Software - TriDoor Documentation                                pg. 014
  861.  
  862.  
  863.    <26> function  getinput( wrdsize : word ) : string;
  864.  
  865.           The  getinput()  function is  similar to getkey() except that
  866.           this  function  allows  for  a  string  to  be  entered.  The 
  867.           following variables also apply :
  868.  
  869.             <caps> := TRUE/FALSE    --  will convert all typed to
  870.                                         uppercase if TRUE.
  871.  
  872.             <code> := TRUE/FALSE    --  will  show all characters
  873.                                         typed as *'s if TRUE.
  874.  
  875.             <wrdsize> := (1-255)    --  maximum characters accepted
  876.                                         as input.
  877.  
  878.  
  879.    <27> function  readphone : string;
  880.  
  881.         This function reads and returns a phone number in the format of
  882.         (###)###-####.
  883.  
  884.    <28> function  readdate  : string;
  885.  
  886.         This function reads amd returns a date  in the format XX/XX/XX.
  887.  
  888.    <29> procedure printchar( ch : char );
  889.  
  890.         The printchar() procedure will  print a  character to the local
  891.         screen and the comport  if a carrier  is detected.  There is no
  892.         calculated delay  between characters  in this function as there 
  893.         is in the print() procedure.
  894.  
  895.    <30> procedure print( strng : string );
  896.  
  897.         The print() procedure will print a string to  the local screen,
  898.         as well as to the communications port if a carrier is detected.
  899.  
  900.         To create a  carriage return, simply  plug in a  || anywhere in
  901.         the string to be printed.
  902.  
  903.         For example...
  904.  
  905.            print('My name is george.||Who are you?||||BLAH! ');
  906.            would print...
  907.  
  908.              My name is george.
  909.              Who are you?
  910.  
  911.              BLAH! ( <-- cursor would remain here! )
  912.  
  913.  
  914.  
  915. Triumph Software - TriDoor Documentation                                pg. 015
  916.  
  917.  
  918.  
  919.         NOTE : When plugging variables, substitute +'s  where you would
  920.                normally place ,'s in a write()/writeln().
  921.  
  922.         For example...
  923.  
  924.           print('My name is '+mynamevar+'.||');
  925.  
  926.         When printing  Numerical  Variables, use  the STRG  function to
  927.         convert them to a string format.
  928.  
  929.         For example...
  930.  
  931.           print('My age is '+STRG(age)+'.||);      
  932.  
  933.         Also note that as of  V1.26 there is a  boolean variable called
  934.         <queueoff>.  If this  variable  is set  to  false,  the print() 
  935.         command  will  always  remember the last  thing printed. (Comes
  936.         in handy when exiting chat-modes and so-forth.)
  937.  
  938.         The  variable  that  the  last thing  printed  is  stored in is
  939.         <queueone>. (a string)
  940.  
  941.    <31> procedure comprint( strng : string );
  942.  
  943.         The comprint() procedure  is  identical  to print, except  that
  944.         it prints  SOLELY to the communications  port and  that it does
  945.         not have a queue like print does.
  946.  
  947.    <32> function setuptri : boolean;
  948.  
  949.         This  function  MUST  be  run  in  order for TriDoor to operate
  950.         properly.  It  is to be  placed  in  your  program's code right
  951.         after the reading of the chosen door support files.  setuptri()
  952.         will return a FALSE  if it fails  to set  up the communications
  953.         port with the values currently in the <stat> record.
  954.  
  955.    <33> function  aysure( s : string; [Yes/No] ) : boolean;
  956.  
  957.         The aysure() function will  print the string s accompanied by a
  958.         '? (Y/[N])' and  return  a boolean TRUE or FALSE depending on a 
  959.         choice of yes or no respectively.
  960.  
  961.         The Yes/No is to specify which choice you would like to have as
  962.         the default setting for if the user hits RETURN.
  963.  
  964.         An example of this is as follows-
  965.  
  966.            if aysure('Proceed to next procedure',Yes) then gonext;
  967.  
  968.  
  969.  
  970. Triumph Software - TriDoor Documentation                                pg. 016
  971.  
  972.  
  973.    <33> procedure showfile( fname : string; len : word );
  974.  
  975.         The showfile()  function will display  a file  to both the user
  976.         on-line  (if  present) and  to the  local  screen.   The  <len>
  977.         variable is  the  number  of  lines of the  file that should be
  978.         printed before a 'More? ([Y]/N)' appears.
  979.  
  980.  
  981.  
  982. Triumph Software - TriDoor Documentation                                pg. 017
  983.  
  984.  
  985.  
  986.  
  987.  
  988.               ACCEPTABLE CREDIT IN PROGRAMS AND DOCUMENTATION
  989.  
  990.  
  991.      On  the title-page  of  your documentation  where  your  program  name
  992.    appears, or if  you do  not have such  a page,  wherever your  "credits"
  993.    are (Written by... ) you should include the following :
  994.  
  995.  
  996.                 TriDoor Communications and On-line Door Driver
  997.              Written by Christopher M. Russo and Jeremy H. DuBois
  998.                 (c)1992 Triumph Software, All Rights Reserved.
  999.                     (508)263-8420 / BBS: (508)263-4247
  1000.  
  1001.  
  1002.      The  above listed  credit lines  MUST be  placed within  the  first  3
  1003.    (three)  pages  of  your documentation  to  be considered  as acceptable
  1004.    credit.  A disclaimer  must also  be in the  documentation  stating that
  1005.    Triumph Software is not affiliated with  you or  your company in any way
  1006.    and that Triumph  Software  can not be held responsible for any programs
  1007.    created using the TriDoor package.
  1008.  
  1009.      If no documentation is included in the package that you have produced,
  1010.    then a file giving Triumph Software credit for TriDoor  must be included
  1011.    in the package.  This  credit must also include  the disclaimer as noted  
  1012.    in the previous paragraph.
  1013.  
  1014.      Triumph Software reserves the right to temporarily revoke registration
  1015.    privelleges  until  proper credit  for Triumph Software  is given in any 
  1016.    software/programs created using the TriDoor unit.
  1017.  
  1018.      The following lines will AUTOMATICALLY appear VERY BRIEFLY upon bootup
  1019.    of any program using a registered copy of TriDoor :
  1020.  
  1021.  
  1022.            TriDoor Vx.xx - On-line Door and Communications Support 
  1023.            (c)1992 by Triumph Software, All Rights Reserved.
  1024.            Reg No : xxxxxxxxxx  Reg To : John Q. Programmer
  1025.  
  1026.  
  1027.      A special copy of the  package without this notice may  be obtained by
  1028.    special   arrangements   with  Triumph  Software.  Different   licensing 
  1029.    agreements and disclaimers may apply.
  1030.  
  1031.      Removal of  this notice  or any of it's  information without prior and
  1032.    valid  written  approval by  Triumph Software voids  the registration of
  1033.    the TriDoor package. 
  1034.  
  1035.  
  1036. Triumph Software - TriDoor Documentation                                pg. 018
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.                              RESERVED WORDS
  1043.  
  1044.  
  1045.      The following list of words are  reserved (used by TriDoor) and not to
  1046.    be re-defined  by any program incorporating  TriDoor as  a conflict will 
  1047.    arise that will  result  in non-functionality,  to some  degree,  of the 
  1048.    final resulting program or software.
  1049.  
  1050.  
  1051.         tridr55?          tridr60?          buffptr          buffrec
  1052.         statrec           stats             scrnpos          logontime
  1053.         comintvec         screnmode         local            code
  1054.         quit              caps              queueoff         buffertop
  1055.         head              tail              oldint           exitsave
  1056.         programname       tdver             tddate           CR
  1057.         BS                BLACK             RED              GREEN
  1058.         YELLOW            BLUE              MAGENTA          CYAN
  1059.         WHITE             INTENSITY         BLINK            IER
  1060.         IIR               LCR               MCR              LSR
  1061.         MSR               RLS               RDA              TRE
  1062.         MSI               PIC               EOI              PICMASK
  1063.         ENABLE1           ENABLE2           DISABLE1         DISABLE2
  1064.         BIOSSEG           KEYHEAD           KEYTAIL          EVEN
  1065.         ODD               NONE              COM1             COM2
  1066.         COM3              COM4              IRQ2             IRQ3
  1067.         IRQ4              offline           recordtimeon     timeleft
  1068.         puttime           strg              bstrg            ucase
  1069.         dwrite            gotopos           dstr             statusbar
  1070.         sysmessage        readquick         clearcom         angotoxy
  1071.         anleft            anright           anup             andown
  1072.         aneraseln         anclear           ancolor          getkey
  1073.         comwait           getinput          readphone        readdate
  1074.         printchar         print             comprint         checkkey
  1075.         setuptri          aysure            Yes              No
  1076.         XOFF              set_cts           cts_true         pcbreadrec
  1077.  
  1078.  
  1079.  
  1080. Triumph Software - TriDoor Documentation                                pg. 019
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.                               WHO TO CONTACT
  1087.  
  1088.  
  1089.      Did  your machine curse  aloud in protest  of our software?  Are files
  1090.    missing from the release you obtained?  Did raging  demons come and take
  1091.    your dog?  Did Valkaries cart your brother off to Valhalla?
  1092.  
  1093.      Well, for some of those problems you may have to contact someone else-
  1094.    we can't  do EVERYTHING you  know!  But we  can help  solve your Triumph
  1095.    Software  problems.  If you  have difficulties,  questions,  need  a new
  1096.    release of  our software, want an upgrade  or  even just  have  a bit of
  1097.    feedback for us, please feel free to give us a ring or send us a FidoNet
  1098.    message.
  1099.  
  1100.  
  1101.             Christopher M. Russo          Voice : (508)263-8420
  1102.             Jeremy H. DuBois              Voice : (508)263-7004
  1103.                                                   (716)274-0227
  1104.  
  1105.             Triumph BBS                           (508)263-4247
  1106.                                                   FidoNet 1:322/265
  1107.  
  1108.  
  1109.      Remember  that those voice  phones are our  HOME phones as  we do  not
  1110.    yet have a business line- please  refrain from hassling the other people
  1111.    that live there-  NONE of  us will answer "Hello, Triumph Software."  We
  1112.    will tell you when we get the business line.
  1113.  
  1114.      We are  also looking out for potential support boards and beta-testing
  1115.    systems, so if  you  have  a system  and are  interested, make sure  you 
  1116.    inform us of your desire and eligibility.
  1117.  
  1118.  
  1119.                          ...and Jeremy may be willing to give you his dog.
  1120.  
  1121.  
  1122.  
  1123. Triumph Software - TriDoor Documentation                                pg. 020
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.                              HISTORY OF TRIDOOR
  1130.  
  1131.  
  1132.      TriDoor and  it's  communications support is the  end result of almost
  1133.    four  years  of  effort by  both Jeremy DuBois  and myself. (Christopher
  1134.    M. Russo)  We  started one rainy  day when Jeremy  had  informed me that
  1135.    he had  managed to  write   some  basic  polling  Pascal  communications 
  1136.    routines.  As  Jeremy already  had a  bulletin  board  system running at
  1137.    that time, I suggested that we write an on-line game for it.
  1138.  
  1139.      And that  is when it all began.  We went from  writing a semi-complete
  1140.    and not-too-awful  on-line game  to writing DoorBase,  our first version
  1141.    of an  on-line  door  supporting  unit.  Then  I wrote a game on my own-
  1142.    Monopolistic  Competition,  followed shortly  thereafter by Monopolistic
  1143.    Competition II which was running off  of a  newer, but  still bedraggled
  1144.    version of DoorBase.
  1145.  
  1146.      Then one  day while  trying to write  a terminal program,  we realized
  1147.    that the  communications routines  that Jeremy had  made were simply not
  1148.    fast enough  to  handle all  the  tasking  necessary,  and  at  anything
  1149.    above  2400 baud, was  a miserable failure.  Thus,  Jeremy set  out once
  1150.    again to create newer, faster, interrupt driven routines.
  1151.  
  1152.      I had  quite  a lot  of trouble  dealing with  the  newer routines for
  1153.    reasons  which,  I  admit,  are  beyond  my  knowledge.  After time  and
  1154.    perseverance,  however,  I mastered  the  new  routines and re-wrote the
  1155.    newest version of DoorBase,  now  called TriDoor  in the interest of our
  1156.    newly-founded company.
  1157.  
  1158.      And thus,  I present  to you  said software and complete documentation
  1159.    for the easy usage  and incorporation of  communication and door support
  1160.    in your Pascal programs for QuickBBS and clones. I strongly believe that  
  1161.    using TriDoor is the easiest, most  user-friendly  way  of writing doors  
  1162.    and on-line games available today.
  1163.  
  1164.      Finally, before  we  commence, I would like  to take a moment to thank
  1165.    Jeremy for  all his help and  patience with my  quirky little habits and
  1166.    programming nit-picks.  I  have never  given  another  teacher more of a 
  1167.    hard time than I  gave him.  Ridiculous  as  this  may sound, he  is  an
  1168.    inspiration  to me,  and I  thank him  for all he's taught me and all he
  1169.    will, undoubtedly, teach me in the future.
  1170.  
  1171.  
  1172.  
  1173.  
  1174. Triumph Software - TriDoor Documentation                                pg. 021
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.                     OTHER PRODUCTS BY TRIUMPH SOFTWARE
  1181.  
  1182.  
  1183.      The  following  products  are  also  available from  Triumph Software.
  1184.    For  more information on these products or specific consulting services,
  1185.    please contact us.
  1186.  
  1187.  
  1188.        TriComm . . . . . . . . . . . . . . . . . . . .Registered : $30
  1189.  
  1190.           TriComm is the original communications unit compiled for
  1191.           Turbo Pascal 5.5 and used in the creation of TriDoor. It
  1192.           currently  supports COM1 and  COM2 and  runs at all baud
  1193.           rates.  (Has been tested up to and over 9600 baud)
  1194.  
  1195.  
  1196.        TriUser . . . . . . . . . . . . . . . . . . . .Registered : $25
  1197.  
  1198.           TriUser is an on-line QuickBBS user editor written using
  1199.           the TriDoor  on-Line  door support  unit.  It also takes
  1200.           advantage of TriDoor's ANSI support features.
  1201.  
  1202.  
  1203.        WorldFix. . . . . . . . . . . . . . . . . . . . . . . . $200.00
  1204.  
  1205.           WorldFix  is  a  utility  for  the Real  World Accounting
  1206.           software package that  will close data  files in a matter
  1207.           of seconds  as opposed to  the minutes and  hours that it
  1208.           takes Real World to  do the same  job.  Triumph  Software
  1209.           and Real World are not aphilliated in any way.
  1210.  
  1211.  
  1212.        Qstat . . . . . . . . . . . . . . . . . . . . .Registered : $20
  1213.  
  1214.           Qstat  is a  QuickBBS  download  counter  that  will keep
  1215.           track of  downloads in  the  FILES.BBS files.  Among it's
  1216.           many nice  features are a limit of 999 downloads per file
  1217.           before returning to 0, (Most such programs only allow 99)
  1218.           a nice interface and display and an error log.
  1219.  
  1220.  
  1221.  
  1222. Triumph Software - TriDoor Documentation                                pg. 022
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.                      THINGS TO COME ("THE WORKBENCH")
  1229.  
  1230.  
  1231.      The main  thing that is on  the designing block is our Borland Turbo C
  1232.    TriDoor Library.  The code has actually been written, it's only a matter
  1233.    of some testing time and working out a few kinks before you see this new
  1234.    addition in our communications package.  Keep an eye out for it!
  1235.  
  1236.  
  1237.  
  1238. Triumph Software - TriDoor Documentation                                pg. 023
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.                      JOIN OUR FIDONET MAILING LIST
  1245.  
  1246.  
  1247.      Want  to keep  up on new  additions to  our software  packages without
  1248.    having  to constantly  call us  to get  updates?  All  you need to do is
  1249.    have a valid FidoNet address and send us the following information :
  1250.  
  1251.  
  1252.      01> Your name
  1253.      02> Your FidoNet address or AKA
  1254.      03> Your BBS/Data phone number
  1255.      04> Your voice phone number
  1256.      05> Your primary Triumph Software interests
  1257.      06> Which Triumph Software packages you have registered (if any)
  1258.      07> Your business name (if any)
  1259.      08> Any comments or suggestions you may have (optional)
  1260.  
  1261.  
  1262.    You  will then  receive  newsletters  and  blips  about our  software as
  1263.    such  information comes  around.  A  confirmation letter will be sent to
  1264.    you upon receival of your request.
  1265.  
  1266.  
  1267.  
  1268. Triumph Software - TriDoor Documentation                                pg. 024
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.                            A COMMENT ON QUALITY
  1275.  
  1276.  
  1277.      To finalize,  I would  like to take  a moment to voice  my thoughts on
  1278.    quality in programs and programming.
  1279.  
  1280.      I  have spent  over eight  years working  on and  with bulletin  board
  1281.    systems,  an equal  amount  of time  programming both  at an amateur and
  1282.    a professional level,  and three years or  more programming for bulletin 
  1283.    board systems.
  1284.  
  1285.      In that time I  have seen many  doors and many bulletin board systems,
  1286.    and  I have noticed so many sloppy doors and on-line games that if I had
  1287.    a computer for every  one I have ever seen,  I would be able to put them 
  1288.    together and  form a top-of-the-line Sun SPARCStation with tint-control,
  1289.    a built-in microwave and a television.
  1290.  
  1291.      I can't  tell you how many  times I have run  a program  and then been
  1292.    asked,  infuriatingly, "Cannot  find  BRUNxx.EXE.  New  Path?" or  found 
  1293.    that a program would literally crash inside of two  minutes of operation
  1294.    on any machine that I could try it on. 
  1295.  
  1296.      And  all the programs  that I  saw grinding  away at the disk-drive as
  1297.    they  either accessed a massive load of disorganized data or simply were 
  1298.    running in the  slowest possible languages and needed three days to load 
  1299.    360k of marginally organized data.
  1300.  
  1301.      Then  there were the programs  that simply crashed  without a peep, or
  1302.    crashed and  threw some  sickening statement  like "KILLROY DEATH NOTICE
  1303.    #093284AF84UAREDEAD" at you as you sat in bewilderment.
  1304.  
  1305.      I am  the pickiest person on  earth when  it comes  to programming, so
  1306.    you can be  assured  that any  product that  you ever  get  from Triumph
  1307.    Software  has been  brutally  criticized  and abused  to make sure it is
  1308.    doing everything it should be doing, doing it well, and then some.
  1309.  
  1310.      If  I missed  something, I will be  ever amazed, but I assure you that
  1311.    I literally don't sleep until the problem is fixed. 
  1312.  
  1313.      I hope  you enjoy  this and all of our programs and  find them easy to
  1314.    use and  well-written.  If you  have  suggestions or  complaints, please
  1315.    contact  us/me as  we/I  are/am always  happy  to hear  them  and try to
  1316.    incorporate them.
  1317.  
  1318.  
  1319.                                 Happy Programming!
  1320.  
  1321.                                  -Christopher M. Russo
  1322.  
  1323.