home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 14 / CDACTUAL.iso / cdactual / demobin / share / program / Pascal / TSCRSYS.ZIP / TSS.MAN < prev    next >
Encoding:
Text File  |  1989-02-16  |  45.1 KB  |  1,006 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                         The Turbo-Screen System
  23.                           Version TSS 1.0
  24.                                  by
  25.  
  26.                         THE CONNELLY BROTHERS
  27.  
  28.                     "We Make Software Make Software"
  29.  
  30.                           Copyright 1988,1989
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.                    "If a man makes a better mousetrap,
  41.                  the world will beat a path to his door."
  42.                                         Ralph Waldo Emerson
  43.  
  44.  
  45.  
  46.      Documentation and User's Manual
  47.      ============= === ====== ======
  48.      Table of Contents
  49.      ----- -- --------
  50.  
  51.      SECTION                                                    NO.
  52.      -------                                                    ---
  53.      License Statements                                         1
  54.      Introduction to Turbo-Screen System                        2
  55.      Installation                                               3
  56.           System Requirements                                   3.1
  57.                Hardware                                         3.1.1
  58.                Software                                         3.1.2
  59.           Performing the Installation                           3.2
  60.      The TSS Panel Development Environment -- A Quick Overview  4
  61.      Panel Design                                               5
  62.           Creating a Panel File                                 5.1
  63.           Panel Limitations                                     5.2
  64.      Creating the Common User Interface Code                    6
  65.           Running the TSS program                               6.1
  66.           Debugging the Panel File                              6.2
  67.           Running the Test Code                                 6.3
  68.      Advanced Panel Building                                    7
  69.           Cursor-Movement/Editing Control -- Key-Functions      7.1
  70.           Screen Attributes Usage                               7.2
  71.      Communication with Authors                                 8
  72.      Warranty                                                   9
  73.      Turbo-Screen Registered Version Order Form                 10
  74.  
  75.  
  76.  
  77.      Appendices
  78.      ----------
  79.  
  80.      Appendix A.................Available Key-Functions
  81.      Appendix B.................Extended key code definitions
  82.      Appendix C.................Default Key-Function/Key Assignments
  83.      Appendix D.................The Test File and Panel Call Variables
  84.      Appendix E.................Screen Attributes
  85.      Appendix F.................Turbo Pascal Version 4.0 Support
  86.  
  87.  1   License Statements
  88.      ======= ==========
  89.  
  90.      This software is protected by both United States copyright law and
  91.      international treaty provisions. Therefore you must treat this
  92.      software just like a book, with the following exceptions.
  93.      If you have legally acquired a copy of the Turbo-Screen System that
  94.      is a REGISTERED version, then THE CONNELLY BROTHERS authorize you
  95.      to make archived copies of the software for the sole purpose of
  96.      backing-up the software to protect your investment from loss.
  97.  
  98.      The Turbo-Screen System consists of a CODE GENERATING PROGRAM
  99.      (Called TSS.EXE),
  100.      example panel design files, a Units file
  101.      (Called TSSLIB.TPU or TSSLIB04.TPU),
  102.      a documentation file (Called TSS.MAN),
  103.      and installation files (Called TSSINST.EXE and TSSINST.HLP).
  104.  
  105.      If you have legally acquired a copy of the UNREGISTERED version of
  106.      the Turbo-Screen System, then you may make copies of the COMPLETE
  107.      TURBO-SCREEN SYSTEM for individuals that intend to use the
  108.      Turbo-Screen System for their non-business and non-profit use.
  109.      Those copies must contain this documentation as part of the copy
  110.      procedure.  If those individuals intend to use the Turbo-Screen
  111.      System to create profitable products or for profit or business,
  112.      then the individual or legal entity must legally acquire the
  113.      REGISTERED version from the THE CONNELLY BROTHERS (SEE SECTION
  114.      10).  If any company or corporation intends to use the
  115.      the Turbo-Screen System, then that company or corporation
  116.      must acquire the REGISTERED version of the Turbo-Screen System.
  117.  
  118.      Programs that you write which use code that is generated by the
  119.      REGISTERED version of Turbo-Screen System may be used, given away,
  120.      or sold without additional license or fees.  Included in the
  121.      Turbo-Screen System diskettes is a support file called TSSLIB.TPU
  122.      in the REGISTERED version which is proprietary to THE CONNELLY
  123.      BROTHERS.  You may use this file with the programs that you create
  124.      using panels from the Turbo-Screen System for your own personal
  125.      use.  In addition, to the extent the programs that you write and
  126.      compile using code generated by TSS.EXE make use of this support
  127.      file, you may distribute this support file in combination with such
  128.      programs, provided that you do not use, give away, or sell the
  129.      support file separately.
  130.  
  131.  2   Introduction to the Turbo-Screen System
  132.      ============ == === ============ ======
  133.  
  134.      Turbo-Screen was conceived as a means to get programs running
  135.      quickly while spending minimum time developing the screen panels
  136.      for those programs.  Turbo-Screen generates Pascal code that
  137.      performs the Common User Access for your application code.  Common
  138.      User Access (CUA) is terminology used by the IBM Systems
  139.      Application Architecture (SAA).  Even though Pascal is not a
  140.      language that is accepted within SAA, we have tried to keep our
  141.      general terminology compatible with the concepts and terminology of
  142.      SAA.
  143.  
  144.      The Turbo-Screen System (Hereinafter called TSS) was developed
  145.      to allow the easy definition and implementation of screen
  146.      panels.  Implementation requires the TSS abilities to:
  147.  
  148.  
  149.      1. Locate and place messages, and Entry or Menu panel variables
  150.      (fields to be edited or chosen) on the screen.
  151.  
  152.      2. Control the editing of the panel fields through the positioning
  153.      of a cursor with Cursor-Movement/Editing functions (called
  154.      Key-Functions).
  155.  
  156.      3. Pass the panel field values to variables within the main
  157.      program.
  158.  
  159.      An additional feature includes the ability to assign Key-Functions
  160.      to any available keystroke(s).  The Key-Function key assignment, as
  161.      well as the Key-Functions themselves, are supported by low-level
  162.      (SOURCE AVAILABLE TO REGISTERED USERS) routines supplied with the
  163.      TSS System as a Pascal Unit File called TSSLIB.TPU.
  164.  
  165.      The TSS System contains a CODE GENERATING PROGRAM program (called
  166.      TSS.EXE) that generates Pascal procedures that interface your Menu
  167.      Design (through a Menu Design File that you build) into a main
  168.      Pascal program. TSS.EXE also produces sample test code as an
  169.      example of menu inclusion in a main program.  This test code allows
  170.      the user to quickly test menu and entry panel ideas.
  171.  
  172.  3   Installation
  173.      ============
  174.  
  175.  3.1 TSS System Requirements
  176.      --- ------ ------------
  177.  
  178.  3.1.1   Hardware: IBM PC or Compatible with 360 kb floppy disk drive
  179.                    and 256K of memory.
  180.  
  181.  3.1.2   Software: DOS2.0 or higher operating system.
  182.                    Borland's Turbo Pascal Versions 4.0 or 5.0.
  183.  
  184.  3.2 Performing the Installation
  185.      ---------- --- ------------
  186.  
  187.      1. Edit Config.sys & make sure that files=20 is present
  188.      2. Insert the installation diskette in the source drive
  189.      3. Make the source drive the current drive
  190.      4. At the DOS prompt type:
  191.         TSSINST
  192.      5. Insure that Borland's Turbo Pascal Command Line Compiler
  193.         is in the Path.
  194.      6. Execute SWAPTPU.BAT if you will be running Turbo Pascal
  195.         Version 4.0 (See Appendix F).
  196.  
  197.      The installation program will then ask questions pertaining to the
  198.      target drive name, directory, etc.
  199.  
  200. 4    The TSS Panel Development Environment -- A Quick Overview
  201.      === === ===== =========== ===========    = ===== ========
  202.  
  203.      The TSS system includes an executable program, called
  204.      TSS.EXE which takes an input Panel Design File (See section
  205.      on Panel Design), with an extension of PAN, and produces
  206.      three additional files.  These files include a variable
  207.      definitions file, with extension CON, an interface procedures
  208.      file, with extension PRC, and a test file, with extension TST.
  209.      For example, if we created a Panel Design File called XX.PAN and
  210.      input that file to TSS.EXE which produces XX.CON, XX.PRC, and
  211.      XX.TST.
  212.  
  213.      The XX.CON and XX.PRC could be included in your code for
  214.      implementation.  A sample call of the interface procedures is
  215.      included in the XX.TST file.
  216.  
  217.      The following diagram will help illuminate the above description:
  218.  
  219.  
  220.                               XX.PAN
  221.                         (Panel Design File)
  222.                                \/
  223.                                \/
  224.                              TSS.EXE <---------------------- TSS.DEF
  225.                      (Code Generating Program)             (Last input
  226.           -----------(TSS executable Program)--------       file and
  227.          \/                    \/                   \/     colors used)
  228.          \/                    \/                   \/
  229.         XX.TST                XX.CON               XX.PRC
  230.      (Test Program)   (Variable Definitions)  (Interface Routines)
  231.     (or Your Code?)            \/                   \/
  232.          \/                    \/                   \/
  233.          \/                    \/                   \/
  234.       Program Test;            \/                   \/
  235.       Uses DOS,CRT,TSSLIB;     \/                   \/
  236.       {$I XX.CON} <--------------                   \/
  237.       {$I XX.PRC} <-----------------------------------
  238.       Begin
  239.         (Variable Initialization Code)
  240.         XX(... Screen Control Variables,Variables to return);
  241.                       (SEE APPENDIX D)
  242.       End.
  243.  
  244.      NOTE:  DOS and CRT Units are part of Borland's Turbo Pascal Library
  245.      called TURBO.TPL.  TSSLIB is a Turbo- Screen Units file called
  246.      TSSLIB.TPU.
  247.  
  248.  5   Panel Design
  249.      ===== ======
  250.  
  251.      A panel is part of a communication link between user and program,
  252.      between fingers with eyes and keyboard with screen.  A panel not
  253.      only tells a program what to do, but also tells us what a program
  254.      can do.  This function is performed using panels that give us
  255.      choices and panels that allow us to enter values.  These panels
  256.      are called MENU and ENTRY PANELS, respectively.  A Menu Panel,
  257.      like the menu at a breakfast cafe, can give us a choice of items
  258.      to pick, examine, or execute (eat).  In the cafe we might have a
  259.      choice between coffee or milk, between bacon and eggs and/or
  260.      pancakes with fruit.  In addition after we choose our meal we must
  261.      enter our quantitative desires about the chosen items:  how many
  262.      eggs; how well cooked; or how should they be cooked?  These values
  263.      would be communicated through an Entry Panel.
  264.  
  265.  
  266. 5.1  Creating a Panel File
  267.      -------- - ----- ----
  268.  
  269.      Both types of panels have two important characteristics.  First, we
  270.      have an organized list of the items to choose or places to enter
  271.      the pertinent data.  Second, we have other notes, instructions,
  272.      labels, explanations, and titles (Breakfast Cafe) on our menu page
  273.      (Computer Screen).  The first set of characteristics pertain to
  274.      MENU or ENTRY VARIABLE FIELDS (hereinafter called just FIELDS)
  275.      while the second set of characteristics refer to MESSAGES.  Fields
  276.      are on the screen to be chosen or interacted with (an active thing)
  277.      while the Messages are on the screen to merely inform (a passive
  278.      thing).
  279.  
  280.      If we are to build panels, then we must be able to place our
  281.      Messages and Fields on our screen and return the input data back to
  282.      our program (or vice versa).  To accomplish this we must place
  283.      specific information about our panel within a PANEL DESIGN FILE.
  284.      The Panel Design File is an ASCII file with a file name extension
  285.      of PAN.  This file can be created with Borland's Turbo Pascal
  286.      Compiler's editor or any other simple text editor.  The Panel
  287.      Design File holds both MESSAGE LOCATIONS, FIELD LOCATIONS, and
  288.      contents of Messages as well as FIELD ATTRIBUTES, i.e., FIELD
  289.      LENGTHS on the screen, VARIABLE TYPES, and the VARIABLE NAMES
  290.      associated with the Fields.
  291.  
  292.      To specify the locations of Messages or Fields, one merely
  293.      must place a character (chosen by the user) in the file to denote
  294.      the beginning location of the Message or Field.  The chosen
  295.      character for Messages is called a MESSAGE LOCATION CHARACTER and
  296.      the chosen character for Variable Fields is called a FIELD
  297.      LOCATION CHARACTER.
  298.  
  299.      These characters must be placed within the first 25 lines and
  300.      first 80 characters to be meaningful for the normal sized screen
  301.      (See Panel Limitations Section).
  302.  
  303.      Default location characters (which may be changed by the user) are
  304.      @, Char(64), for Messages and ^, Char(94), for Fields.
  305.  
  306.      Messages and Field Attributes are entered as strings of
  307.      characters within special (user denoted) characters called MESSAGE
  308.      DELIMITER CHARACTERS and FIELD DELIMITER CHARACTERS.
  309.  
  310.      Default delimiter characters are #, Char(35), for Messages and |,
  311.      Char(124), for Fields.  An example message is:
  312.  
  313.      #Here is a message!#
  314.  
  315.      The message length can vary between one and eighty characters.
  316.  
  317.      A Message must be specified for each Message Location Character.
  318.      The Message may be placed anywhere within the Panel Design File.
  319.      The Messages will be assigned to Message Locations based on reading
  320.      order, i.e., reading from left to right and down the page.  This
  321.      ordering rule will establish the first Message, which goes with the
  322.      first Message Location Character and so forth.
  323.  
  324.      Field Attributes must also be associated with each Field Location
  325.      Character.  The Field attributes are defined as follows:
  326.  
  327.      First, the Variable type must be specified by using the characters
  328.      S,R,I for String,Real and Integer type variables. Next, the Field
  329.      Length (between one and eighty characters in length) must be
  330.      specified, and last, the Variable Name is entered along with the
  331.      closing Variable Delimiter Character.  The Variable Type, Field
  332.      Length, and Variable Name must separated by colons, :.
  333.  
  334.      An example Field Attribute definition would be:
  335.  
  336.      |S:15:DATA_STRING|
  337.  
  338.  
  339.      This would define the first Field as a string of length 15 and the
  340.      Variable Name of DATA_STRING is the variable that passes the
  341.      string from the panel (TSS generated code) to your application
  342.      code.  Alternately, real and integer types would be defined as
  343.      follows:
  344.  
  345.      |R:10:Realvar|
  346.      |I:5:Intvar|
  347.  
  348.      Example Panel Design files are included for both the Entry Panel
  349.      and a Menu Panel.  These files are called ENTRY.PAN and MENU.PAN.
  350.  
  351.      Complete example panels, i.e., with variables initialized and the
  352.      screen control set member, "editoff" (for Menu Panels), (see
  353.      Advanced Panel Building Section), are available in the files
  354.      ENTRY.PAS and MENU.PAS.
  355.  
  356. 5.2  Panel Limitations
  357.      ----- -----------
  358.  
  359.      TSS was specifically developed for applications which were programmed in
  360.      Borland's Turbo Pascal 4.0 and 5.0 and that were executed on a DOS
  361.      operating system.  Because of the DOS requirement TSS can only
  362.      effectively support a screen that is one character (the last character
  363.      on the screen -- the lower right hand character) less than the rated
  364.      screen size.  TSS now supports 25 lines by 80 characters minus one
  365.      character sized screens.  We lose the last character because DOS scrolls
  366.      the entire screen one line when we write the last character to the
  367.      screen.
  368.  
  369.      To overcome this limitation, one must design panels that do not
  370.      write the last character.  Two simple rules that will accomplish
  371.      this are:
  372.  
  373.           1.  Assume the screen is 24 lines by 80 characters in size.
  374.  
  375.           2.  Assume the screen is 25 lines by 79 characters in size.
  376.  
  377.      TSS can handle 50 Messages and 50 Fields along with their
  378.      associated Locations.
  379.  
  380.      A Message, or Field length can be between one and eighty
  381.      characters.
  382.  
  383. 6    Creating the Common User Interface Code
  384.      ======== === ====== ==== ========= ====
  385. 6.1  Running the TSS program
  386.      ------- --- --- -------
  387.  
  388.      To create your user interface code you merely type in TSS at the
  389.      DOS prompt.
  390.  
  391.      The program will present two entry panels for you to interact with.
  392.  
  393.      The first panel allows you to input the file name (EXTENSION OF PAN
  394.      IS ASSUMED) of your Panel Design File and to alter the default
  395.      Field or Message Delimiter and Location Characters.  You process
  396.      the first panel by pressing the F3 key.
  397.  
  398.      The second panel allows you to change the colors of the
  399.      inactive Fields, the highlights or reverse video of the actively
  400.      edited Fields, the colors of the background, and the colors of the
  401.      Messages on the screen.  You process the second panel by pressing
  402.      the F3 key.
  403.  
  404.      The program will then continue into an ERROR CHECKING mode and
  405.      will present an opportunity to produce executable code.
  406.  
  407. 6.2  Debugging the Panel File
  408.      --------- --- ----- ----
  409.  
  410.      When the Turbo-Screen System detects an error within the Panel
  411.      Design File, it produces both screen error messages and a file of
  412.      error messages that has an extension of ERR along with a prefix
  413.      file name of your Panel Design File's prefix file name (XX.ERR if
  414.      your Panel Design File's file name was XX.PAN).
  415.  
  416.      The error file will contain error messages concerning errors of the
  417.      following type:
  418.  
  419.      1.  The number of Message Locations is not equal to the number
  420.      of Messages.  This error means that either the number of Message
  421.      Locations is incorrect or that the number of Messages is
  422.      incorrect.  Inspect the Messages and Message locations for missing
  423.      Message Delimiters and Message Location Characters.
  424.  
  425.      2.  The number of Field Locations is not equal to the number
  426.      of Fields.  This error means that either the number of Field
  427.      Locations is incorrect or that the number of Fields is
  428.      incorrect.  Inspect the Fields and Field locations for missing
  429.      Field Delimiters and Field Location Characters.
  430.  
  431.      3.  The number of Messages or Fields in the Panel Design File is
  432.      too great for Turbo-Screen System support (SEE PANEL
  433.      LIMITATIONS).
  434.  
  435.      4.  Variable names are RESERVED WORDS.  Change the name of the
  436.      specific variables that have caused these errors.
  437.  
  438. 6.3  Running the Test Code
  439.      ------- --- ---- ----
  440.  
  441.      The Turbo-Screen System can utilize the Turbo Pascal Command Line
  442.      Compiler to produce Panel test code directly from the TSS.EXE or
  443.      TSSUR.EXE program execution.  That code (called XX.EXE where XX.PAN
  444.      is the input Panel Design File) can be executed by typing in the
  445.      Panel Design File prefix name (here XX).  Insure that Borland's
  446.      Turbo Pascal Command Line Compiler is in the Path.
  447.  
  448.      You may also compile the Test Code File (XX.TST) using the standard
  449.      Turbo Pascal version 4.0 or 5.0 Compiler.
  450.  
  451.      The Turbo-Screen System also creates compiler directives that will
  452.      change the compiler parameters (memory allocations).  These
  453.      directives could be referenced if you experience memory allocation
  454.      errors within your application code.
  455.  
  456. 7    Advanced Panel Building
  457.      ======== ===== ========
  458.  
  459.  
  460. 7.1  Cursor-Movement/Editing Control--Key-Functions
  461.      ----------------------- ------------------------
  462.  
  463.      Turbo-Screen contains Key-Functions for moving to or modifying
  464.      Field values.  Some Key-Functions are clear to end of Field, exit
  465.      Panel, break out (cancel program).  A Turbo-Screen user has the
  466.      flexibility to change the assignment of any or all of the field
  467.      movement or editing functions to any key.  This enables the
  468.      programmer to conform to any local Key-Function customs or habits
  469.      such as IBM's SAA function key standards.  In order for
  470.      Turbo-Screen to keep track of the keystrokes that perform editing
  471.      or movement functions on the screen, global data is kept in
  472.      TSSLIB.TPU.  This data gives each key stroke an assigned
  473.      Key-Function.
  474.  
  475.      Key-functions are panel movement or editing functions that normal
  476.      menu or entry panels would perform.  Some simple editing or moving
  477.      functions of an entry program would include a function that moved
  478.      to the next field or deleted a field entry, etc..  Turbo-Screen has
  479.      a complete set of Key-Functions for movement, editing and control.
  480.      The complete set of Key-Functions are shown in the APPENDIX A.
  481.  
  482.      As described above, these Key-Functions are assigned to key strokes
  483.      for the panel's control.  The assignment of each Key-Function to a
  484.      key stroke is completely user configurable within the
  485.      user's application code by use of the procedure set_key_fnc within
  486.      TSSLIB.TPU.
  487.  
  488.      Set_key_fnc changes the Key-Function assigned to a key  within
  489.      TSSLIB.TPU.  To assign a new Key-Function to a key, set_key_fnc is
  490.      called before the TSS.EXE generated panel procedure is called.  The
  491.      procedure is called as follows:
  492.  
  493.      set_key_fnc(KEYNUMBER, KEYFUNCTION);  ,
  494.  
  495.      where KEYNUMBER is an integer variable with the key number stored
  496.      within it.  Key numbers are the standard ASCII ordinal number
  497.      (KEYNUMBER:=ORD(CHAR(KEYNUMBER)) or the extended ASCII ordinal
  498.      number plus 256.  See either the file SPECKEYS.H or APPENDIX B for
  499.      some example key numbers.  An example of mapping the break_out key
  500.      to the ^C key stroke would be accomplished by the following Pascal
  501.      statement.
  502.  
  503.      set_key_fnc(CTLC,break_out);   or
  504.  
  505.      set_key_fnc((3+256),break_out);.
  506.  
  507.      So, until break_out is re-assigned to another key stroke, the key
  508.      sequence of pressing the control key then a 'C' would halt the
  509.      program.  See Appendix C for the default Key-Function/Key
  510.      assignment upon usage of the unit TSSLIB.TPU.
  511.  
  512. 7.2  Screen Attribute Usage
  513.      ------ --------- -----
  514.  
  515.      Panel Screen Control is performed by utilizing a set of screen
  516.      control variable members that mediate Screen Control Functions.
  517.      The Screen Control Functions offer features that allow for the
  518.      development of Entry, Menu, POP-UP, or PULL-DOWN Panels.
  519.  
  520.      Panel Screen Control is processed by adding/deleting control word
  521.      set elements to the screen control set variable "sccn".  Each
  522.      control word activates/deactivates a specific menu function. To add
  523.      or delete functions use the following set operation:
  524.  
  525.      sccn:=sccn+[editoff]-[erron];
  526.  
  527.      This has the effect of turning off Field editing and turning off
  528.      Field entry error checking.  A list of the set elements as defined
  529.      for screen control GLOBAL set variable "sccn" is available in
  530.      APPENDIX D.
  531.  
  532.      As a result of the above Panel screen control set elements, the
  533.      Turbo-Screen user has a complete flexibility when presenting
  534.      screens and can be used to develop POP-UP Panels.
  535.  
  536. 8    Communication with Authors
  537.      ------------- ---- -------
  538.  
  539.      The authors welcome your feedback.  If you have any comments,
  540.      questions, or bugs to report, then please send them to:
  541.  
  542.      THE CONNELLY BROTHERS
  543.      P.O. BOX  280527
  544.      LAKEWOOD, CO.   80228-0527
  545.  
  546.      Unfortunately, and realistically, we will not be able to respond
  547.      to all correspondence, but we will make an attempt to address
  548.      important issues about the Turbo-Screen System.
  549.  
  550.  
  551. 9    Warranty for a REGISTERED Version of Turbo-Screen
  552.      -------- --- - ---------- ------- -- ------------
  553.  
  554.      With respect to the physical diskette enclosed herein, THE
  555.      CONNELLY BROTHERS warrants the same to be free of defects in
  556.      materials and workmanship for a period of 60 days from the date of
  557.      purchase provided that the physical diskette was acquired directly
  558.      from THE CONNELLY BROTHERS.  If you need to return the diskette,
  559.      then please mail the diskette to THE CONNELLY BROTHERS at the
  560.      address provided above.  The remedy for breach of this warranty
  561.      shall be limited to the replacement of the diskette and shall not
  562.      encompass any other damages, including, but not limited to, the
  563.      loss of profit, and any special, incidental, consequential, or
  564.      other similar claims.
  565.  
  566.      THE CONNELLY BROTHERS specifically disclaim all other warranties,
  567.      expressed or implied, including, but not limited to, implied
  568.      warranties of merchantability and fitness for a particular purpose
  569.      with respect to defects in the diskette and documentation, and the
  570.      program license granted herein in particular, and without limiting
  571.      operation of the program license with respect to any particular
  572.      application, use, or purpose.  In no event shall THE CONNELLY
  573.      BROTHERS be liable for any loss of profit or any other commercial
  574.      damage, including, but not limited to, special, incidental,
  575.      consequential, or other damages.
  576.  
  577. 10   Turbo-Screen Registered Version Order Form
  578.      ------------ ---------- ------- ----- ----
  579.  
  580.      If you like the results that you get from the UNREGISTERED version
  581.      of the Turbo-Screen System, and need the Source for the Libraries
  582.      of the REGISTERED version or use Turbo-Screen System for profit or
  583.      business (See License Statements-Section 1.0), then you must acquire
  584.      REGISTERED version for THIRTY DOLLARS (U.S. Dollars by check or
  585.      money-order) plus Shipping, Handling, and any applicable Taxes.  To
  586.      order the REGISTERED version of the The Turbo-Screen System:  print
  587.      the following form, fill in the form, place the completed form in
  588.      an envelope with the check or money-order, and mail the envelope to
  589.      the address listed below.
  590.  
  591.      ----------------------Cut Here-------------------------------------
  592.  
  593.      TURBO-SCREEN SYSTEM REGISTERED VERSION ORDER FORM
  594.  
  595.  
  596.      TO:
  597.      ---
  598.      THE CONNELLY BROTHERS
  599.      P.O. BOX  280527
  600.      LAKEWOOD, CO.   80228-0527
  601.  
  602.      ORDER:
  603.      ------
  604.  
  605.      Number of Copies   Unit Cost                      Cost   (U.S. Dollars)
  606.      ----------------   ----------------------------   ----------------------
  607.                         $30.00 Plus $3.00 Shipping
  608.      ________________   and Handling = $33.00 Each.    $_____________________
  609.                         Colorado Residents add
  610.                         3.1% State Tax                 $_____________________
  611.  
  612.                         TOTAL                          $_____________________
  613.  
  614.      FROM:
  615.      -----
  616.      NAME: _________________________________________________________
  617.  
  618.      TITLE:_________________________________________________________
  619.  
  620.      COMPANY:_______________________________________________________
  621.  
  622.      STREET ADDRESS: _______________________________________________
  623.  
  624.      CITY: _________________________________________________________
  625.  
  626.      STATE: __________________________  ZIP: _______________________
  627.  
  628.  
  629.  
  630.      ----------------------Cut Here-------------------------------------
  631.  
  632.      APPENDIX A
  633.      -------- -
  634.  
  635.      Key-Functions:
  636.  
  637.      KEY-FUNCTION
  638.      LITERAL       DEFINITION
  639.      -----------   ----------
  640.      backspace   - Backspace over a character or move backward.
  641.      break_out   - When the key that is mapped to the break_out function is
  642.                    pressed, the executing program is halted.
  643.      clr_eol     - Clear to the end of a field.
  644.      delete      - Delete a character.
  645.      down        - Move down one field. Down is calculated as the closest field
  646.                    below the current field occupied by the cursor.
  647.      downr       - Move down one field until the cursor is at the bottom most
  648.                    field, then move to the next column to the right.
  649.                    (note: This could be a right or left downward field move)
  650.      normal      - The key value read in will be acted upon as a normal
  651.                    key, i.e., it will be passed to the program.
  652.                    An 'a' key is pressed so, an a is generated
  653.                    in a screen field.
  654.      exit_panel  - Exit panel returns from the panel procedure to the
  655.                    calling program.
  656.      ins_toggle  - Allow insertion of text within a field.
  657.      left        - Move to the closest left most field relative to the cursor.
  658.      move_bol    - Move to the beginning of a field.
  659.      move_eol    - Move to the end of a field.
  660.      next_field  - Move to the next field.
  661.      nullk       - Do nothing when this key is struck.
  662.      prev_field  - Move to the previous field.
  663.      right       - Move to the closest right most field relative to the cursor.
  664.      up          - Move up one field. Up is calculated as the closest field
  665.                    above the current field occupied by the cursor.
  666.                    (note: This could be a right or left upward field move)
  667.      upr         - Move up one field until the cursor is at the upper most
  668.                    field, then move to the next column to the right.
  669.  
  670.      APPENDIX B
  671.      -------- -
  672.  
  673. {speckeys.h --- Turbo Screen System keyboard map include}
  674. { 7/21/88}
  675.  
  676.      Special keys -- Extended key codes:
  677.  
  678.      Note: Extended 101-102 keyboard's function keys 11, 12 may not work
  679.      correctly.
  680.      This is a reported and confirmed bug within Turbo Pascal V 4.0 as of
  681.      4/12/88.
  682.      Some AT clones work fine but IBM-AT's do not.
  683.  
  684.      Syntax:
  685.      <Program-reference> = <value>;   { description }
  686.  
  687.      CTLAT= 0;          { control-@                                 }
  688.      CTLA=  1;          { control-a                                 }
  689.      CTLB=  2;          { control-b                                 }
  690.      CTLC=  3;          { control-c                                 }
  691.      CTLD=  4;          { control-d                                 }
  692.      CTLE=  5;          { control-e                                 }
  693.      CTLF=  6;          { control-f                                 }
  694.      CTLG=  7;          { control-g                                 }
  695.      BS  =  8;          { backspace                                 }
  696.      HT  =  9;          { horizontal Tab                            }
  697.      CTLJ= 10;          { control-j                                 }
  698.      VT  = 11;          { vertical Tab                              }
  699.      CTLL= 12;          { control-l                                 }
  700.      CR  = 13;          { carriage return                           }
  701.      CTLN= 14;          { control-n                                 }
  702.      CTLO= 15;          { control-o                                 }
  703.      CTLP= 16;          { control-p                                 }
  704.      CTLQ= 17;          { control-q                                 }
  705.      CTLR= 18;          { control-r                                 }
  706.      CTLS= 19;          { control-s                                 }
  707.      CTLT= 20;          { control-t                                 }
  708.      CTLU= 21;          { control-u                                 }
  709.      CTLV= 22;          { control-v                                 }
  710.      CTLW= 23;          { control-w                                 }
  711.      CTLX= 24;          { control-x                                 }
  712.      CTLY= 25;          { control-y                                 }
  713.      CTLZ= 26;          { control-z                                 }
  714.      ESC = 27;          { escape                                    }
  715.  
  716.      BHT =271;          { shifted horizontal tab                    }
  717.      ALTQ=272;          { alternate-q                               }
  718.      ALTW=273;          { alternate-w                               }
  719.      ALTE=274;          { alternate-e                               }
  720.      ALTR=275;          { alternate-r                               }
  721.      ALTT=276;          { alternate-t                               }
  722.      ALTY=277;          { alternate-y                               }
  723.      ALTU=278;          { alternate-u                               }
  724.  
  725.      ALTI=279;          { alternate-i                               }
  726.  
  727.      ALTO=280;          { alternate-o                               }
  728.      ALTP=281;          { alternate-p                               }
  729.      ALTA=286;          { alternate-a                               }
  730.      ALTS=287;          { alternate-s                               }
  731.      ALTD=288;          { alternate-d                               }
  732.  
  733.      ALTF=289;          { alternate-f                               }
  734.      ALTG=290;          { alternate-g                               }
  735.      ALTH=291;          { alternate-h                               }
  736.  
  737.      ALTJ=292;          { alternate-j                               }
  738.      ALTK=293;          { alternate-k                               }
  739.      ALTL=294;          { alternate-l                               }
  740.  
  741.      ALTZ=300;          { alternate-z                               }
  742.      ALTX=301;          { alternate-x                               }
  743.      ALTC=302;          { alternate-c                               }
  744.      ALTV=303;          { alternate-v                               }
  745.      ALTB=304;          { alternate-b                               }
  746.      ALTN=305;          { alternate-n                               }
  747.      ALTM=306;          { alternate-m                               }
  748.  
  749.      F1 = 315;          { function key 1                            }
  750.      F2 = 316;          { function key 2                            }
  751.      F3 = 317;          { function key 3                            }
  752.      F4 = 318;          { function key 4                            }
  753.      F5 = 319;          { function key 5                            }
  754.      F6 = 320;          { function key 6                            }
  755.      F7 = 321;          { function key 7                            }
  756.      F8 = 322;          { function key 8                            }
  757.      F9 = 323;          { function key 9                            }
  758.      F10= 324;          { function key 10                           }
  759.  
  760.      HOME=327;          { home                                      }
  761.      UPA =328;          { up arrow                                  }
  762.      PGUP=329;          { page up                                   }
  763.      LEFTA=331;         { left arrow                                }
  764.      RIGHTA=333;        { right arrow                               }
  765.      ENDK=335;          { end key                                   }
  766.      DOWNA=336;         { down arrow                                }
  767.      PGDN=337;          { page down                                 }
  768.      INS =338;          { insert                                    }
  769.      DEL =339;          { delete                                    }
  770.  
  771.      EF11=389;          { function key 11 enhanced 101 keyboard     }
  772.      EF12=390;          { function key 12 enhanced 101 keyboard     }
  773.  
  774.      F11 =340;          { shifted-function key 1                    }
  775.      F12 =341;          { shifted-function key 2                    }
  776.      F13 =342;          { shifted-function key 3                    }
  777.      F14 =343;          { shifted-function key 4                    }
  778.      F15 =344;          { shifted-function key 5                    }
  779.      F16 =345;          { shifted-function key 6                    }
  780.      F17 =346;          { shifted-function key 7                    }
  781.      F18 =347;          { shifted-function key 8                    }
  782.      F19 =348;          { shifted-function key 9                    }
  783.      F20 =349;          { shifted-function key 10                   }
  784.  
  785.      F21 =350;          { alternate-function key 1                  }
  786.      F22 =351;          { alternate-function key 2                  }
  787.      F23 =352;          { alternate-function key 3                  }
  788.      F24 =353;          { alternate-function key 4                  }
  789.      F25 =354;          { alternate-function key 5                  }
  790.      F26 =355;          { alternate-function key 6                  }
  791.      F27 =356;          { alternate-function key 7                  }
  792.      F28 =357;          { alternate-function key 8                  }
  793.      F29 =358;          { alternate-function key 9                  }
  794.      F30 =359;          { alternate-function key 10                 }
  795.  
  796.      F31 =360;          { control-function key 1                    }
  797.      F32 =361;          { control-function key 2                    }
  798.      F33 =362;          { control-function key 3                    }
  799.      F34 =363;          { control-function key 4                    }
  800.      F35 =364;          { control-function key 5                    }
  801.      F36 =365;          { control-function key 6                    }
  802.      F37 =366;          { control-function key 7                    }
  803.      F38 =367;          { control-function key 8                    }
  804.      F39 =368;          { control-function key 9                    }
  805.      F40 =369;          { control-function key 10                   }
  806.  
  807.      CTL_PTRSC=370;     { control-print-screen                      }
  808.      CTL_LEFT=371;      { control-left-arrow                        }
  809.      CTL_RIGHT=372;     { control-right-arrow                       }
  810.      CTL_END=373;       { control-end                               }
  811.      CTL_PGDN=374;      { control-page-down                         }
  812.      CTL_HOME=375;      { control-home                              }
  813.                         { alternate                                 }
  814.      ATL1=376;          { alternate-1                               }
  815.      ATL2=377;          { alternate-2                               }
  816.      ATL3=378;          { alternate-3                               }
  817.      ATL4=379;          { alternate-4                               }
  818.      ATL5=380;          { alternate-5                               }
  819.      ATL6=381;          { alternate-6                               }
  820.      ATL7=382;          { alternate-7                               }
  821.      ATL8=383;          { alternate-8                               }
  822.      ATL9=384;          { alternate-9                               }
  823.      ATL0=385;          { alternate-0                               }
  824.      ATL_=386;          { alternate--                               }
  825.      ALT_EQ=387;        { alternate-=                               }
  826.      CTL_PGUP=388;      { control-page-up                           }
  827.  
  828.  
  829.  
  830.      APPENDIX C
  831.      -------- -
  832.  
  833.      Default Key-Function -> key mapping:
  834.  
  835.      Key                   Key-Function
  836.      ----------            --------------
  837.  
  838.      CTLC               -> break_out
  839.      BS                 -> backspace
  840.      HT                 -> move_eol
  841.      CR                 -> next_field
  842.      F3                 -> exit_panel
  843.      BHT                -> move_bol
  844.      UPA                -> up
  845.      LEFTA              -> left
  846.      RIGHTA             -> right
  847.      DOWNA              -> down
  848.      INS                -> ins_toggle
  849.      DEL                -> delete
  850.      char(1)..char(255) -> normal
  851.      all other keys     -> nullk
  852.  
  853.      APPENDIX D
  854.      -------- -
  855.      The Test File and Panel Call Variables
  856.  
  857.      Suppose we have the following Panel Design File (XX.PAN):
  858.      (File begins on next line)
  859.  
  860.              @                           ^
  861.  
  862.              @                           ^
  863.  
  864.              @                           ^
  865.  
  866.             #Message One#
  867.             #Message Two#
  868.             #Message Three#
  869.             |S:15:DATA_STRING|
  870.             |R:10:Realvar|
  871.             |I:5:Intvar|
  872.      (File ends on the previous line)
  873.  
  874.      The above Panel Design File will create the following Test File:
  875.      (We have added additional comments with (* and *) delimiters)
  876.  
  877.      (File begins on next line)
  878.      {
  879.      Turbo-Screen V1.00A test code generation --- 1-1-1976 12:00:00
  880.      note memory allocations. Increase stack as needed for user programs
  881.       }
  882.      {$M 30500,0,655360}     (*Compiler Memory Allocation*)
  883.      Program XX_generated_code;
  884.  
  885.      Uses Crt,Dos,TSSLIB;       { your code needs these units }
  886.  
  887.      {$I XX.con}             (*Panel Procedure Variable Definition*)
  888.  
  889.      {$I XX.prc}             (*The TSS.EXE Generated Code*)
  890.  
  891.      begin
  892.           DATA_STRING:='               ';   (*String Data Initialization*)
  893.           Realvar:=0.0;                     (*Real Data Initialization*)
  894.           Intvar:=0;                        (*Integer Data Initialization*)
  895.              (* Next Variable is Global Screen Control Variable which
  896.                is initialized here*)
  897.          sccn:=[cpcall,cvcall,cpret,cvret,upmsg,upvar];
  898.      XX(
  899.          sccn,          (*Global Screen Control Variable*)
  900.          cerr,          (*Error Return Variable*)
  901.          nfld,          (*Field Number upon Return to Calling Procedure*)
  902.          ret_key,       (*Key Number of Exit_Panel Key*)
  903.          DATA_STRING,   (* Your                                *)
  904.          Realvar,       (* Data                                *)
  905.          Intvar);       (* Variables from the Panel Design File*)
  906.  
  907.      end.
  908.      (File ends on the previous line)
  909.  
  910.  
  911.      Additional notes on the above XX.TST file:
  912.  
  913.      1.  Global Scrn_ctl Set Variable "sccn" stores the Screen
  914.      Control set elements.
  915.  
  916.      2.  Global Integer Variable "cerr" returns last Field number, when
  917.      the panel is exited, which could not be formatted into its specific
  918.      format type.
  919.  
  920.      3.  Global Integer Variable "nfld" returns the Field number where
  921.      the cursor was located when the panel was exited.   In addition, if
  922.      you place the value of the Field that you wish for the cursor to
  923.      start, and the value is a valid Field number (greater than zero and
  924.      less than or equal to the maximum Field number), then the cursor
  925.      will be located on the desired field number upon the call to the
  926.      Panel.  If "nfld" is less than zero or greater than the maximum
  927.      Field number for a Panel, then "nfld" is set to one upon the call
  928.      to the Panel.
  929.  
  930.  
  931.      APPENDIX E
  932.      -------- -
  933.  
  934.      Screen Attribute Set Members:
  935.  
  936.  
  937.      FEATURE    DESCRIPTION                                      DEFAULT
  938.  
  939.      -------    -----------                                      -------
  940.      cpcall  -- Clears the entire screen                          ON
  941.                 when Panel is called
  942.      cpret   -- Clears the entire screen                          ON
  943.                 when Panel returns to
  944.                 calling procedure
  945.      cvcall  -- Clears all Fields                                 ON
  946.                 when Panel is called
  947.      cvret   -- Clears all Fields                                 ON
  948.                 when Panel returns to
  949.                 calling procedure
  950.      editoff -- Turns off Field editing.                          OFF
  951.      erron   -- Turns on default Field                            OFF
  952.                 type error checking
  953.      upmsg   -- Updates Messages only                             ON
  954.                 when Panel is called.
  955.      upvar   -- Updates Fields only                               ON
  956.                 when Panel is called
  957.      lvcrs   -- leave cursor in same Field                        OFF
  958.                 character location when
  959.                 cursor moves to next Field
  960.  
  961.  
  962.      APPENDIX F
  963.      -------- -
  964.  
  965.      Turbo Pascal Version 4.0 Supporting Unit
  966.  
  967.      Turbo Screen System supports both Turbo Pascal version 4.0 and 5.0
  968.      through the use of the utility batch program SWAPTPU.BAT. TSS comes
  969.      initially installed for version 5.0. To switch to version 4.0
  970.      unit support change to the directory that TSS was originally
  971.      installed into with the dos CD command.  Once your current working
  972.      directory has TSSLIB.TPU and either TSSLIB04.TPU or TSSLIB05.TPU
  973.      within it, then merely execute SWAPTPU.BAT at the dos prompt.
  974.  
  975.      An example scenario would be:
  976.  
  977.      C> CD \TSS
  978.      C> DIR *.TPU
  979.  
  980.         Volume in drive C has no label
  981.         Directory of  C:\TSS
  982.  
  983.         TSSLIB04 TPU    32064  12-11-88  12:25a
  984.         TSSLIB   TPU    31776  12-11-88  12:52a
  985.                2 File(s)   99999999 bytes free
  986.  
  987.      C> SWAPTPU
  988.  
  989.      SWAPTPU will inform the user as to the progress and conclusion
  990.      of the TPU swapping.  If the user needs to revert back to version
  991.      5.0 unit conventions merely execute SWAPTPU again.
  992.  
  993.      Possible Error Conditions and corrections
  994.      -----------------------------------------
  995.  
  996.      Error #1 -- This condition arises when the tsslib.tpu is not
  997.                  in the current directory. To remedy this situation,
  998.                  copy tsslib.tpu into the current working directory
  999.                  from the distribution diskette.
  1000.  
  1001.      Error #2 -- The alternative version TPU file tsslib04.tpu or
  1002.                  tsslib05.tpu cannot be found.  To fix this error
  1003.                  copy all tpu files from the distribution diskette
  1004.                  by executing COPY A:*.TPU with your current working
  1005.                  directory being the TSS installed directory.
  1006.