------------------------------------------------------------------ | | | | | | | TPASM Version 1.42 | | | | TPA System Manager | | | | For | | | | PCBoard Doors & Utilities | | | | | | TPASM (C) Copyright 1992-1995 Gary Meeker | | | | 725-C Old Norcross Road | | Lawrenceville, GA 30245 | | | | BBS -- (770) 962-1788 (V.FC) | | (770) 995-2692 (V.32bis) | | | | Dec 31, 1995 | | | | | ------------------------------------------------------------------ TABLE OF CONTENTS Page ----------------- ---- INTRODUCTION ------------ 1.0 What Is TPASM 2 1.1 Disclaimer & Warranty 2 1.2 About the Author 2 RUNNING TPASM ------------- 2.0 Where to place the files 3 2.1 How to use TPASM 3 2.2 Command Line Arguments 7 2.3 Registration 7 2.4 How to obtain updates 7 2.5 The future of TPASM 8 2.6 Revision History 8 2.7 Acknowledgments 9 2.8 Thank-you 9 Appendix 1 External File defintions 10 Appendix 2 PCBoard version numbers on Main Menu 11 -------------------------------------------------------------------- Page 2 TPASM Page 2 -------------------------------------------------------------------- 1.0 What is TPASM -------------------- TPASM is a System Manager for Third Party Applications installed in PCBoard's USERS.INF file. It is designed to allow Door and Utility Authors to create a control file to allow the Sysop to edit various parameters of the Door or Utility for each User, much the same way PCBSM allows the Sysop to edit the standard User record. It also handles Moving/Swapping/Copying conferences around and will properly handle message pointers, user flags and last in conference for the standard PCBoard Users record as well as the swapping the TPA Dynamic area for each TPA area installed. The CNAMES.@@@ records are moved. For PCBoard 15.0 CNAMES.ADD records are also moved, for PCBoard 15.2 CNAMES.IDX records are updated and for PCBoard 15.21 PCBFIDO.CFG records are updated and UUCP files are supported. For PCBoard 15.22 AREAS.DAT records are updated instead of PCBFIDO.CFG. 1.1 Disclaimer & Warranty -------------------------- TPASM is a shareware product. TPASM may be uploaded to BBS systems as long as copyright notices are not removed and no changes are made to the program. There are no warranties, expressed or implied, for unregistered copies of TPASM. Sysops who install TPASM on their systems assume any and all liabilities for anything which may result as a consequence of running TPASM. For registered copies of TPASM, Gary Meeker warrants that TPASM will perform as described in this documentation. In the event that TPASM does not perform as specified, then I may elect to fix TPASM or refund the amount paid, if notified within 30 days of registration. I shall not be liable for any damages, whether direct, indirect, special or consequential arising from a failure of this program to operate in the manner desired by the user. I shall not be liable for any damage to data or property which may be caused directly or indirectly by the use of this program. IN NO EVENT WILL I BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF YOUR USE OR INABILITY TO USE THE PROGRAM, OR FOR ANY CLAIM BY ANY OTHER PARTY. PCBoard is a registered trademark of Clark Development Co. Inc. 1.2 About the author --------------------- I have been programming for fifteen, starting with my first IMSAI 8080 home built computer. Most of my programming experience has been in assembly and BASIC (QuickBasic most often) although I have done some work in Turbo Pascal. I have written inventory control programs and order processing systems for a couple of clients. I started my BBS in 1986 as a Technical Support BBS for the company I work for, but it quickly became a public BBS and I started writing utilities to assist me in it's operation (PCBoard 10.0) and wrote a utility to convert all the files over when I upgraded to PCBoard 14.x. A few of the Utilities I have written or had a hand in modifying are CL-PRINT, ANSI.COM (ANSIPCB.COM) and CALLS.EXE. This is my first experience with releasing SHAREWARE and I hope it will be a good experience. -------------------------------------------------------------------- Page 3 TPASM Page 3 -------------------------------------------------------------------- 2.0 What directory do the files need to be in? ----------------------------------------------- TPASM needs a few files to run properly. First, it needs PCBOARD.DAT to locate the other PCBoard files. If a path is given on the command line TPASM will first look in that directory for the file, then it will look in the current directory for the file (as with all files). Failing to find it there, it will check the Environment for PCBDAT and if present it will use the FileSpec returned to locate the file. If that fails, also, then it will check the Environment for PCBDRIVE and PCBDIR and test again for the file. If the file can not be found then an error message will be printed and the program will terminate. Second, the PCBoard file PCBSM.CLR is used to define the colors for TPASM, which is designed with the look and feel of PCBSM and uses the same color scheme you have designated. In order to perform it's editing magic though, TPASM needs to find a .TPA control file for each TPA to be viewed/edited which defines to TPASM what fields are present and their data types, etc. TPASM will check the current directory and if not present will check the home directory from which the program loaded. A future version of TPASM will most likely have a .CFG file to define directories. The other file(s) TPASM will require are TPASM.KEY and a .KEY file for each TPA area to be viewed/edited. For a fully registered copy of TPASM, only a TPASM.KEY file will be required. Optionally, the Author of a Door or Utility might want to include TPASM with his/her program, rather than write a separate such program. A .KEY file will be included with this copy of TPASM that enables viewing/editing of that TPA area, but not others. A .KEY & .TPA file are ONLY required to display & edit TPA information and NOT for the Conference moving. 2.1 How do I use TPASM? ------------------------ After executing the program, you will be in the Main Menu. From here you select the main features of TPASM. To make a selection from the menu you may use press the Letter shown in the first column or you may use the cursor keys or TAB key to highlight the desired selection and press the ENTER key. Some selections will not be available (depending on registration type) and will be displayed in a different color to indicate that the selection is not available. > Select "User Info File TPA Maintenance" to view/edit the TPA area of an application. You will then be shown a menu of the TPA areas that are installed in your USERS.INF file. Those that are available for viewing/editing will be shown in a different color from those that are not. You will not be allowed to select those that are not able to be viewed/edited. There must be a .TPA definition file for each TPA area (and a .KEY file for unregistered versions) before TPASM can know how to handle the TPA area. After selecting a TPA area you will see a screen very much like the PCBSM screen for editing each Users record. Many of the same functions for moving from record to record are available and on screen directions are shown. NOTE: In this release, Editing is not complete and only the Static portion definitions are worked out. Since there are no TPA definition files though, this is not important yet. TPA files for PCBoard 15 PSA installations are included so you can play with editing these screens if you are running PCBoard 15.0 already. -------------------------------------------------------------------- Page 4 TPASM Page 4 -------------------------------------------------------------------- > Select "Edit TPA Definition File" to view/edit the TPA definition files. You will then be shown a menu of the TPA areas that are installed in your USERS.INF file. In this release, that is the only portion of the function completed. In a future release this will allow Door & Utility Authors to create the TPA file. Sysops might be allowed to change the file, but only the display position and label portion of it. The actual parameters will only be edited and displayed to the program author for his/her TPA area(s). > Select "Rearrange Conferences" to change conferences around. This is the number one feature currently in demand. After making this selection, you will presented with a screen in which you may enter conferences to be changed. You may move around the screen using the cursor and TAB keys and after entering all the conferences desired, press the F10 key to start the process. You will be first prompted for confirmation and if you left any lines blank, lines below that will be moved up to fill the vacant slots. The program will then Move/Swap/Copy the CNAMES.@@@ records for the conferences. Then it will process each User Record and the User Record number will be displayed at the top right of the screen. For PCBoard 15.0 CNAMES.ADD records will also be swapped. CAUTIONS: Make backups of your CNAMES, CNAMES.@@@, CNAMES.ADD, USERS & USERS.INF files. I have tested the program thoroughly, but anything could go wrong or power loss during the program could result in a loss of these files. The program reads/ writes directly to these files. Also shut down all nodes!! While in the first column, the left & right cursor keys and the space key will toggle thru the Swap, Move & Copy options. You may perform and combination of these options in a single pass. PgDn & PgUp will take you through the several pages of conference moving that you can define. (Unregistered version is limited to 5 entries). Select "Swap Conferences" to Swap two conferences instead. Conferences from a starting point to an ending point will be Swapped with conferences starting from a specified point. The Users Last In Conference value will also be swapped if the user was last in one of the two conferences involved. Select "Copy Conferences" to Copy conferences instead of swapping. Conferences from a starting point to an ending point will be Copied to conferences starting from a specified point. The Users Last In Conference value will be set to 0 if they were in the destination conference and not changed if they were in the source conference. Select "Move Conferences" to Move conferences instead of swapping. Conferences from a starting point to an ending point will be Moved to conferences starting from a specified point the source conference will then be blanked. The Users Last In Conference value will be set to 0 if they were in the destination conference and will be changed to the destination if they were in the source conference. -------------------------------------------------------------------- Page 5 TPASM Page 5 -------------------------------------------------------------------- Moving a range of conferences is the same as Inserting and Deleting conferences by moving conferences up or down. Example: Given 200 conferences defined in PCBSETUP, to insert 10 conferences at number 50 you would specify moving conferences 50-190 to 60-200. Given 200 conferences defined in PCBSETUP, to delete 10 conferences at number 50 you would specify moving conferences 60-200 to 50-190. TPASM will move them in reverse order if the Target range starting point is within the range to move. (The same applies for swap & copy). > Select "Zero Message Pointers to zero out LMR pointers in conferences. Only the Last Message Read pointers will be affected. > Select "Sort Conferences" to sort conferences alphabetically within a range you will define. (Unregistered version is limited to 1 entry). > Select "Edit Conference .LST files" to edit the BLT.LST, SCRIPT.LST, DIR.LST or CMD.LST for a conference. This feature was added to TPASM to make quick editing of these files possible. I got tired of the sequence of keys required under PCBSETUP to go from one conference to another. Now with Ctrl-PgUp or Ctrl-PgDn you can change from conference to another. Also with the F4 key you can pick from a list of conferences. Includes Search & Replace feature. Another feature available in TPASM is the ability to Export & Import these files with an ASCII copy. Pressing ALT-X will Export the file to an ASCII file with the extension of .DES in the same directory as the .LST file. This file is a comma delimited file and the columns are written to their full length to line them up for easy editing. CD-ROM's are a hassle to work with but this allows you to create an ASCII file with all the data using a text editor and then importing it by pressing ALT-M. If the .DES text file has more lines than the .LST file, it will be expanded to the number of lines in the text file. If there are less lines then the size will remain the same and only the imported lines will be changed accordingly. If the .DES file is not found in the directory where the .LST file is, TPASM will also look in the current directory. If it not found there then the request will be ignored and a beep will occur. This allows creating a file with changes that need to be made to the first few lines of a lot of different conferences and importing it into them. > Select "Edit External Definition File" to define additional files to be handled by TPASM when changing conferences around. This is an important part of TPASM. Taking care of PCBoard's portion of the job is one thing, but Doors (especially Mail Doors & Network Import / Export programs) also need to be handled. As an example Cam-Mail uses a file named CONFDEF.CNF that contains the default flags and which network the conference belongs to. If you use it's Export/Import programs, it also uses a file for each network which contains the last message exported pointer as well as such items as the Host's conference number, the Export/Import flag, Tagline choice, Export Echo Only flags and Check Dups flag (and probably some more). -------------------------------------------------------------------- Page 6 TPASM Page 6 -------------------------------------------------------------------- It is important to maintain this information also. TPASM does this by allowing you to define the format of the file as much as possible. The Author of the door should provide these definitions. (Unregistered version is limited to 1 entry and UUCP not supported). The definition screen looks like this: Edit External Definition File FileName O_Type S_Type Offset Size ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ C:\DOORS\CAM-MAIL\CONFDEF.CNF 0 0 0 2 C:\DOORS\CAM-MAIL\NETS\*.CNF 0 0 0 13 C:\DOORS\CAM-MAIL\BLTS\CAMB* -1 0 0 0 C:\DOORS\CAM-MAIL\FILES\CAMF* -1 0 0 0 C:\PCB\MAIN\CNAMES.@@@ 0 2 2 0 C:\PCB\MAIN\CNAMES.ADD 0 0 0 256 The last two entries MUST NOT be made, but do show values used by TPASM to handle those files. The definition of the fields are: FileName: The full Drive:\Path\Filename.Ext of the file(s) to be handled. The wildcard characters '*' and '?' are allowed and TPASM will handle all files found that match that filespec (so be careful as there may be files that match a filespec that should not be changed. O_Type: Offset Type 0: Normal, use Offset Value directly 1: Get Offset Value by reading byte at address specified by Offset 2: Get Offset Value by reading integer (2 bytes) 3: Get Offset Value by reading long integer (4 bytes) 4: Get Offset Value by reading single precision number (4 bytes) 5: Get Offset Value by reading double precision number (8 bytes) -1: Rename the file. The file itself will not be changed, but the filename must be changed as it contains the conference number directly in it. Cam-Mail uses this for which Bulletins and which File Directories to scan. The other 3 fields are unused. Only the wildcard '*' character may be used in the filename' -2: UUCP conference list file (registered version ony) S_Type: Size Type 0: Normal, use Size Value directly 1: Get Size Value by reading byte at address specified by Size 2: Get Size Value by reading integer (2 bytes) 3: Get Size Value by reading long integer (4 bytes) 4: Get Size Value by reading single precision number (4 bytes) 5: Get Size Value by reading double precision number (8 bytes) Offset: The Offset value to where conference data starts. As an example CNAMES.ADD has no offset so TPASM uses 0, and CNAMES.@@@ contains and integer that defines the size of each conference record. This creates an offset of 2. If the Offset is to be read from the file, this field will contain the address from which to read that value (the first byte is at 0). Size: The Size of each conference record. As an example CNAMES.ADD is 256 bytes per record and for CNAMES.@@@ TPASM must read the Size in the form of a 2 byte INTEGER at address 0. -------------------------------------------------------------------- Page 7 TPASM Page 7 -------------------------------------------------------------------- > Select "Shell to PCBSM" to run PCBSM from within TPASM. (Available only if Registered). Additional "Shell to xxxxx" selections can be made available (up to 5) by creating a TPASM.CFG file. Each line of the file consists of three parts seperated by commas. Example: UserSM, C:\DOORS\CAM-MAIL, USERSM.EXE The first item is the name to be shown in the menu. The Second item is the path to switch to if needed. The third item is the name of program to run. Be sure to include full Drive:\Path if the program is not in the directory switched to or the PATH. 2.2 Command Line Options ------------------------ /MONO Forces B/W mode operation /COLOR Forces Color mode operation /? Reports video mode data 2.3 Registering TPASM ---------------------- TPASM is not free software. TPASM should be registered no later than 30 days after installation. Registration is $25.00 and may be paid by check or money order. Refer to the enclosed file ORDER.FRM for complete registration instructions. Registering the product will expand the number of entries to 60 when entering Conference Rearrangements, Zero Last Message Pointer Ranges, sort ranges, and external file definitions. This will allow more operations in a single pass thru the Users file, while still allowing the program to be properly tested. 2.4 How will I get updates? ---------------------------- Updates will be available directly from my BBS and will be posted on other fine BBS's as soon as version 1.00 is released. Beta versions will only be posted on my BBS. The .KEY files will only available from my BBS after registration is received. It will also be mailed out with the latest release on diskette upon registration. -------------------------------------------------------------------- Page 8 TPASM Page 8 -------------------------------------------------------------------- 2.5 What is the future of TPASM? --------------------------------- Additional features are planned. * Completion of TPA definition file creating/editing for use by program Authors, then for use by Sysops. * Completion of User File maintenance to include conference areas and more data types as they arise. Input from Authors will be needed to determine these types. I am depending on the support from Authors who have a need for this type of program to define the structures that need to be supported. 2.6 Revision history --------------------- Date Version Details -------- ------- ------- 03-27-92 0.90á TPASM initial Beta release. 04-07-92 0.91á TPASM second Beta Release. Wasn't finding PCBOARD.DAT from environment Error in USER.INF file reading/writing - forgot LastMsgs pointers were LONG Int- big oops Changed to /AH & Far Array's to extend conference handling. 04-13-92 0.92á TPASM third Beta Release. PCBOARD.DAT was being read improperly if any line being skipped over contained a comma. Fixed. Added Conference Copy & Move features. Put creating CNAMES back into code at exit from program instead of doing it at each change. It's still slower than PCBSETUP. 04-14-92 0.93á TPASM fourth Beta Release. I failed to test it with less than 40 conferences and it issued an error with less than 40. Also if NO TPA's were defined it would issue an error. 12/17/92 0.94á TPASM fifth Beta Release- Added Last Message Pointer Zero feature 06/01/93 0.95á TPASM sixth Beta Release. Added conference range Swap, Move & Copy features Added Support for more TPA definitions & PCBoard 15.0 PSA definitions. Added PCBoard 15.0 compatibility using CNAMES.ADD Removed text CNAMES generation as PCBoard 15.0's PCBSETUP does not read this file any longer. 11/01/93 1.00 TPASM first Full Release. Redesigned User interface for entering conference rearranging data. Combined all functions into single option to allow different operations in a single pass thru the files. Added Sort Conferences option. Added External file handling for Door support when moving conferences. -------------------------------------------------------------------- Page 9 TPASM Page 9 -------------------------------------------------------------------- 11/11/93 1.01 Maintenence Release - Conference count off by 1 in error message when PCBSM was not run to update USERS.INF file after changing number of conferences with PCBSETUP Bug Fix: Block moves were not being done in reverse when the target was within the range of conferences being moved. - fixed. 06/25/94 1.10 New Feature Release - Added the ability to edit BLT.LST, SCRIPT.LST, DIR.LST & CMD.LST within TPASM. This includes an ASCII file import & export capabilities and easy conference selection. 11/11/94 1.20 Maintenence/New Feature Release - Updated for PCBoard 15.2 new extended conference names and CNAMES.IDX file. 11/19/94 1.21 Maintenence Release - Found that blank conferences are not written to the CNAMES.IDX file. 04/16/95 1.30 Maintenence/New Feature Release - Changed error reporting for insufficient memory. Changed file access on reading key file to allow setting R/O attribute on file. Added support for PCBFIDO.CFG & UUCP files for registered version. 06/01/95 1.40 New Feature Release - Added Global Search & Replace to .LST file editing. 06/05/95 1.41 Maintenence Release - Fixed "Press any key to Terminate" error if PCBFIDO.CFG, CNAMES.ADD or CNAMES.IDX not found. 12/31/95 1.42 Maintenence Release - Added support for AREAS.DAT that replaces the PCBFIDO.CFG file (as far as TPASM is concerned) Fixed SCREEN.LIB for 486 CPU Cache problems 2.7 Acknowledgments -------------------- Appreciation and many thanks are in order for the following people: * David Terry and the entire staff at Clark Development Co. 2.8 Thank-you -------------- I would like to thank the Sysop's who registered TPASM in it's final Beta release: Raymond Snow of Rocky Mountain Software BBS -------------------------------------------------------------------- Page 10 TPASM Page 10 -------------------------------------------------------------------- Appendix 1 External File defintions ---------- ------------------------ The following external file definitions are provided. If you have a different version of any of the programs, you should check with the Author to be sure that data is the same. Note the Directories listed will need to be edited to match your setup. Cam-Mail Version 1.30 to 1.47 ----------------------------- FileName O_Type S_Type Offset Size ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ 1) C:\DOORS\CAM-MAIL\CONFDEF.CNF 0 0 0 2 2) C:\DOORS\CAM-MAIL\NETS\*.CNF 0 0 0 13 3) C:\DOORS\CAM-MAIL\BLTS\CAMB* -1 0 0 0 4) C:\DOORS\CAM-MAIL\FILES\CAMF* -1 0 0 0 QMail Version 4.00 & QNet ------------------------- FileName O_Type S_Type Offset Size ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ ÍÍÍÍÍÍ 1) C:\DOORS\QMAIL\CONFLAGS 0 0 0 5 2) C:\PCB\MAIN\CNAMES.DAT 0 2 2 0 Bulletin & New File Scan information is maintained without any need for TPASM to change anything in this area. MarkMail Version ? --------------------- No information -------------------------------------------------------------------- Page 11 TPASM Page 11 -------------------------------------------------------------------- Appendix 2 PCBoard version numbers on Main Menu ---------- ------------------------------------ The Main Menu shows the version of PCBoard deteced by TPASM. The following version numbers are shown: 14.5a Indicates no additonal files were found 15.1 Indicates a CNAMES.ADD file was found 15.2 Indicates a CNAMES.IDX file was found 15.21 Indicates a PCBFIDO.CFG file was found (and Version 2) 15.22 Indicates an AREAS.DAT file was found (and version 3) If the files for each version are found they will be updated with the conference moves made. PCBFIDO.CFG will only be updated on the registered version of TPASM as will any specified UUCP files. The same is true of the new AREAS.DAT file. UUCP file support is not foolproof. It will attempt to change the number of any conference that has been moved but because not all lines have to have a number it does not know what to do with that conference. If you need to use TPASM to update these files then I will try to increase it's abilities to handle this in a future version.