home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / draco / draco-1.ark / CONFIG.REF < prev    next >
Text File  |  1986-11-12  |  14KB  |  295 lines

  1. Using CONFIG to Configure a Program
  2.  
  3.     The CONFIG utility is designed to take object files which have been
  4. built using the CRT facilities, and configure them for a specific terminal.
  5. To do this, it also includes facilities for the maintenance of a database of
  6. terminal definitions. When CONFIG is called from CP/M, it can be given
  7. several parameters. These parameters must be the base names of the files
  8. which are to be configured. The actual configuring is not done until the
  9. user issues the 'Process' command to CONFIG, which is an interactive program.
  10.  
  11.     CONFIG has been designed so that it will operate on most terminals. It
  12. It does not need a lower-case capability, but will use it if it is available.
  13. When CONFIG is run, it will ask
  14.  
  15.     LOWER CASE ON THIS TERMINAL?
  16.  
  17. The question refers to the terminal on which CONFIG is being run, and must be
  18. answered with a 'y' or an 'n' (upper or lower case). If the reply is yes, the
  19. messages and prompts from CONFIG will be in mixed case; if the reply is no,
  20. all messages, etc. will be translated to upper case. When CONFIG issues its
  21. command prompt, you can reply with '?' for a summary of the options. The
  22. options available are:
  23.  
  24.     C(reate) new terminal type
  25.  
  26.     If the terminal you are using is not in CONFIG's database, you can
  27.     create a new entry and add it to the database. When doing so, you
  28.     will be able to test the definition, and modify it until it appears
  29.     to be correct. CONFIG must be running on the terminal in question
  30.     in order that the testing work. Many of the questions have a default
  31.     value in parentheses, which will be used if nothing is entered. When
  32.     creating a new terminal type, you will be asked for the following
  33.     information:
  34.  
  35.         How many lines does the terminal display? (24)
  36.         
  37.         This is the number of lines which the terminal can display on
  38.         its screen. The value must be between 16 and 253. If you just
  39.         press RETURN, a default value of 24 lines will be assumed.
  40.  
  41.         How many columns does the terminal display? (80)
  42.  
  43.         This is the number of columns which the terminal can display
  44.         in each line. The value must be between 32 and 253. If you
  45.         just press RETURN, a default value of 80 will be used.
  46.  
  47.         Can the terminal display lower case letters? (y)
  48.  
  49.         Answer 'y' or 'Y' if the terminal can display lower-case
  50.         letters, else answer 'n' or 'N'.
  51.  
  52.     Next, you will be asked to enter information describing how your
  53.     terminal does cursor addressing, i.e. what codes are required to put
  54.     the cursor at a specific place (line, column) on the screen. This
  55.     section is headed by the message:
  56.  
  57.         The following questions refer to the cursor positioning
  58.             operation:
  59.  
  60.     after which the following questions will be asked:
  61.  
  62.         When positioning, is the line number sent before the column
  63.             number? (y)
  64.  
  65.         Some terminals require that the line number be transmitted 
  66.         before the column number, others require that the column 
  67.         number be transmitted before the line number. Answer 'y' or 
  68.         'Y' if your terminal requires the line number first; answer 
  69.         'n' or 'N' if your terminal requires the column number first.
  70.  
  71.         Are the values decimal ASCII values instead of single byte
  72.             binary values? (n)
  73.  
  74.         Some more expensive terminals follow an emerging standard in
  75.         which the addressing information is actually a decimal text
  76.         string, e.g. '10,30' to go to line 10 and column 30. Most
  77.         current terminals, however, send the values encoded as single
  78.         characters each. The most common form of this uses the space
  79.         character for the first line/column, the '!' for the second,
  80.         the '"' for the third, etc. Others follow a similar scheme,
  81.         but the values are offset in the ASCII character set. If
  82.         your terminal is of the first type (requires a full text
  83.         form), answer 'y' or 'Y', else answer 'n' or 'N'. If you
  84.         answered 'y', you will also be asked:
  85.  
  86.         Are the values 3 digits instead of 2 digits? (n)
  87.  
  88.         Some terminals can display up to 132 columns of text. To
  89.         allow full cursor addressing, they require 3 digit values
  90.         instead of 2 digit values. If you terminal is of this kind,
  91.         answer 'y' or 'Y', else answer 'n' or 'N'.
  92.  
  93.         Enter decimal value to add to line number: (xx)
  94.  
  95.         Assuming that the first line on the screen is line 0, what
  96.         value must be added to the line number which is transmitted
  97.         to the terminal? In the case where the character space is
  98.         used to represent the first line, the value is the ASCII
  99.         value of space, which is 32. The default value will be 32
  100.         if you have selected non-ASCII addressing, otherwise the
  101.         default value will be 1, which is normal for that mode.
  102.  
  103.         Enter decimal value to add to column number: (xx)
  104.  
  105.         This is entirely analagous to the line offset. Most terminals
  106.         will use the same offset for both lines and columns.
  107.  
  108.         Enter the cursor addressing lead-in sequence:
  109.  
  110.         For this and other requested 'sequences', you must actually
  111.         type on your keyboard the sequence of characters (usually
  112.         including control characters and/or escapes) which your
  113.         terminal uses to signal the start of a cursor addressing
  114.         operation. For example, the sequence for an ADDS Viewpoint
  115.         terminal is listed as ESCAPE-Y, thus if you are using that
  116.         terminal, you would press the ESCAPE (or ESC) key, followed
  117.         by a capital 'Y'. The characters will not appear on the
  118.         screen. Press RETURN at the end of the sequence. For some
  119.         sequences, some terminals may require delays after the 
  120.         action, so that the terminal can complete the operation 
  121.         before the next is sent. The CRT library partially allows 
  122.         for this by allowing NUL's (hex 0x00) in the sequences. 
  123.         Since the CP/M TTY driver doesn't let NUL's through, some 
  124.         other character must be used. I've chosen to use the TAB
  125.         character (hex 0x09), on the grounds that it is unlikely to 
  126.         be included in any terminal's sequences.
  127.  
  128.         Enter the line/column separator sequence:  (optional)
  129.  
  130.         Some terminals require specific characters between the line
  131.         number and the column number (or vice versa). If your
  132.         terminal does, then enter that sequence. If your terminal
  133.         doesn't require any separators, then just press RETURN.
  134.  
  135.         Enter the cursor addressing lead-out sequence: (optional)
  136.  
  137.         Some terminals may require specific characters after the
  138.         line and column numbers. If your terminal does, then enter
  139.         that sequence. If your terminal doesn't require any
  140.         terminating characters, then just press RETURN.
  141.  
  142.     All that remains now is to specify a few remaining sequences which
  143.     tell the terminal to clear lines, clear the screen, etc. This section
  144.     is headed by the message
  145.  
  146.         Now the remaining terminal characteristics:
  147.  
  148.     The specific values requested are:
  149.  
  150.         Enter the sequence used to initialize the terminal: (optional)
  151.  
  152.         This sequence will be sent to the terminal when a program
  153.         which uses the CRT library first starts up. It can be used
  154.         to set various terminal modes, such as highlight modes.
  155.  
  156.         Enter the sequence used to terminate CRT mode: (optional)
  157.  
  158.         This sequence will be sent to the terminal when a program
  159.         which uses the CRT library terminates normally. It will
  160.         typically reset anything unusual set by the initialization
  161.         sequence.
  162.  
  163.         Enter the sequence used to clear to the end of the
  164.             line: (optional)
  165.  
  166.         This must be a sequence which tells the terminal to clear
  167.         the current line from the cursor column to the end of the
  168.         line to all blanks. It must leave the cursor in the same
  169.         position. If the terminal can't do this, enter no sequence,
  170.         and the CRT library will clear the line the hard way.
  171.  
  172.         Enter the sequence used to clear the entire screen: (optional)
  173.  
  174.         Enter here the sequence of characters that your terminal
  175.         interprets by clearing the entire screen to spaces or nulls,
  176.         and leaves the cursor in the upper left corner of the screen.
  177.         For many terminals, this will be a single CONTROL-L (the
  178.         ASCII FF or formfeed character).
  179.  
  180.         Enter the sequence used to clear from here on down: (optional)
  181.  
  182.         This is similar to the previous sequence, except that all
  183.         lines on the screen from the current one to the end of the
  184.         screen must be cleared. The cursor should be left at the
  185.         beginning of the first line cleared. You can rely on it
  186.         being there when this sequence is issued.
  187.  
  188.         Enter the sequence used to enter highlight mode: (optional)
  189.  
  190.         If your terminal has any facilities for highlighting
  191.         characters, such as reverse video, half intensity, blinking,
  192.         etc., then enter here the sequence which will cause all
  193.         successive characters to be highlighted. If your terminal has
  194.         no such facility, then just press RETURN.
  195.  
  196.         Enter the sequence used to exit highlight mode:
  197.  
  198.         This sequence must be provided if the previous one was. It
  199.         must instruct the terminal to stop highlighting characters.
  200.         The characters on the screen which are already highlighted
  201.         should stay highlighted, but new characters added should not
  202.         be highlighted. You will not be asked for this sequence if
  203.         you didn't enter a sequence for the previous prompt.
  204.  
  205.         Enter the sequence which moves the cursor forward: (optional)
  206.  
  207.         Enter here the character or characters which your terminal 
  208.         interprets as a request to move the cursor forward one 
  209.         column, but without affecting the current character or the 
  210.         character at the new position. If your terminal doesn't have 
  211.         such a capability, then just press RETURN.
  212.  
  213.     The program will now respond with
  214.  
  215.         Done.
  216.  
  217.     and will ask if you want to test the terminal definition. If you are
  218.     running CONFIG on the terminal that you just defined, and you want
  219.     to test the definition, then respond with 'y' or 'Y' and CONFIG will
  220.     execute a sequence of operations that tries out all of the values
  221.     and sequences you just entered. When the test is done, you should
  222.     see a line of minus signs at the top of the screen, vertical bars
  223.     down the sides (the last line will be empty), a large 'X' of
  224.     asterisks across the middle of the screen, and some text centered
  225.     at the top of the screen, overwriting part of the large 'X'. A
  226.     couple of the lines of output are dependent on whether or not the
  227.     terminal has a highlighting feature (called reverse video), and
  228.     whether or not it has a non-destructive forward space. Press any
  229.     key to continue, and you will be asked if the test worked. If it
  230.     didn't, respond with 'n' or 'N', and you will go through the
  231.     definition operation again. If the test worked, or you didn't
  232.     perform the test, you will be asked if you want to add the terminal
  233.     to the database. If you respond 'y' or 'Y', you will also be asked
  234.     for a name for the terminal in the database. The newly defined
  235.     terminal becomes the 'current' terminal, and will be used to process
  236.     the .SET files if not later overridden.
  237.  
  238.     D(elete) terminal type
  239.  
  240.     This option is used to delete a terminal definition from the
  241.     database. This can be done if you wish to replace one of the
  242.     definitions. Any selected terminal will be un-selected, in case you
  243.     deleted the one which was selected.
  244.  
  245.     (L)ist terminal types
  246.  
  247.     This option will list on your screen the names of all of the terminal
  248.     definitions in the database. If you have not already done a list, you
  249.     will be asked how many lines your current terminal has. This value
  250.     is required so that proper pagination of the list (which can be
  251.     quite long if your version of the database has a lot of entries) can
  252.     be done. Again, if you just press RETURN, a default of 24 is assumed.
  253.  
  254.     (S)elect terminal type
  255.  
  256.     This option is used to select a terminal type which is to be used
  257.     for a test, or, more importantly, for configuring some programs.
  258.     You will be asked for the number of the terminal type, which can be
  259.     obtained by finding the terminal type in the listing produced by the
  260.     list option.
  261.  
  262.     (V)iew selected terminal
  263.  
  264.     This option displays the definition of the current selected terminal.
  265.     It is used to verify a new definition, or to examine an existing
  266.     definition. Unlike the 'Test' option, it can be used on a terminal
  267.     different from the selected one.
  268.  
  269.     (T)est selected terminal
  270.  
  271.     If your terminal already existed in the database (likely if you have
  272.     a large database and a fairly common terminal), you may want to test
  273.     it to see if it actually works. You must have selected a terminal
  274.     type via the select option before you can test it.
  275.  
  276.     (P)rocess .SET files
  277.  
  278.     This is the important option. This option is used to configure the
  279.     programs supplied in .SET file form, producing a corresponding .COM
  280.     file for each one, which has been configured to run on your terminal.
  281.     If you gave CONFIG parameters when you ran it, those parameters are
  282.     now taken to be .SET files (the .SET is optional) which are to be
  283.     processed. CONFIG will inform you of which one it is currently
  284.     processing. The processing can take quite a while, since it is a
  285.     two-pass operation. If you did not supply any parameters to CONFIG,
  286.     you will be prompted to enter the name of a .SET file (again, the
  287.     .SET can be ommitted) to configure. Just press RETURN to get out of
  288.     the process option. Note that you must have selected a terminal
  289.     type via the select option before you can use the process option.
  290.  
  291.     Q(uit)
  292.  
  293.     Use this option when you are finished with CONFIG. It will return you
  294.     to CP/M command mode.
  295.