home *** CD-ROM | disk | FTP | other *** search
/ The CIA World Factbook 1992 / k3bimage.iso / sel / 02 / 0029 / gtrunpcb.doc < prev    next >
Encoding:
Text File  |  1991-12-02  |  34.3 KB  |  633 lines

  1.  
  2.                                     GTRUNPCB 
  3.  
  4.                    A PCBoard Door Interface For GT Power BBSes
  5.  
  6.  
  7.             These programs, both in executable and source code form,
  8.                    as well as all associated documentation are
  9.                            Copr. 1988 by Scott Swaine
  10.  
  11.  
  12.  
  13.   DISCLAIMER:
  14.   ----------
  15.  
  16.     I make no warranties, either expressed or implied, as to the usefulness 
  17.     of this product under any application.  I will not be held liable for 
  18.     any damages, either incidental or consequential, that may arise from 
  19.     the use or misuse of this product. 
  20.  
  21.  
  22.   DISTRIBUTION:
  23.   ------------
  24.  
  25.     Redistribution of this software is subject to the following: 
  26.  
  27.        o  It may NOT be modified in any way.
  28.        o  It may not be sold or otherwise distributed for profit 
  29.           save for the following exceptions:
  30.           - Users groups and Public Domain software houses that 
  31.             distribute software for a nominal handling/media fee not
  32.             to exceed five (5) dollars (US).
  33.           - Online services that charge a fee for general access to 
  34.             the system.
  35.        o  No fee may be charged for it's use in any situation. 
  36.        o  All associated files comprising this package must be 
  37.           included in the same archive-type file.
  38.  
  39.     The source code is not being released for distribution.
  40.  
  41.  
  42.   CREDITS:
  43.   -------
  44.  
  45.     First off, let me give credit where credit is due.  I wish to thank the 
  46.     people who helped contribute to this program by providing me with the 
  47.     information I needed on the file formats for these PCBoard files.  I 
  48.     especially want to say thanks to Carl Evans, Sysop of Vervan's War 
  49.     Board, 714-989-7596.  Without his help, much of the information needed 
  50.     to make the PCBOARD.DAT file editor would have been much harder to come 
  51.     by.  I'm thankful for his patience, too!  For all the persistent 
  52.     nagging I put him through, asking questions of one kind or another, I'm 
  53.     STILL a member of his very fine BBS! 
  54.  
  55.     I also want to thank Harwood Software Associates for providing their 
  56.     fast and easy-to-use screen writing routines in HSA_TEXT which I'm 
  57.     using in MAKE_DAT.  This saved me a lot of extra work in the screen 
  58.     display routines.   
  59.  
  60.  
  61.   OVERVIEW:
  62.   --------
  63.  
  64.     One of the best things about BBSes nowadays are the 'doors'.  Doors are 
  65.     programs, like games and utilities, that are not usually a part of the 
  66.     BBS software itself.  There are many different kinds of programs that 
  67.     can be used in a door.  Many of these are 'dedicated' door programs.  
  68.     This means that they were always intended to be run in a door and 
  69.     therefore have built-in support for using the comm port, monitoring the 
  70.     carrier, etc.  Since these kinds of programs usually need some info 
  71.     from the BBS in order for them to know whether the user is 'local' (at 
  72.     the console) or 'remote' (calling in from somewhere else), what comm 
  73.     port is being used at this time, who the user is, how much time is left 
  74.     and various other pieces of info that tell it what was going on inside 
  75.     the BBS, the door program is usually designed to be specific to a 
  76.     particular kind of BBS software.  While this makes it very easy to set 
  77.     it up for use with THAT software, it makes it nearly impossible to use 
  78.     it with a different BBS software package.  Thus arises the need for 
  79.     conversion programs to make the info that the one BBS provides for it's 
  80.     door facility available for the other BBS's doors. 
  81.  
  82.     In this package, otherwise known as an 'archive', should be several 
  83.     files.  The following is a list: 
  84.  
  85.         GTRUNPCB.DOC - The thing you're gawking at now! 
  86.         MAKE_DAT.EXE - The utility to create the file PCBOARD.DAT. 
  87.         MAKE_SYS.EXE - The utility to create the file PCBOARD.SYS. 
  88.         PCBDATRF.ARC - A reference guide to the PCBOARD.DAT file formats. 
  89.         README.*     - An addendum to the docs with last minute info. 
  90.  
  91.     If the ARC you received does NOT have all of the above files in it, a 
  92.     complete copy can be downloaded from my BBS (see the info at the end of 
  93.     this documentation).  
  94.  
  95.     MAKE_SYS and MAKE_DAT are both equipped to handle the file formats used 
  96.     by PCBoard version 12.1 and 14.0. 
  97.  
  98.     MAKE_SYS creates the file PCBOARD.SYS, which is required by all PCBoard 
  99.     door programs.  It provides the information on the current user that 
  100.     the door needs to function properly.  You will need to run MAKE_SYS 
  101.     just prior to running the PCBoard door program. 
  102.  
  103.     MAKE_DAT is needed only for those doors that insist on using some of 
  104.     the information that is stored in a file called PCBOARD.DAT.  The 
  105.     PCBOARD.DAT file contains various configuration information for a 
  106.     PCBoard BBS.  This information consists of file names, path names, user 
  107.     access privileges, etc.  The usual stuff one would need to have defined 
  108.     to operate a BBS.  This program should be run only once to set up the 
  109.     PCBOARD.DAT file the first time, then can be put away (unless you need 
  110.     to edit the file later).  The PCBOARD.DAT file does not change from one 
  111.     door execution to another.  However, you MAY need two copies of the 
  112.     file, one for doors using the version 12.1 format and one for doors 
  113.     using the version 14.0 format. 
  114.  
  115.  
  116.   USING MAKE_SYS: 
  117.   --------------
  118.  
  119.     Program features:
  120.  
  121.       This program is a lot more flexible than any others like it that I've 
  122.       seen.  While they just barely cover some of the basics, I go into the 
  123.       internals of the PCBOARD.SYS file.  Not only do I set the proper 
  124.       values according to what the BBS uses, I also allow for command line 
  125.       switches to set options that door programs might use. 
  126.  
  127.       MAKE_SYS doesn't require a lot in order for it to work.  In fact, it 
  128.       doesn't really require ANYTHING to use it for normal purposes.  To 
  129.       use it, simply call it by name.  You don't have to be in the GT 
  130.       directory for it to find the GTUSER.BBS file.  It looks in the 
  131.       environment to find the GTPATH variable and then looks in the 
  132.       directory that it points to.  Then, it reads the GTUSER.BBS file, 
  133.       parses it into it's constituent data fields, converts them into the 
  134.       PCBoard equivalent, adds in any command line parameter switch 
  135.       settings, and then writes it out as a PCBOARD.SYS file in the current 
  136.       directory. 
  137.  
  138.       MAKE_SYS uses default values for everything in the PCBOARD.SYS file, 
  139.       including the version of the format for the file.  But the option to 
  140.       control certain key areas has been built in.  The PCBOARD.SYS file 
  141.       has a multitude of data fields in it which contain various kinds of 
  142.       information from the BBS for doors to use at their discretion.  Many 
  143.       of these have no GT equivalent, so I made up some reasonable values 
  144.       for them.  There are also a bunch of 'flag' values which can each 
  145.       turn on or off a particular option.  These can be controlled by using 
  146.       a set of command line switches.  In the following paragraphs I will 
  147.       attempt to explain what each of these switches does and what the 
  148.       default value is. 
  149.  
  150.  
  151.     Command Line Switches: 
  152.  
  153.       All switches must start with either a slash ('/') or a hyphen ('-'), 
  154.       followed by a letter defining the type of switch and then a colon 
  155.       (':').  There are two kinds of switches in use here.  One kind takes 
  156.       a 'Y' or 'N' value to turn 'on' or 'off' an option, respectively and 
  157.       the other takes a numeric value.  However, there is one command line 
  158.       option that is NOT a switch.  This one is simply a question mark 
  159.       ('?') and it tells MAKE_SYS to list the help screen.  This option 
  160.       must be the only thing on the command line.  Anything after it will 
  161.       be ignored and anything before it will cause a error.  To use it, 
  162.       simply enter: 
  163.  
  164.            MAKE_SYS ? 
  165.  
  166.       Each switch must be separated by a space on the command line in order 
  167.       for the program to recognize it as a separate switch.  The order in 
  168.       which they appear is not significant, nor is the case (upper or 
  169.       lower) of the letter in the switch.  Here is a list of the available 
  170.       switches: 
  171.  
  172.        Switch   Value(s)   Description 
  173.          /A:     Y or N    Caller Alarm. 
  174.                              Some doors will beep or otherwise make some 
  175.                              kind of noise to let you know a caller has 
  176.                              entered it.  If this option is turned off, you 
  177.                              won't hear the beep.  The default for this is 
  178.                              to turn it off (I don't want my computer 
  179.                              beeping at me all the time). 
  180.          /B:     Y or N    Sysop Page Bell. 
  181.                              In most dedicated door program, the Sysop can 
  182.                              enter 'chat' mode with the user.  But some 
  183.                              doors can also 'page' the Sysop in much the 
  184.                              same way as they can in the main board.  This 
  185.                              switch controls whether they can or not.  The 
  186.                              default is 'not'. 
  187.          /C:     number    Comm Port Select. 
  188.                              In version 14.0, but not version 12.1, you can 
  189.                              put the comm port number in the PCBOARD.SYS 
  190.                              file.  Valid values are 0, 1 & 2.  If a 0 is 
  191.                              used, 'local' mode is forced.  See the section 
  192.                              below on 'local' operation.  The default comm 
  193.                              port is COM1. 
  194.          /D:     Y or N    Display Active. 
  195.                              Normally, the console display is active while 
  196.                              the user is in a door.  This is so the Sysop 
  197.                              can see who is doing what on the system.  But 
  198.                              if the Sysop should want to disable the 
  199.                              display, a value of 'N' would do it.  
  200.          /G:     Y or N    ANSI Graphics Override. 
  201.                              GT provides doors with the current status of 
  202.                              the ANSI mode.  This had been a problem at one 
  203.                              time with some conversion programs that did 
  204.                              not properly set this switch.  The default is 
  205.                              to use the setting in the BBS.  This switch is 
  206.                              only for those special occasions where an 
  207.                              override is needed. 
  208.          /P:     Y or N    Printer Logging. 
  209.                              This switch turns on or off the printer 
  210.                              logging feature of the doors that log caller 
  211.                              activities on a printer.  I'm not sure how 
  212.                              many people have a printer hooked up to their 
  213.                              BBS computer, but I'm not one of them.  So the 
  214.                              default for this is NOT to use a printer (it's 
  215.                              just a waste of paper, anyway). 
  216.          /T:     number    Time Allowance Override. 
  217.                              GT doesn't provide doors with an accurate time 
  218.                              value of how long the caller has on the 
  219.                              system, but MAKE_SYS can figure it out from 
  220.                              the info it DOES provide.  However, if you 
  221.                              want a user to have a certain 'fixed' amount 
  222.                              of time in a door, specify that amount, in 
  223.                              minutes, on this switch.  The number must be 
  224.                              between 1 and 1440 minutes.  This will 
  225.                              override the default of using the amount left 
  226.                              on the board. 
  227.          /V:     number    PCBoard Version. 
  228.                              Even though version 14.0 of PCBoard has yet to 
  229.                              be officially released (as of this writing), 
  230.                              most PCBoard doors out right now are made for 
  231.                              use under PCBoard version 12.1.  Therefore, 
  232.                              the default is to make a ver. 12.1 compatible 
  233.                              format of PCBOARD.SYS.  If you wish to run a 
  234.                              version 14.0 compatible door, specify a '14' 
  235.                              as the value for this switch.  You may also 
  236.                              specify a '12' if you wish for informational 
  237.                              purposes.  The result will be the same as if 
  238.                              you did not use it at all. 
  239.  
  240.  
  241.       When specifying a command line switch that takes a Y/N value, you 
  242.       need only specify the first letter to define the value.  In other 
  243.       words, you could use 'YES' or 'NO' if you wanted, but MAKE_SYS only 
  244.       looks at the first letter of the value to identify it.  So, I could 
  245.       specify a switch with something like 'You_betcha!' and it would 
  246.       interpret it as a 'Y' only.  For these types of switches, simply 
  247.       specifying the switch itself, without any Y/N value, will assume a 
  248.       'Y' value.  
  249.  
  250.       On the switches that require a numeric value, it must be a positive 
  251.       integer.  If the first character is not a number, an error is 
  252.       returned.  Numbers after a decimal point are ignored. 
  253.  
  254.  
  255.     Time Calculations:
  256.  
  257.       The GTUSER.BBS file provides minimal information on the amount of 
  258.       time left on the board.  It provides the amount of time left till the 
  259.       end of the current call and the amount of time left till the next 
  260.       scheduled event.  It also provides the time (in HH:MM format) that 
  261.       the file was written.  Since none of these time values are current as 
  262.       of the moment the BBS exits to the door, it is up to the door program 
  263.       to figure out from this information (and also the current DOS time) 
  264.       what amount of time the user actually has left on the board.  It is a 
  265.       good idea to do this calculation anyway, even if a future version of 
  266.       GT rewrites the GTUSER.BBS file before running the door or includes 
  267.       more information in it on the time left on the board.  This way, you 
  268.       will KNOW you are getting an accurate time calculation. 
  269.  
  270.       MAKE_SYS has the ability to figure out how much time the user has 
  271.       left by using a combination of things.  It takes the time entry from 
  272.       GTUSER.BBS, which was the 'current' time when the file was written, 
  273.       and calculates from the DOS time how much time has elapsed since 
  274.       then.  Once I get the elapsed time, I get the total time allowed for 
  275.       that call, be it the regular 'total' time or the 'event' time (as 
  276.       specified in GTUSER.BBS).  If the event time comes before the total 
  277.       time, I use it instead, and it takes off 5 minutes from that time for 
  278.       GT's 'pre-event wait', since it's not included in the value from the 
  279.       file.  It then finds out how much time is remaining by subtracting 
  280.       the elapsed time from the total allowed time. 
  281.  
  282.       When calculating the time left on the board, I also take off 2 
  283.       minutes from the 'allowed' time.  This will insure the user does not 
  284.       come back from the door only to be rudely kicked off because the time 
  285.       ran out on the board. 
  286.  
  287.  
  288.     Local Operation: 
  289.  
  290.       In GT Power ver. 14 and up, the baud rate parameter in the GTUSER.BBS 
  291.       file will read 'LOCAL' if the Sysop has logged in locally at the 
  292.       console.  GT Power ver. 13 did NOT do this.  So, if the Sysop wanted 
  293.       to use a door in 'local' mode, the GTUSER.BBS file would have to be 
  294.       edited to show 'LOCAL' in place of the baud rate for the conversion 
  295.       program to work properly and set 'local' mode (assuming the door 
  296.       program didn't have a special switch to use local mode).  MAKE_SYS 
  297.       can work around this problem by using the '/C:' (Comm Port Select) 
  298.       switch.  If a comm port of '0' is specified, a 'local' mode is forced 
  299.       regardless of the status of the baud rate parameter in GTUSER.BBS.  
  300.       This way, the Sysop of a GT 13.00 BBS can log on locally by forcing 
  301.       the 'local' condition.  GT 14.xx Sysops don't really need this 
  302.       feature since the 'LOCAL' parameter would already be specified in 
  303.       GTUSER.BBS. 
  304.  
  305.  
  306.     Fixed DTE:
  307.  
  308.       The PCBOARD.SYS for version 14.0 of PCBoard has a field for 
  309.       specifying a 'fixed' DTE (computer-to-modem speed).  MAKE_SYS has no 
  310.       way of knowing what the fixed DTE is that GT in using, if any.  So 
  311.       this baud rate is set to the same as in GTUSER.BBS (supposedly the 
  312.       computer-to-modem speed) or to 2400 baud if in 'local' mode (why 
  313.       not?).
  314.  
  315.  
  316.     PCBoard-Specific Data:
  317.  
  318.       There is a lot of different kinds of data stuffed into this little 
  319.       128-byte file.  Much of it is specific to PCBoard operations.  These 
  320.       data fields contain such stuff as user record number, download 
  321.       limits, conference areas visited, node chat status, etc.  These have 
  322.       no direct GT counterparts, so I put in the appropriate data to make 
  323.       it workable in a situation where this data might come under real use 
  324.       by some doors.  ProDoor is an example.  It uses several areas of 
  325.       information in this and other files to do it's job.  I'm not 
  326.       guaranteeing that ProDoor will work using MAKE_SYS as part of it's 
  327.       door setup batch routine, but it's at least a step closer.
  328.  
  329.       There is one field, however, that PCBOARD.SYS uses which is not 
  330.       supported with the equivalent information from GT.  This is the 
  331.       password field.  First of all, I don't know the format of the 
  332.       GTMAIL.CTL file where GT stores it's user records.  But that's beside 
  333.       the point.  I'm using a 'fake' password in this field.  I don't want 
  334.       to jeopardize anyone's security by fetching their real password from 
  335.       their user record in GT, so I'm using the word 'PASSWORD' in this 
  336.       field.  I doubt many door programs will use this field much, anyway.  
  337.       But just in case you start experiencing problems with a door not 
  338.       allowing you in because of a bad password, you'll need to edit the 
  339.       data files of that door to fix things. 
  340.  
  341.  
  342.     Undocumented Features: 
  343.  
  344.       I'm including this section because of a couple features that probably 
  345.       should be described but, for all intents and purposes, should be 
  346.       considered 'undocumented'.  These are 'extra' command line parameters 
  347.       that are supported solely for the use of future programs I may make 
  348.       as an interface to certain doors that use several other PCBoard 
  349.       files.  An example of this kind of door is ProDoor.  As such, these 
  350.       extra parameters have no use for the casual user in general.  
  351.  
  352.       There are two command line parameters that are recognized by MAKE_SYS 
  353.       which would normally be passed to it by the future interface programs 
  354.       using it.  If they are used at all, they must appear in a very 
  355.       specific order. 
  356.  
  357.       The first parameter is specified by the '@' character and is 
  358.       immediately followed by a number (no spaces).  It MUST be the first 
  359.       option after the program name.  It specifies the user number for the 
  360.       current user as it is registered in PCBoard's user database.  This 
  361.       value must be a positive integer (greater than 0). 
  362.  
  363.       The other parameter is for use only in the version 14 format 
  364.       PCBOARD.SYS file (it is ignored in the version 12 file).  It is 
  365.       specified by the '#' character and is also immediately followed by a 
  366.       number.  This parameter MUST be the second one on the command line 
  367.       and MUST follow the '@' parameter described above (ie. you can't use 
  368.       this one if you're not using the other one).  This one specifies a 
  369.       fixed DTE baud rate in case you are using a USR, Hayes or similar 
  370.       modem that supports a fixed computer-to-modem baud rate.  Valid baud 
  371.       rate values on this option are 9600 and 19200.  Those are the most 
  372.       often used and the only ones I support here. 
  373.  
  374.       As I said before, IF these options are used at all by the user, they 
  375.       must be used in this order.  If these extra options are not the first 
  376.       and second parameters, respectively, on the command line, they will 
  377.       cause an error.  All other parameters (the normal ones specified with 
  378.       the '/' and/or '-') are to follow these.  They may be in any order in 
  379.       relation to each other. 
  380.  
  381.  
  382.     Exit Return Codes:
  383.  
  384.       When exiting, MAKE_SYS sets a return code according to the results of 
  385.       the operation.  This result code can then be tested by DOS in the 
  386.       batch file with the ERRORLEVEL statement.  There are 3 possible codes 
  387.       in all.  If all is well and the PCBOARD.SYS file was created 
  388.       properly, it returns a code of '0'.  If there was an error in the 
  389.       command line somewhere, like a bad command switch or value, it 
  390.       returns a result code of '1'.  The final result code is for a file-
  391.       related error.  The reasons for this could be if the GTUSER.BBS could 
  392.       not be read, the GTPATH environment variable was missing or if the 
  393.       PCBOARD.SYS file could not be written properly.  The result code in 
  394.       this case is '2'.  These result codes may not be of much use to the 
  395.       casual user, but may be used by any future programs I make to 
  396.       interface with these programs. 
  397.  
  398.  
  399.   USING MAKE_DAT: 
  400.   --------------
  401.  
  402.     I know of only one other GT to PCBoard conversion program that creates 
  403.     the PCBOARD.DAT file.  And even at that, it's far from being complete 
  404.     or even the least bit useful to a door that needs to get some 
  405.     information from it.  MAKE_DAT will allow you to create and edit a 
  406.     complete file for those door programs that need to use it.  I searched 
  407.     far and wide and went through great pains to get information on the 
  408.     data formats for this file, so I hope somebody appreciates it. 
  409.  
  410.     Since this file only needs to be made once, you can put MAKE_DAT away 
  411.     someplace until you need it again for editing the file.  Also, it would 
  412.     be best to put the PCBOARD.DAT file in a place common to where you 
  413.     normally put these files for your PCBoard doors to use.  
  414.  
  415.     This program provides an easy-to-use interface for users while editing 
  416.     the data fields of the PCBOARD.DAT file.  In fact, because of the ease 
  417.     of use and power, I wouldn't be surprised if some PCBoard Sysops used 
  418.     it as a 'quick fix' utility for reconfiguring the file.
  419.  
  420.     For a reference to the data fields in this file, see the included files 
  421.     PCBDAT.REF & PCBDAT.OTL, both of which are contained in the file 
  422.     PCBDATRF.ARC along with some documentation in PCBDATRF.DOC.  They 
  423.     describe the data formats of both the version 12.1 and 14.0 files.  The 
  424.     file PCBDAT.REF is a plain ASCII 'block save' file generated from the 
  425.     file PCBDAT.OTL.  The file PCBDAT.OTL is the original work file I was 
  426.     using when putting things together.  It's a SideKick Plus outline file.  
  427.     You will need SideKick Plus or some kind of conversion program to use 
  428.     it. 
  429.  
  430.  
  431.     Running The Program:
  432.  
  433.       When you first start up the program, you may include the pathname of 
  434.       where the PCBOARD.DAT file is to be on the command line.  If the file 
  435.       exists in that directory, you will be asked to use the existing 
  436.       information in it, overwrite it with a new file or to abort the 
  437.       program without doing anything.  If you choose to use the existing 
  438.       data, it will automatically determine what format file it is, load it 
  439.       in and then go to edit it.  If you should want to overwrite the file, 
  440.       it continues as if you were creating a brand new file by asking which 
  441.       version format it should be in.  This is a multiple choice field (see 
  442.       below), so you use the cursor left and right to select the version 
  443.       number you want and then press F10 to 'accept' this choice.  After 
  444.       selecting the version, you can start editing it.  If you decide to 
  445.       abort at this point, just press ESC.  When starting a new file, the 
  446.       data fields are all set up with default values. 
  447.  
  448.       Once you get into the editing mode, a notice showing which version of 
  449.       file you are editing is displayed in the upper left of the 'work 
  450.       screen' area. 
  451.  
  452.  
  453.     Moving Through The Fields:
  454.  
  455.       To move from one field to another, you would use the up and down 
  456.       cursor keys and the tab keys.  The up arrow moves you to the next 
  457.       higher field above the current one.  In the case where there are 
  458.       multiple columns of fields, it will move to the first column of the 
  459.       bottom line of the columns (unless you move to a previous page which 
  460.       will put you on the last column).  With this in mind, you can 
  461.       probably assume the down arrow moves down through the fields.  It 
  462.       moves to the first column of the top line in multi-column areas. 
  463.  
  464.       To move across through multiple columns of fields, you use the tab 
  465.       key.  It will move forward through the columns, wrapping at the last 
  466.       column to the first one of the next line.  It also can move down to 
  467.       the following field below the current one in single-column screens.  
  468.       If you want to back up to the previous field in a row, use the shift-
  469.       tab key (referred to here as a 'backtab').  The backtab performs the 
  470.       opposite function of the tab.  With it, you can move backwards 
  471.       through the columns, wrapping from the first column to the last one 
  472.       on the previous line.  You may also move upward through the screen 
  473.       'page' of single-column fields. 
  474.  
  475.       You will notice that I refer to the screens as 'pages' of fields.  
  476.       This is how they are structured.  You may move 'off' the bottom of 
  477.       one page to the top of the next page or 'off' the top of a page to 
  478.       the bottom of the previous one.  The page number is displayed in the 
  479.       upper right corner of the 'work screen' area.  The last page will 
  480.       wrap around to the first page as will the first page wrap to the 
  481.       last.  This structure is similar to a circle where you can keep going 
  482.       'round and 'round to find the things you want. 
  483.  
  484.       You may move through the pages by using PgUp to go backwards through 
  485.       the pages (page 2 to page 1, etc.) and PgDn to go forward (page 1 to 
  486.       page 2, etc.).  This will place the cursor at the top of the page 
  487.       (first field) for you to go from there.  This makes for an easy trip 
  488.       to the field you want to edit, if you know what page it's on. 
  489.  
  490.  
  491.     Editing The Fields: 
  492.  
  493.       The PCBOARD.DAT file is a very complex data file with a LOT of 
  494.       information stored in it.  But I was able to break it down and create 
  495.       three different types of fields, two of which are quite similar (I 
  496.       derived the function for handling one from the other).  These field 
  497.       types are multiple choice, toggle and text entry. 
  498.  
  499.       The multiple choice fields offer you a selection of choices.  You use 
  500.       the left and right arrow keys to move the selection cursor between 
  501.       them.  Once the cursor is on the choice you want, you may go on to 
  502.       the next field and edit it. 
  503.  
  504.       The toggle fields work in exactly the same way as the multiple choice 
  505.       fields.  You use the left and right arrow keys to move between two 
  506.       possible choices, 'on' and 'off'.  These kinds of fields control a 
  507.       true/false or on/off type of option with usually enables and disables 
  508.       certain functions in the PCBoard BBS.
  509.  
  510.       The text entry field is a bit more complex.  In these fields, you 
  511.       might have a couple of different kinds of data that may be edited.  
  512.       This may be standard alphanumeric text (like filenames, pathnames, 
  513.       prompt lines, etc.), numeric entries or time entries (in HH:MM 
  514.       format).  The filenames and pathnames, text that normally should be 
  515.       upper case, are forced as such.  In other words, you can't type a 
  516.       lower case letter in a filename.  But in the prompt lines and Sysop 
  517.       name field, you may use upper and lower case letters as well as any 
  518.       other kinds of characters.  I don't do any checking on the validity 
  519.       of the filenames and pathnames.  That's up to you and what ever 
  520.       program needs this information.  Numeric entries only allow numbers 
  521.       to be entered, as do the time entries. 
  522.  
  523.       When editing a text entry field, you have the use of certain cursor 
  524.       keys and other keys to help move around the field and edit the data.  
  525.       To move through the data in the field, you may use the left and right 
  526.       cursor keys.  Left moves you one space to the left, until you hit the 
  527.       left side of the field.  Right moves you one space to the right until 
  528.       you reach the limit on that end, which may be the space right after 
  529.       the end of the current text or the rightmost location of the field 
  530.       (whichever come first).  The HOME key moves you to the beginning of 
  531.       the field and the END key moves you to the end of the text. 
  532.  
  533.       If you should reach the rightmost location of the field, the cursor 
  534.       will appear to go off the end and disappear.  This is because it is 
  535.       out of the range of the field and you can't go any further.  I've 
  536.       seen some routines where it reaches the end of the field and stops, 
  537.       then if you go to backspace, you take the character under the cursor 
  538.       with you to the left.  If you wanted to delete that character, you 
  539.       have to go another step to do it.  Not here.  If you go to the end of 
  540.       the data field, you can still use backspace to delete that last 
  541.       character.  The backspace key deletes the character on the left of 
  542.       the cursor, moving all data after it one space to the left.  The DEL 
  543.       key deletes the character under the cursor and moves text on the 
  544.       right to fill in. 
  545.  
  546.       Normally, when you first go into a text entry field, you go in using 
  547.       'overwrite' mode, ie. text you type is written over the existing 
  548.       data.  If you hit the INSERT key, you may toggle 'insert' mode on and 
  549.       off.  With it on, text you type is inserted at the current cursor 
  550.       location pushing the data after it to the right.  A status indicator 
  551.       on the bottom line of the screen will show a low intensity 'Ins' when 
  552.       insert mode is off and a highlighted one when on. 
  553.  
  554.       The above functions work in both the regular alphanumeric entries and 
  555.       numeric entries (where the text must be all numbers).  But a slightly 
  556.       different setup is used when editing a time entry.  To save on some 
  557.       code so I didn't have to move characters all over the place, I 
  558.       disabled the backspace, DEL and INSERT keys for the time entries.  In 
  559.       these, you simply type the numbers and use the left/right cursor keys 
  560.       to move through it.  The cursor will automatically jump over the 
  561.       colon in the middle of the time field. 
  562.  
  563.       Once you have finished typing in the data (if any), you may move on 
  564.       to the next field. 
  565.  
  566.  
  567.     Clicks And Buzzes: 
  568.  
  569.       One little thing I included to help let you know what's going on is a 
  570.       beeper.  It 'clicks' whenever you move from one field to another and 
  571.       'buzzes' when you encounter an error.  The errors may be something 
  572.       like trying to move beyond the left or right boundaries of a field, 
  573.       trying to type more text than a field can hold, typing an illegal 
  574.       character for an entry, or entering a number for a numeric entry that 
  575.       is out of the range for that entry.  This last one happens after you 
  576.       try exiting from the field to let you know it won't accept it as-is. 
  577.  
  578.  
  579.     Exiting And Saving:
  580.       
  581.       Now what kind of program would this be if you couldn't exit from it 
  582.       or save the data?  If, for some reason, you decide NOT to keep the 
  583.       changes to the data you're currently editing, you may hit ESC to 
  584.       abort the program.  If you want to exit and save the data, hit the 
  585.       F10 key.  Pretty simple, eh? 
  586.  
  587.  
  588.   SHAREWARE: 
  589.   ---------
  590.  
  591.     I am releasing these programs to the public as Shareware.  If you 
  592.     should find them useful and continue using them past a trial period of 
  593.     two weeks, a contribution of five (5) dollars (US) is requested.  
  594.     Please send a check or money order to: 
  595.  
  596.          Scott Swaine
  597.          c/o Console Command Headquarters
  598.          160-D N. Fairview Ave.
  599.          Suite 223
  600.          Goleta, CA  93117
  601.  
  602.     These programs are full working versions so there is no 'Registered 
  603.     Copy' to buy.  But I hope you see fit to send in your contribution 
  604.     anyway.  Supporting this software will encourage me to bring out new 
  605.     and better programs in the future.  When sending in your contribution, 
  606.     please include a short note on where you found this program so I can 
  607.     get some idea of the extent of the distribution of this software. 
  608.  
  609.  
  610.   CONCLUSION: 
  611.   ----------
  612.  
  613.     These programs are probably all you'll need to set up and run most 
  614.     PCBoard doors successfully on a GT Power BBS.  I went to great lengths 
  615.     to make sure that these programs reproduced the exact data required by 
  616.     those doors.  I hope they serve you well. 
  617.  
  618.     If you should ever find a problem in the operation of these programs, 
  619.     let me know so I can fix it.  I try very hard to make programs that are 
  620.     bug-free, but even *I* can miss something (although it doesn't happen 
  621.     very often, heh heh).  Bug reports, questions, comments, etc. can be 
  622.     directed to me via the information below.  Enjoy!
  623.  
  624.  
  625.                                        Scott Swaine, Sysop 
  626.                                        Console Command Headquarters 
  627.                                        (805) 968-5094, 24 hours/day 
  628.                                        300/1200/2400/9600 baud, 8-N-1 
  629.                                        GT Network net/node 054/000 
  630.  
  631.                                        CompuServe ID:  72057,1542 
  632.  
  633.