home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-05-25 | 52.9 KB | 1,323 lines |
-
-
-
-
-
-
-
-
-
-
-
- T R I U M P H S O F T W A R E
-
-
- Presents
-
-
-
-
-
-
- ░██████████ ░██ ░███████
- ░█ ░██ ░█ ░██ ░██
- ░██ ░█░██ ░██ ░██ ░██ ░███ ░███ ░█░██
- ░██ ░█ ░█ ░█ ░██ ░██ ░█ ░█ ░█ ░█ ░█ ░█
- ░████ ░██ ░███ ░███████ ░███ ░███ ░██
-
-
-
-
- An On-Line Door Support Unit
- For use with Turbo Pascal 5.5 and 6.0
-
-
-
-
-
- TriDoor Written by Christopher M. Russo
- TriComm Communications Support Written by Jeremy H. DuBois
-
- TriDoor, TriComm (c)1992 Triumph Software, All Rights Reserved.
-
-
-
-
- PCBoard is a Registered Trademark of Clark Development Co, Inc.
- QuickBBS is a Registered Trademark of the QuickBBS Group.
- Turbo Pascal is a Registered Trademark of Borland, Inc.
-
-
-
- Triumph Software is not affiliated
- either Clark Development Co. Inc., The QuickBBS Group
- or Borland, Inc. in any way.
-
-
- Triumph BBS : (508)263-4247 / FidoNet : 1:322/265
-
-
-
- Triumph Software - TriDoor Documentation pg. i
-
-
-
-
-
- DISCLAIMER
-
-
- Triumph Software and the employees/programmers in conjunction with
- and/or affiliated with Triumph Software can not be held responsible
- for the condition of any software received through any non-postal/
- non-parcel means.
-
- Nor can said persons be held responsible for any damage caused to
- media or hardware as a result of the use of any of our products.
-
- Triumph Software and it's employees and associates would like it to
- be known, however, that all of their products are thoroughly tested
- before leaving our offices. It is only in the deepest faith in our
- own product that any such software is released to the public.
-
- Triumph Software reserves the right to change any documentation,
- disclaimer, licensing information or registration procedures and costs
- at any time for any reason with no prior warning or notice.
-
-
-
- Triumph Software - TriDoor Documentation pg. ii
-
-
-
-
-
- LIMITED LICENSING AGREEMENT
-
-
- The holder of the unregistered TriDoor package is allowed a limited
- usage period of 30 (thirty) days, wherein he or she may incorporate
- the unit in any program that he or she develops as long as the program
- incorporating the TriDoor unit is not distributed in any manner at any
- time. After the thirty day period, the holder of the unregistered copy
- of the TriDoor package must register the software to be allowed further
- use of TriDoor.
-
- A private registered copy may be obtained by filling out the TriDoor
- registration form and sending both the registration form and $30.00, in
- the form of a check or money order, to Triumph Software. The private
- copy will allow the registered owner to produce programs using the
- TriDoor unit and distribute them as long as the registered copy of
- TriDoor is not included in the the package, no compensation is
- obtained in any way from the distribution of the software incorporating
- the TriDoor unit, and Triumph Software is given ample credit as depicted
- in the final chapter of this document. The registered copy of the
- TriDoor unit must not be distributed in any way other than as a compiled
- portion of a program or software produced by the registered copy holder.
-
- A commercial registered copy may be obtained by filling out the
- TriDoor registration form and sending both the registration form and
- $100.00, in the form of check or money order, to Triumph Software. The
- commercial copy will allow the registered owner to produce programs
- using the TriDoor unit and distribute them. This copy also allows the
- holder of the registered copy to obtain legal compensation for the
- program incorporating the TriDoor package. The holder of the commercial
- registered copy must include acceptable credit in the documentation
- of his or her program as further explained in the final chapter of
- this document. The registered copy of the TriDoor unit must not be
- distributed in any way other than as a compiled portion of a program or
- software produced by the registered copy holder.
-
- An individual copy must be registered for each individual company and
- person. The only exception is in the case of a company owned by a
- person in which case the copy may be registered for both in the case of
- a commercial copy.
-
- Triumph Software reserves the right to revoke registration priviliges
- either temporarily or permanently if the conditions of the registration
- are not properly met by the holder of the registered TriDoor package.
-
- Triumph Software reserves the right to use the registered owners name,
- company and/or product created incorporating the TriDoor unit in any of
- Triumph Software's advertising of any type.
-
- Registered copy holders will be entitled to minor upgrades of the
- TriDoor package at a minimal processing and materials fee of $5.00 per
- upgrade. Major upgrades can be obtained at a cost of $12.00 for private
- copies and $24.00 for commercial copies.
-
-
-
-
- Triumph Software - TriDoor Documentation pg. iii
-
-
-
-
-
- TABLE OF CONTENTS
-
-
- How to Use This Manual . . . . . . . . . . . . . . . . . . . . . 001
-
- Why Use TriDoor. . . . . . . . . . . . . . . . . . . . . . . . . 002
-
- Features of TriDoor. . . . . . . . . . . . . . . . . . . . . . . 003
-
- What's New This Version. . . . . . . . . . . . . . . . . . . . . 004
-
- Programming With TriDoor . . . . . . . . . . . . . . . . . . . . 005
-
- Programming Tips . . . . . . . . . . . . . . . . . . . . . . . . 007
-
- Locked Communications Support. . . . . . . . . . . . . . . . . . 008
-
- Accessable Global Variables. . . . . . . . . . . . . . . . . . . 009
-
- Global Constants . . . . . . . . . . . . . . . . . . . . . . . . 010
-
- Command Summary . . . . . . . . . . . . . . . . . . . . . . . . 011
-
- Acceptable Credit in Programs and Documentation. . . . . . . . . 017
-
- Reserved Words . . . . . . . . . . . . . . . . . . . . . . . . . 018
-
- Who to Contact . . . . . . . . . . . . . . . . . . . . . . . . . 019
-
- History of TriDoor . . . . . . . . . . . . . . . . . . . . . . . 020
-
- Other Products by Triumph Software . . . . . . . . . . . . . . . 021
-
- Things to Come ("The Workbench") . . . . . . . . . . . . . . . . 022
-
- Join Our FidoNet Mailing List. . . . . . . . . . . . . . . . . . 023
-
- A Comment on Quality . . . . . . . . . . . . . . . . . . . . . . 024
-
-
-
-
-
- Triumph Software - TriDoor Documentation pg. 001
-
-
-
-
-
- HOW TO USE THIS MANUAL
-
-
- First and most importantly is that you read the entire manual from
- front to back. As easy as TriDoor is to use it will be absolutely
- useless to you if you don't at least read most of it, and in addition to
- that there are also many hints and refining tips in this document that
- will help you to truly take command of this software.
-
- It is also a very good idea to print this document out. It is made
- especially for printers allowing for page length and form feeds and so
- on. Having a hard copy of the text in your hand while you work on your
- program will prove to be invaluable.
-
- As far as the actual text goes, you need to keep a few things in mind
- about my format.
-
- * Anything followed by a "()" is a function or procedure.
- i.e. print(), writeln() and readquick()
-
- * Anything contained in "<>"s is a TriDoor variable acccessable
- by you, the programmer.
- i.e. <stats>, <queueoff> and <quit>
-
- The rest is simply in the text itself. Good luck and happy reading.
-
-
-
-
- Triumph Software - TriDoor Documentation pg. 002
-
-
-
-
-
- WHY USE TRIDOOR?
-
-
- TriDoor is the most advanced, efficient and easy-to-use utility of
- it's kind available on the software market today. It allows even the
- novice Borland Turbo Pascal programmer to create fully-functioning
- doors, on-line programs and utilities in a matter of minutes without
- ever having to delve into the hundreds of texts on communications
- programming.
-
- In addition to having complete communications support TriDoor also
- comes equipped with many other features which are extremely useful when
- writing communications applications. Examples of these are color ANSI
- graphics controls, user time handling routines and many Pascal-like
- commands such as print() which is the communications equivelant of
- write() and writeln().
-
- TriDoor is flexible too! With the exception of a few things here
- and there (like the tell-tale chat mode) your users may never even know
- that you did not write the entire program- communications routines and
- all. You will see no hard-coded error messages, forced configuration
- files or annoying restrictions that you did not develop yourself. This
- allows you to use all your programming resources the way YOU want as
- opposed to the way a toolkit may have set them up. A prime example of
- this is command line parameters; some toolkits will force you to enter
- in the name of a configuration file on the command line. What if you
- would rather enter in an IRQ setting or a user name? What if you do not
- want a configuration file? TriDoor allows you to do as you will.
-
- The programming possibilities are endless- I have written on-line
- games, archive viewing utilties, text/ANSI graphics file viewers,
- "top ten list" generators, terminal programs, SysOp paging doors and
- many MANY more.
-
- How many times have you said to yourself, "This is truly an excellent
- system I have running if only I could add on a [blank] without changing
- to a new BBS software..."? Well, there are a few solutions to this
- problem: You could switch BBS software which may give you a few options
- you did not have before but you are also reducing yourself to rebuilding
- a system you have already put probably hundreds of hours of work into
- and potentially compromising the quality of your user's environment -or-
- you could download a door from your local BBS where you may find a
- program to do what you need, but it may not be EXACTLY what you want
- -or- you could use TriDoor to write your own! You could have the door
- you want, make the changes you need at ANY time and have the pleasure
- of having made it yourself.
-
- I frequently find myself saying, "If you cannot do it with TriDoor,
- then you probably cannot do it." I have only scraped the surface of
- it's capabilties and ease of use; the rest is up to you. You now hold
- the power to make the doors, on-line games and utilities that you have
- always wanted!
-
-
-
- Triumph Software - TriDoor Documentation pg. 003
-
-
-
-
-
- FEATURES OF TRIDOOR
-
-
- TriDoor has many advanced and VERY easy-to-use features which are
- built right in. And allthough there are so many that I literally
- cannot remember ALL of them, we are still adding all the time so give
- us a call so we can get you a copy of the latest version.
-
-
- * Automatic set-up and support of communications ports
- * Automatic reading and processing of DORINFO1.DEF and PCBOARD.SYS
- * Easy to use commands such as PRINT and GETINPUT which will
- print to the local screen, and the comport if a carrier is
- detected
- * Built-in chat mode with word-wrap and ANSI color graphics
- * Boolean variable QUIT which is set to TRUE if ALT-H is
- hit from the local keyboard- allows for programmer-defined
- or non-existent "hang-up" procedures
- * Easy forced "caps-lock", and "password-entry" (see "***"
- instead of "hey")
- * Length restriction available on input fields
- * Built-in string capitalization, first letter capitalization and
- easy integer/longint to string conversion available
- * Built-in direct screen write functions
- * Automatic status bar displaying time, name and baud rate
- * Automatic on-line user time handling routines
- * Built-in routines for clearing user's and local screen
- * Built-in boolean response "Are you sure?" function
- * Built-in user-page (>BEEP!< "The SysOp is paging you!" >BEEP!<)
- * Automatic "Last Printed" memory (can be disabled)
- * Command list status bar on local screen
- * Auto-sensing of color/monochrome local screen
- * Borland Turbo Pascal 5.5 AND 6.0 support
- * Full color ANSI graphics support
- * User on-line time modification
- * Auto-hangup (QUIT := TRUE) at time<1
- * System messages in status bar ("SysOp : User is being paged.")
- * Ability to add support for ANY BBS system
- * Ability to be run in multi-tasking environments such as
- DESQVIEW and WINDOWS.
- * Local disable/enable of remote user keyboard
- * Fake line-noise from local console
- * Ability to use non-standard IRQ/COMM port configurations
- * Ability to change all communications parameters
- * Locked communications port support
- * Complete flow control support (XON/XOFF and CTS/RTS)
-
-
- Triumph Software - TriDoor Documentation pg. 004
-
-
-
-
-
- WHAT'S NEW THIS VERSION
-
-
- * PCBOARD.SYS (PCBoard 14.x) support
- * Locked COMM port capability
- * Complete software/hardware flow control (XON/XOFF and CTS/RTS)
-
- * TOTALLY NEW DOCUMENTATION- We advise that you read it all.
-
- * You may now use non-standard communications settings. In other
- words you may assign any IRQ value along with any communications
- port. To do this all you need to do is fill in the appropriate
- variables in the <stats> record before you call the setuptri()
- function. For example:
-
- stats.comport := COM1; {* set up comport *}
- stats.comp_interrupt := IRQ4; {* set IRQ *}
- stats.comp_dbits := 8; {* set data bits *}
- stats.comp_sbits := 1; {* set stop bits *}
- stats.comp_parity := EVEN; {* set parity *}
-
- if ( setuptri ) then {* call setup routine *}
- begin
-
- {* main program here *}
-
- end;
-
- For further discussion on this topic see the chapters entitled
- PROGRAMMING WITH TRIDOOR and ACCESSABLE GLOBAL VARIABLES.
-
- * The readquick() function will now automatically determine parity
- stop bits and data bits from information in the DORINFO1.DEF file
- and fill in the appropriate <stats> record variables.
-
-
-
- Triumph Software - TriDoor Documentation pg. 005
-
-
-
-
-
- PROGRAMMING WITH TRIDOOR
-
-
- Creating doors with TriDoor is an astoundingly simple process but a
- couple steps must be taken in each program you write in order for the
- program to function normally. The computer may physically "hang" if
- these few following procedures are not completed (but will usually just
- drop out with a complaint about not being able to set-up properly.)
-
- A basic example of how to set-up a simple program (EXAMPLE.PAS) comes
- with this software package. It is useful to refer back to it from time
- to time to get a better feel for how things work.
-
- The first thing you must do is fill in the <stats> record with all of
- the appropriate values necessary- these values are normally recorded for
- you in a file your BBS software creates when it exits to DOS. Examples
- of this type of file would be DORINFO1.DEF, DOOR.SYS or PCBOARD.SYS.
-
- If you run a BBS that supplies the DORINFO1.DEF file, all you need to
- do to fill in these values is call upon the readquick() function. This
- will read the DORINFO1.DEF file and get most of the needed values from
- it.
-
- If you run a BBS that supplies a PCBoard Compatible 14.x PCBOARD.SYS
- file, all you need to do to fill in the <stats> record is call upon the
- readpcb() function. Because of the amount of information contained in
- this file, you will not have to supply any other data to the <stats>
- record.
-
- If you are running a BBS package that does not have support built-in
- to TriDoor yet, then all you need to do is make a procedure to read in
- your support file and fill in the appropriate <stats> record variables.
- To further illustrate, I have supplied a copy of the readquick()
- and readpcb() functions which utilize the DORINFO1.DEF and PCBOARD.SYS
- files (respectively). These have been placed in a file called
- READBBS.DOC which is included with this package.
-
- Remember that if you are using non-standard IRQ settings, you must
- make it so that your program can determine the appropriate address from
- another means such as a command-line parameter or a configuration file
- of your own.
-
- A list of TriDoor-defined global constants such as COM1, IRQ3 and
- others is listed in the chapter entitled GLOBAL CONSTANTS. These
- constants have addresses assigned to them to make programming easier.
-
- There are also many variables accessable to you which will have a
- great deal of affect on the amount of control you have over TriDoor.
- These are listed in the chapter ACCESSABLE GLOBAL VARIABLES.
-
-
-
- Triumph Software - TriDoor Documentation pg. 006
-
-
-
- Also note that if you allow some way to fill in the <mainpath>
- variable (again through a parameter or configuration file) with the path
- where the DORINFO1.DEF or PCBOARD.SYS file (assuming you are using the
- readquick() or readpcb() functions or have incorporated that variable
- into your own support algorythm) may be found you will not have to copy
- it to the directory where your program will be executed.
-
- Once you have filled in all the <stats> record variables, all you need
- to do is call the boolean setuptri() function. If it returns a TRUE
- then you will be all set up and ready to use any of the procedures and
- functions in the chapter entitled COMMAND SUMMARY.
-
- Don't forget the locked communications support! Because of today's
- high-speed modems it is sometimes necessary to "lock" the speed from
- your computer to your modem at a higher rate than the modems actual
- connection to the remote caller. This is done so that optimum
- performance from your high-speed modem can be obtained.
-
- This version of TriDoor has two new variables to allow for "locked"
- communications ports. The old <stats.baud> has been changed to
- <stats.real_baud> which is the actual connection speed. The
- <stats.lock_baud> variable is your locked communications port setting or
- your computer to modem speed. To support locked communications ports
- you need only to fill in these two variables before running the
- setuptri() function. This topic will be discussed at length in the
- chapter entitled LOCKED COMMUNICATIONS SUPPORT.
-
- That is pretty much all there is to programming TriDoor; it's simple
- and straightforward. Now take your printed copy of this manual (I am
- assuming that you have printed it out by now, if you haven't done so I
- would advise that you do.) and try working with the example program
- (EXAMPLE.PAS) which I have provided for you in this package. Try
- changing or adding a few things and see what you can do. After you have
- experimented a few minutes come back and read the PROGRAMMING TIPS
- chapter immediately following this one. It will further familiarize
- you with some concepts and open your eyes to some completely new ones.
-
-
-
-
-
- Triumph Software - TriDoor Documentation pg. 007
-
-
-
-
-
- PROGRAMMING TIPS
-
-
- Here are several ideas and concepts to keep in mind as you program.
- Remember that TriDoor is very flexible to allow you to do pretty much
- what you like with the commands and make it as personalized as possible
- but due to this flexibility some things are not so readily obvious (or
- forced, for that matter) as they might be in a more structured
- programming environment.
-
- * Remember to frequently check to see if the user is online()
- and that the <quit> variable has not been set to TRUE. This
- is most important in loops. If you do not check these things
- your computer may just sit there after a user hangs-up or
- runs out of time.
-
- * If you create support for another BBS support file it is often
- a good idea to make the procedure a boolean returning function
- so that way you can immediately tell if there was a problem
- when the program tried to read the data. TriDoor's readquick()
- function does this. See the example program (EXAMPLE.PAS)
- provided with this package to see how it is used.
-
- * Again, if you are creating support for another BBS, try to use
- the <mainpath> variable to allow your program to be present in
- a directory other than the one that your support file is in.
- Refer, once again, to the readquick() function in the chapter
- PROGRAMMING WITH TRIDOOR.
-
- * If you want the local user (SysOp) to see something that the
- remoter user (on-line user) does not, use a writeln() instead
- of a print() or perhaps use TriDoor's sysmessage() routine.
-
- * Try not to exclude non-ANSI graphics users from your door.
- Many people do not have ANSI graphics support. Don't limit
- yourself and your program.
-
- * Remember that many bulletin board systems run better if they
- stay in memory while a door is run, and some HAVE to stay in
- memory at all times. Keep this in mind when writing your
- doors and keep them small, or break them into modules. Don't
- put once-a-day-maintenance programs as part of the main door,
- etc.
-
- * THINK IT OUT! If there's something you want to do, but are not
- sure if you can with TriDoor then take a moment to think it
- through. I can almost guarantee you can do it. If you cannot
- think of a way, give us a call and we will give you a hand or
- rememdy the problem.
-
-
-
- Triumph Software - TriDoor Documentation pg. 008
-
-
-
-
-
- LOCKED COMMUNICATIONS SUPPORT
-
-
- It is very important to support locked communications support in any
- software that you plan to release to the public. If you do not a fair
- amount of people with high-speed modems will not be able to use your
- package or will simply not bother to try.
-
- If you are running PCBoard 14.x or any other BBS that supplies a
- compatible PCBOARD.SYS file then you should not have to concern
- yourself with this issue because readpcb() will automatically handle
- any values necessary to set this support up. If you run another bbs,
- however, different scenarios may apply. Some of these are as follows:
-
- If you are running QuickBBS or another BBS that supplies a
- DORINFOx.DEF file you will have to supply TriDoor with the locked baud
- rate through some other means such as a configuration file or a
- parameter. Never hard code the locked baud rate because others may want
- to change it. All other information will be filled in automatically
- by readquick().
-
- If you are running any other BBS there are two possible scenarios. If
- your BBS supplies you with the locked port information in it's door
- support file then you may simply read it in like TriDoor's readpcb()
- does. If your BBS does not supply you with the necessary information
- you must obtain the information from a configuration file or command
- line parameter as in the case of a DORINFOx.DEF support file.
-
-
-
- Triumph Software - TriDoor Documentation pg. 009
-
-
-
-
-
- ACCESSIBLE GLOBAL VARIABLES
-
-
- Here is a list of accessable variables that may be accessed at any
- time during program operation. Remember that the <stats> record must
- be filled in before you run the setuptri() function.
-
- All variables with a "*" before them are already defined upon bootup
- but may be/may need to be changed to suit your needs.
-
- statrec = { RECORD OF ON-LINE USER STATISTICS }
- record
- name : string[50]; { name of user on-line }
- real_baud, { baud rate (as seen by user) }
- * lock_baud : longint; { baud rate (computer to modem) }
- time : integer; { time user has left }
- comstr : string[20]; { comstring in the format 1200,N,8,1 }
- comport : integer; { comport- COM1,COM2, etc... }
-
- comp_interrupt, { changeable/assignable comport interrupt }
- * comp_dbits, { changeable/assignable data bits }
- * comp_sbits, { changeable/assignable stop bits }
- * comp_parity : integer; { changeable/assignable parity }
-
- ansi : boolean; { ANSI codes enabled if TRUE }
- end;
-
- The above record is necessary to support the various bulletin board
- systems. The variable <stats> will be assigned as a record of this type.
- Examples of how these variables are accessed are in the chapter entitled
- PROGRAMMING WITH TRIDOOR. For further information, consult your Turbo
- Pascal manual on RECORDS.
-
- The rest of the global variables are just standard variables that may
- be accessed through the normal means.
-
- var
- stats : statrec; { record of starec }
- local, { local if true }
- code, { "***" at getinput() if true }
- quit, { set to true at ALT-H and timeout }
- caps, { caps at getinput() if true }
- queueoff, { turn off print queue if true }
- timeoff, { display time in status bar if false }
- ansi, { ANSI active if true }
- autohang : boolean; { sets quit to true at time<1 if true }
- * mainpath, { path to support files (default=current) }
- queueone : string; { queue store for print queue }
- * programname : string[80]; { name of program (shown in status bar) }
-
-
-
- Triumph Software - TriDoor Documentation pg. 010
-
-
-
-
-
- GLOBAL CONSTANTS
-
-
- The following is a list of global constants available to the the
- programmer in order to make some tasks a little easier. They cannot
- be re-assigned like accessable global variables can; they have been
- pre-assigned to actual addresses and values.
-
- * EVEN, ODD, MARK, SPACE, NONE Parity settings
- * COM1, COM2, COM3, COM4 Comport settings
- * IRQ2, IRQ3, IRQ4 IRQ settings
-
- * BLACK, RED, GREEN, YELLOW, BLUE,
- MAGENTA, CYAN, WHITE, INTENSITY, BLINK ANSI graphics settings
-
- * TDVER Active TriDoor version
- * TDDATE Active TriDoor date
-
- * CR Carriage return
- * BS Destructive backspace
-
-
- All of these constants can be used in normal programming. For example:
-
- -> print('This program is using V'+TDVER+' of TriDoor');
- -> stats.comport := COM1;
- -> stats.comp_interrupt := IRQ4;
-
-
-
-
- Triumph Software - TriDoor Documentation pg. 011
-
-
-
-
-
- COMMAND SUMMARY
-
-
- * NOTE : All accessable variables will be discussed in more detail in
- the ACCESSABLE GLOBAL VARIABLES chapter of this document.
-
- All commands marked with a signle * (asterix) are automatically
- executed in the setuptri procedure or are automatically handled
- by TriDoor under normal operating conditions.
-
-
- <01> function offline : boolean;
-
- This function will return a TRUE if there is no user "on-line".
- This function automatically accounts for local users.
-
- *<02> procedure recordtimeon;
-
- This procedure records the time that the user enters the door.
-
- <03> function timeleft : integer;
-
- The timeleft function will check the user's time left in the
- door. If the boolean variable <autohang> is set to TRUE and the
- user's time runs out, the boolean <quit> variable will also be
- set to TRUE.
-
- *<04> procedure puttime;
-
- This procedure will put the user's time left in the lower
- righthand area of the screen as long as the boolean <timeoff>
- variable is set to false.
-
- <05> function strg( i : integer ) : string;
-
- This function will return the string of any integer.
-
- <06> function bstrg( li : longint ) : string;
-
- This function is the same as the strg() function except that it
- will accept long integers as well.
-
- <07> function ucase( strg : string ) : string;
-
- This function will return the string given it in capital
- letters.
-
- <08> procedure dwrite( outchr : char; attr : integer );
-
- The dwrite() procedure will write the character <outchr>
- directly to screen memory at position <scrnpos>, which is a
- global variable.
-
-
-
- Triumph Software - TriDoor Documentation pg. 012
-
-
- <09> procedure gotopos( x,y : integer );
-
- The gotopos() procedure will set the variable <scrnpos> in
- accordance to the standard <x>,<y> position.
-
- <10> procedure dstr( outstr : string; attr : integer );
-
- This procedure writes a string to screen memory at the position
- of <scrnpos>.
-
- *<11> procedure statusbar;
-
- The statusbar() procedure will print a bar at the bottom of the
- local screen with with the user's name , time left and baud
- rate. This is also where the variable <programname> will be
- displayed.
-
- <12> procedure sysmessage( strng : string );
-
- The sysmessage() procedure will print a message <strng> in the
- statusbar on the local screen.
-
- <13> function readquick : boolean;
-
- This function will read the necessary door operation
- information from the door support file DORINFO1.DEF. TriDoor
- MUST get it's essential information from a door support file in
- order to be able to operate properly. This will also return a
- TRUE if the file was successfully read.
-
- <14> function topcaps( strg : string ) : string;
-
- This function will return a string with the first letter of
- word capitalized and all other letters in lower-case.
-
- <15> procedure clearcom;
-
- This function will clear the local screen and the remote screen
- if a user is online.
-
- <16> procedure angotoxy( x, y : integer );
-
- This is the ANSI equivalent of the Pascal procedure gotoxy().
- If ANSI is disabled, this function will NOT work.
-
- <17> procedure anleft( ls : integer );
-
- This is an ANSI procedure that will move left the number of
- spaces specified in the variable <ls>.
-
-
-
- Triumph Software - TriDoor Documentation pg. 013
-
-
- <18> procedure anright( rs : integer );
-
- This is identical to anleft() except that it goes right instead
- of left.
-
- <19> procedure anup( us : integer );
-
- This procedure is similar to anleft() and anright() except that
- it goes up the number of spaces passed as the variable <us>.
-
- <20> procedure andown( ds : integer );
-
- This procedure is identical to anup() except that it goes down
- instead of up.
-
- <21> procedure aneraseln;
-
- This is the ANSI procedure to erase an entire line in the
- current ANSI color as set by ancolor().
-
- <22> procedure anclear;
-
- The anclear() procedure is the ANSI equivalent of clearing the
- screen. Like all ANSI functions and procedures, this does not
- function if ANSI is disabled.
-
- <23> procedure ancolor( bl, br, fg, bg : integer );
-
- This function will set the ANSI color. The following constants
- have been provided for easy access :
-
- <bl> : BLINK
- <br> : INTENSITY
-
- <fg>/<bg> : BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA,
- CYAN, WHITE
-
- The following are some examples :
-
- ancolor(0,0,WHITE,BLACK) white/black background
- ancolor(BLINK,0,CYAN,BLACK) blinking cyan/black background
- ancolor(0,INTENSITY,WHITE,BLACK) bright white/black background
-
- <24> function getkey : char;
-
- This will wait for and return a key that is pressed either
- locally or remotely if a user is on-line.
-
- <25> function comwait : boolean;
-
- This will tell you if there is a character waiting in the
- input buffer of the communications port waiting to be read.
-
-
-
- Triumph Software - TriDoor Documentation pg. 014
-
-
- <26> function getinput( wrdsize : word ) : string;
-
- The getinput() function is similar to getkey() except that
- this function allows for a string to be entered. The
- following variables also apply :
-
- <caps> := TRUE/FALSE -- will convert all typed to
- uppercase if TRUE.
-
- <code> := TRUE/FALSE -- will show all characters
- typed as *'s if TRUE.
-
- <wrdsize> := (1-255) -- maximum characters accepted
- as input.
-
-
- <27> function readphone : string;
-
- This function reads and returns a phone number in the format of
- (###)###-####.
-
- <28> function readdate : string;
-
- This function reads amd returns a date in the format XX/XX/XX.
-
- <29> procedure printchar( ch : char );
-
- The printchar() procedure will print a character to the local
- screen and the comport if a carrier is detected. There is no
- calculated delay between characters in this function as there
- is in the print() procedure.
-
- <30> procedure print( strng : string );
-
- The print() procedure will print a string to the local screen,
- as well as to the communications port if a carrier is detected.
-
- To create a carriage return, simply plug in a || anywhere in
- the string to be printed.
-
- For example...
-
- print('My name is george.||Who are you?||||BLAH! ');
- would print...
-
- My name is george.
- Who are you?
-
- BLAH! ( <-- cursor would remain here! )
-
-
-
- Triumph Software - TriDoor Documentation pg. 015
-
-
-
- NOTE : When plugging variables, substitute +'s where you would
- normally place ,'s in a write()/writeln().
-
- For example...
-
- print('My name is '+mynamevar+'.||');
-
- When printing Numerical Variables, use the STRG function to
- convert them to a string format.
-
- For example...
-
- print('My age is '+STRG(age)+'.||);
-
- Also note that as of V1.26 there is a boolean variable called
- <queueoff>. If this variable is set to false, the print()
- command will always remember the last thing printed. (Comes
- in handy when exiting chat-modes and so-forth.)
-
- The variable that the last thing printed is stored in is
- <queueone>. (a string)
-
- <31> procedure comprint( strng : string );
-
- The comprint() procedure is identical to print, except that
- it prints SOLELY to the communications port and that it does
- not have a queue like print does.
-
- <32> function setuptri : boolean;
-
- This function MUST be run in order for TriDoor to operate
- properly. It is to be placed in your program's code right
- after the reading of the chosen door support files. setuptri()
- will return a FALSE if it fails to set up the communications
- port with the values currently in the <stat> record.
-
- <33> function aysure( s : string; [Yes/No] ) : boolean;
-
- The aysure() function will print the string s accompanied by a
- '? (Y/[N])' and return a boolean TRUE or FALSE depending on a
- choice of yes or no respectively.
-
- The Yes/No is to specify which choice you would like to have as
- the default setting for if the user hits RETURN.
-
- An example of this is as follows-
-
- if aysure('Proceed to next procedure',Yes) then gonext;
-
-
-
- Triumph Software - TriDoor Documentation pg. 016
-
-
- <33> procedure showfile( fname : string; len : word );
-
- The showfile() function will display a file to both the user
- on-line (if present) and to the local screen. The <len>
- variable is the number of lines of the file that should be
- printed before a 'More? ([Y]/N)' appears.
-
-
-
- Triumph Software - TriDoor Documentation pg. 017
-
-
-
-
-
- ACCEPTABLE CREDIT IN PROGRAMS AND DOCUMENTATION
-
-
- On the title-page of your documentation where your program name
- appears, or if you do not have such a page, wherever your "credits"
- are (Written by... ) you should include the following :
-
-
- TriDoor Communications and On-line Door Driver
- Written by Christopher M. Russo and Jeremy H. DuBois
- (c)1992 Triumph Software, All Rights Reserved.
- (508)263-8420 / BBS: (508)263-4247
-
-
- The above listed credit lines MUST be placed within the first 3
- (three) pages of your documentation to be considered as acceptable
- credit. A disclaimer must also be in the documentation stating that
- Triumph Software is not affiliated with you or your company in any way
- and that Triumph Software can not be held responsible for any programs
- created using the TriDoor package.
-
- If no documentation is included in the package that you have produced,
- then a file giving Triumph Software credit for TriDoor must be included
- in the package. This credit must also include the disclaimer as noted
- in the previous paragraph.
-
- Triumph Software reserves the right to temporarily revoke registration
- privelleges until proper credit for Triumph Software is given in any
- software/programs created using the TriDoor unit.
-
- The following lines will AUTOMATICALLY appear VERY BRIEFLY upon bootup
- of any program using a registered copy of TriDoor :
-
-
- TriDoor Vx.xx - On-line Door and Communications Support
- (c)1992 by Triumph Software, All Rights Reserved.
- Reg No : xxxxxxxxxx Reg To : John Q. Programmer
-
-
- A special copy of the package without this notice may be obtained by
- special arrangements with Triumph Software. Different licensing
- agreements and disclaimers may apply.
-
- Removal of this notice or any of it's information without prior and
- valid written approval by Triumph Software voids the registration of
- the TriDoor package.
-
-
- Triumph Software - TriDoor Documentation pg. 018
-
-
-
-
-
- RESERVED WORDS
-
-
- The following list of words are reserved (used by TriDoor) and not to
- be re-defined by any program incorporating TriDoor as a conflict will
- arise that will result in non-functionality, to some degree, of the
- final resulting program or software.
-
-
- tridr55? tridr60? buffptr buffrec
- statrec stats scrnpos logontime
- comintvec screnmode local code
- quit caps queueoff buffertop
- head tail oldint exitsave
- programname tdver tddate CR
- BS BLACK RED GREEN
- YELLOW BLUE MAGENTA CYAN
- WHITE INTENSITY BLINK IER
- IIR LCR MCR LSR
- MSR RLS RDA TRE
- MSI PIC EOI PICMASK
- ENABLE1 ENABLE2 DISABLE1 DISABLE2
- BIOSSEG KEYHEAD KEYTAIL EVEN
- ODD NONE COM1 COM2
- COM3 COM4 IRQ2 IRQ3
- IRQ4 offline recordtimeon timeleft
- puttime strg bstrg ucase
- dwrite gotopos dstr statusbar
- sysmessage readquick clearcom angotoxy
- anleft anright anup andown
- aneraseln anclear ancolor getkey
- comwait getinput readphone readdate
- printchar print comprint checkkey
- setuptri aysure Yes No
- XOFF set_cts cts_true pcbreadrec
-
-
-
- Triumph Software - TriDoor Documentation pg. 019
-
-
-
-
-
- WHO TO CONTACT
-
-
- Did your machine curse aloud in protest of our software? Are files
- missing from the release you obtained? Did raging demons come and take
- your dog? Did Valkaries cart your brother off to Valhalla?
-
- Well, for some of those problems you may have to contact someone else-
- we can't do EVERYTHING you know! But we can help solve your Triumph
- Software problems. If you have difficulties, questions, need a new
- release of our software, want an upgrade or even just have a bit of
- feedback for us, please feel free to give us a ring or send us a FidoNet
- message.
-
-
- Christopher M. Russo Voice : (508)263-8420
- Jeremy H. DuBois Voice : (508)263-7004
- (716)274-0227
-
- Triumph BBS (508)263-4247
- FidoNet 1:322/265
-
-
- Remember that those voice phones are our HOME phones as we do not
- yet have a business line- please refrain from hassling the other people
- that live there- NONE of us will answer "Hello, Triumph Software." We
- will tell you when we get the business line.
-
- We are also looking out for potential support boards and beta-testing
- systems, so if you have a system and are interested, make sure you
- inform us of your desire and eligibility.
-
-
- ...and Jeremy may be willing to give you his dog.
-
-
-
- Triumph Software - TriDoor Documentation pg. 020
-
-
-
-
-
- HISTORY OF TRIDOOR
-
-
- TriDoor and it's communications support is the end result of almost
- four years of effort by both Jeremy DuBois and myself. (Christopher
- M. Russo) We started one rainy day when Jeremy had informed me that
- he had managed to write some basic polling Pascal communications
- routines. As Jeremy already had a bulletin board system running at
- that time, I suggested that we write an on-line game for it.
-
- And that is when it all began. We went from writing a semi-complete
- and not-too-awful on-line game to writing DoorBase, our first version
- of an on-line door supporting unit. Then I wrote a game on my own-
- Monopolistic Competition, followed shortly thereafter by Monopolistic
- Competition II which was running off of a newer, but still bedraggled
- version of DoorBase.
-
- Then one day while trying to write a terminal program, we realized
- that the communications routines that Jeremy had made were simply not
- fast enough to handle all the tasking necessary, and at anything
- above 2400 baud, was a miserable failure. Thus, Jeremy set out once
- again to create newer, faster, interrupt driven routines.
-
- I had quite a lot of trouble dealing with the newer routines for
- reasons which, I admit, are beyond my knowledge. After time and
- perseverance, however, I mastered the new routines and re-wrote the
- newest version of DoorBase, now called TriDoor in the interest of our
- newly-founded company.
-
- And thus, I present to you said software and complete documentation
- for the easy usage and incorporation of communication and door support
- in your Pascal programs for QuickBBS and clones. I strongly believe that
- using TriDoor is the easiest, most user-friendly way of writing doors
- and on-line games available today.
-
- Finally, before we commence, I would like to take a moment to thank
- Jeremy for all his help and patience with my quirky little habits and
- programming nit-picks. I have never given another teacher more of a
- hard time than I gave him. Ridiculous as this may sound, he is an
- inspiration to me, and I thank him for all he's taught me and all he
- will, undoubtedly, teach me in the future.
-
-
-
-
- Triumph Software - TriDoor Documentation pg. 021
-
-
-
-
-
- OTHER PRODUCTS BY TRIUMPH SOFTWARE
-
-
- The following products are also available from Triumph Software.
- For more information on these products or specific consulting services,
- please contact us.
-
-
- TriComm . . . . . . . . . . . . . . . . . . . .Registered : $30
-
- TriComm is the original communications unit compiled for
- Turbo Pascal 5.5 and used in the creation of TriDoor. It
- currently supports COM1 and COM2 and runs at all baud
- rates. (Has been tested up to and over 9600 baud)
-
-
- TriUser . . . . . . . . . . . . . . . . . . . .Registered : $25
-
- TriUser is an on-line QuickBBS user editor written using
- the TriDoor on-Line door support unit. It also takes
- advantage of TriDoor's ANSI support features.
-
-
- WorldFix. . . . . . . . . . . . . . . . . . . . . . . . $200.00
-
- WorldFix is a utility for the Real World Accounting
- software package that will close data files in a matter
- of seconds as opposed to the minutes and hours that it
- takes Real World to do the same job. Triumph Software
- and Real World are not aphilliated in any way.
-
-
- Qstat . . . . . . . . . . . . . . . . . . . . .Registered : $20
-
- Qstat is a QuickBBS download counter that will keep
- track of downloads in the FILES.BBS files. Among it's
- many nice features are a limit of 999 downloads per file
- before returning to 0, (Most such programs only allow 99)
- a nice interface and display and an error log.
-
-
-
- Triumph Software - TriDoor Documentation pg. 022
-
-
-
-
-
- THINGS TO COME ("THE WORKBENCH")
-
-
- The main thing that is on the designing block is our Borland Turbo C
- TriDoor Library. The code has actually been written, it's only a matter
- of some testing time and working out a few kinks before you see this new
- addition in our communications package. Keep an eye out for it!
-
-
-
- Triumph Software - TriDoor Documentation pg. 023
-
-
-
-
-
- JOIN OUR FIDONET MAILING LIST
-
-
- Want to keep up on new additions to our software packages without
- having to constantly call us to get updates? All you need to do is
- have a valid FidoNet address and send us the following information :
-
-
- 01> Your name
- 02> Your FidoNet address or AKA
- 03> Your BBS/Data phone number
- 04> Your voice phone number
- 05> Your primary Triumph Software interests
- 06> Which Triumph Software packages you have registered (if any)
- 07> Your business name (if any)
- 08> Any comments or suggestions you may have (optional)
-
-
- You will then receive newsletters and blips about our software as
- such information comes around. A confirmation letter will be sent to
- you upon receival of your request.
-
-
-
- Triumph Software - TriDoor Documentation pg. 024
-
-
-
-
-
- A COMMENT ON QUALITY
-
-
- To finalize, I would like to take a moment to voice my thoughts on
- quality in programs and programming.
-
- I have spent over eight years working on and with bulletin board
- systems, an equal amount of time programming both at an amateur and
- a professional level, and three years or more programming for bulletin
- board systems.
-
- In that time I have seen many doors and many bulletin board systems,
- and I have noticed so many sloppy doors and on-line games that if I had
- a computer for every one I have ever seen, I would be able to put them
- together and form a top-of-the-line Sun SPARCStation with tint-control,
- a built-in microwave and a television.
-
- I can't tell you how many times I have run a program and then been
- asked, infuriatingly, "Cannot find BRUNxx.EXE. New Path?" or found
- that a program would literally crash inside of two minutes of operation
- on any machine that I could try it on.
-
- And all the programs that I saw grinding away at the disk-drive as
- they either accessed a massive load of disorganized data or simply were
- running in the slowest possible languages and needed three days to load
- 360k of marginally organized data.
-
- Then there were the programs that simply crashed without a peep, or
- crashed and threw some sickening statement like "KILLROY DEATH NOTICE
- #093284AF84UAREDEAD" at you as you sat in bewilderment.
-
- I am the pickiest person on earth when it comes to programming, so
- you can be assured that any product that you ever get from Triumph
- Software has been brutally criticized and abused to make sure it is
- doing everything it should be doing, doing it well, and then some.
-
- If I missed something, I will be ever amazed, but I assure you that
- I literally don't sleep until the problem is fixed.
-
- I hope you enjoy this and all of our programs and find them easy to
- use and well-written. If you have suggestions or complaints, please
- contact us/me as we/I are/am always happy to hear them and try to
- incorporate them.
-
-
- Happy Programming!
-
- -Christopher M. Russo
-