This page is intended to help you find out what definitions in the terminfo database are used by jBASE. Using this knowledge you can create a new terminfo definition for a terminal not supported by your Unix platform, or upgrade the terminfo definition if it is lacking in some areas. First though, a short description of some of the terminology we will use.
Variable name. This is the long name of the capability that is displayed with the -L option to infocmp. It is usually fairly meaningful. This is also the name you would use in a C program to reference the capability. There is always an equivalent Cap name for each Variable Name.
Cap name. This is the short name of the capability and is displayed by default using the infocmp command. It is the name that must be in the terminal definition source file if it is to be compiled into a binary entry using the 'tic' command. There is always an equivalent Variable name for each Cap name.
jBASE name. This is the name of the terminal capability as defined in the Config_EMULATE file.
Config_EMULATE. This file on jBASE provides the definitions for the different emulations that are supported by jBASE. In particular it defines the relationship between the values passed to the @() function and the effect that this returns. For example the default entry shows '@(-1) = clear_screen'. This shows that if you code "PRINT @(-1)" in your application then this will cause the screen to be cleared using the jBASE terminal capability 'clear_screen'.
In the rest of this documentation we have avoided the use of the @(-nn) function calls. This is because the value of the passed parameter varies considerably between different supported emulations. Instead we use the jBASE name to describe the capability. If you look at file /usr/jbc/config/Config_EMULATE you will see these translations. For example if later on we refer to the jBASE name of 'printer_on', you will see that in the default emulation this is the equivalent of using @(-17) in your application.
Two tables now follow.
Return to 'Creating terminal definitions in jBASE' home page.
This table shows all the available jBASE names and what capabilities in the terminfo database are required to support it. If the capability is not defined for the terminal being used, then a zero length string will be created instead of the capability. Note that not all jBASE names are used for all emulations -- for example the delete_char jBASE name is only used on Sequoia Pick emulations.
As an example we will see what happens when a "PRINT @(-1)" is executed in your application. First look in the file /usr/jbc/config/Config_EMULATE and position yourself at the correct label for your emulation. We will assume you are using the default emulation. Now look for a "@(-1) = " string. In the default emulation this will be "@(-1) = clear_screen". This shows that @(-1) in your application corresponds to the jBASE name of clear_screen. In the table below look in the jBASE name column for clear_screen and you can see we use the terminfo Cap Name of 'clear'. Therefore for your application to work correctly, the terminal you are using must have a capability of 'clear' in order for the "PRINT @(-1)" command to work correctly.
jBASE name | Cap Name(s) used | Notes |
---|---|---|
background | setaf setab |
setaf sets the foreground colour and setab sets the background colour. Not all platforms have this capability and only a few terminals such as PC consoles support this. |
blink_off | sgr0 sgr |
As there is no specific terminfo definition for this, we remove all video effects. |
blink_on | blink | |
bold_off | rmso | |
bold_on | bold sgr0 smso rmso |
If the 'sgr0' capability exists it means we can turn off bold easily so we try to use the 'bold' mode. If 'bold' or 'sgr0' do not exist, we try to use the 'smso' and 'rmso' pair which turn standout mode on and off. |
clear_eol | el | |
clear_eos | ed | |
clear_screen | clear | |
cursor_down | cud1 | |
cursor_home | home cup |
We try to use the 'home' variable first. If this is not available we use 'cup' which positions the cursor at column 0, row 0. |
cursor_left | cub1 | |
cursor_off | civis | |
cursor_on | cnorm | |
cursor_right | cuf1 | |
cursor_up | cuu1 | |
delete_char | dch1 | |
delete_line | dl1 | |
dim_on | dim | |
effects_off | sgr0 sgr rmul rmso |
First we try to use 'sgr0' which resets all video attributes. If that doesn't exist we use 'sgr' which sets individual attributes -- we set them all to OFF. Finally if both of those don't exist we try to use rmul to remove underline mode and rmso to remove standout (bold) mode. |
foreground | setaf setab |
setaf sets the foreground colour and setab sets the background colour. Not all platforms have this capability and only a few terminals such as PC consoles support this. |
graphics_bottom_left | acsc | |
graphics_bottom_right | acsc | |
graphics_horizontal | acsc | |
graphics_intersection | acsc | |
graphics_off | rmacs | |
graphics_on | enacs smacs |
enacs is used to first enable the alternate character set and smacs is then used to begin the usage of the alternate character set. |
graphics_tee_down | acsc | |
graphics_tee_left | acsc | |
graphics_tee_right | acsc | |
graphics_tee_up | acsc | |
graphics_upper_left | acsc | |
graphics_upper_right | acsc | |
graphics_vertical | acsc | |
insert_char | ich1 | |
insert_line | il1 | |
insert_off | rmir | |
insert_on | smir | |
print_screen | mc0 | |
printer_off | mc4 | |
printer_on | mc5 | |
prot_off | sgr0 sgr |
As there is no specific terminfo definition for this, we remove all video effects. |
prot_on | prot | |
reverse_off | sgr0 sgr |
As there is no specific terminfo definition for this, we remove all video effects. |
reverse_on | rev | |
scroll_forward | ind | |
status_line_off | fsl | |
status_line_on | tsl | |
underline_off | rmul | |
underline_on | smul | |
@(-128) through @(-191) | xmc sgr |
These turn on a combination of bold, blink, reverse, protect and underline on and off. See the individual entries in this table. If the terminal has the magic cookie glitch set (xmc) then it means each effect will lose one position on the screen and so we attempt to use the sgr capability instead of concatenating individual effects. |
@(nn) | "\r" hpa cuf cuf1 |
This moves to a column position only. If move to column 0 we always use a "\r" carriage return. If to any other column we first try the hpa capability. If this doesn't exist we try the cuf capability preceded by a "\r" and this will move the cursor to column 0 and then move nn characters to the right. Finally if none of these exist we try using a "\r" followed by nn occurrences of cuf1 (move cursor right just once). |
@(nn,mm) | cup | Move to a specific row and column cursor address |
This next table shows all the usage's of the terminfo database as used by jBASE. The first column is the Variable name as defined in the terminfo database. The second column is the equivalent Cap name. The third column is a description of how it may be used in jBASE.
Many of the entries are used in the @(-nn) functions and these function calls are not only used by typical applications, but are used by many jBASE supplied programs as well. For example you may not use the @(-3) command to clear to end of line anywhere in your own application, but remember that jBASE programs such as JED and jsh will use this themselves.
Variable Name | Cap Name | Usage within jBASE |
back_tab | cbt | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the BACK-TAB key. |
bell | bel | Used by the @SYS.BELL variable. Used by the INPUT statement under certain circumstances to signify an error. |
clear_screen | clear | Used by the jBASE name clear_screen to clear the screen and start a fresh clean page. |
clr_eol | el | Used by the jBASE name clear_eol to clear to the end of line. |
clr_eos | ed | Used by the jBASE name clear_eos to clear to the end of the screen. |
column_address | hpa | Used by jBASE to move the cursor to a specific column on the screen using the @(nn) function call where nn is a positive integer. |
columns | cols | Used by jBASE to determine the default width of the terminal e.g. when the "SYSTEM(2)" function is executed). It can be over-ridden by the TERM statement or JBCTERM_WIDTH environment variable. It can also be over-ridden if the terminal is connected through a protocol that defined the terminal width, such as many PC terminal emulators connected over telnet. |
cursor_address | cup | Used by jBASE to move the cursor to a specific row and column on the screen using the @(nn,mm) function call. May also be used by the jBASE name cursor_home if the 'home' capability is not defined. |
cursor_down | cud1 | Used by the jBASE name cursor_down to move the cursor down one position. |
cursor_home | home | Used by the jBASE name cursor_home to move the cursor to the home position on the screen, i.e. to column 0 row 0. |
cursor_invisible | civis | Used by the jBASE name cursor_off in order to turn the cursor off. |
cursor_left | cub1 | Used by the jBASE name cursor_left to move the cursor left one position. |
cursor_normal | cnorm | Used by the jBASE name cursor_on in order to turn the cursor on. |
cursor_right | cuf1 | Used by the jBASE name cursor_right to move the cursor right one position. |
cursor_up | cuu1 | Used by the jBASE name cursor_up to move the cursor upwards one position |
delete_character | dch1 | Used by the jBASE name delete_char to delete a single character |
enter_alt_charset_mode | smacs | Used by jBASE to start the alternative character set. This is typically to enable dumb terminals to do simple box graphics. |
enter_blink_mode | blink | Used by the jBASE name blink_on to turn on blinking on the terminal. |
enter_bold_mode | bold | Used by the jBASE name bold_on turn turn on bold mode on the terminal. |
enter_dim_mode | dim | Used by the@(-129) through @(-191) function calls to turn on dim mode |
enter_insert_mode | smir | Used by the jBASE name insert_on to begin inserting characters at the current cursor location. |
enter_protected_mode | prot | Used by the jBASE name prot_on to start printing to a protected area of the terminal. |
enter_reverse_mode | rev | Used by the jBASE name reverse_on to begin displaying characters in reverse mode video. |
enter_secure_mode | invis | Used by the @(-129) through @(-191) function calls to begin displaying in secure mode i.e. the characters are not actually displayed on the screen. |
enter_standout_mode | smso | Used by the jBASE name bold_on as an alternative to 'bold' should 'bold' not be available, or should the 'sgr0' not be available making it difficult to turn bold off. |
enter_underline_mode | smul | Used by the jBASE name underline_on to begin displaying characters in underlined mode video. |
exit_alt_charset_mode | rmacs | Used by the jBASE name graphics_off to stop writing the box graphics and begin normal character set display. |
exit_attribute_mode | sgr0 | Used by a number of jBASE names in order to turn certain video effects off. |
exit_insert_mode | rmir | Used by the jBASE name insert_off to stop the character insert mode. |
exit_standout_mode | rmso | Used by the jBASE name to turn off the bold mode if we have chosen to use standout instead of bold. |
exit_underline_mode | rmul | Used by the jBASE name underline_off to turn off the underline video effects mode. Can also be used by the jBASE name effects_off if the other capabilities sgr0 or sgr are not defined. |
from_status_line | fsl | Used by the jBASE name status_line_off to move the cursor out of the status line (usually line 25) and back to the previous cursor position. |
insert_character | ich1 | Used by the jBASE name insert_char to insert a single space character at the current cursor position which will then be overwritten by the next displayable character sent to the terminal. |
insert_line | il1 | Used by the jBASE name insert_line to insert a single blank line after the current cursor position. |
key_backspace | kbs | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the BACKSPACE key. |
key_dc | kdch1 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the DELETE key. |
key_dl | kdl1 | Used by JED to establish what character sequence is sent by the terminal should the user press the DELETE-LINE key. |
key_down | kcud1 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the DOWN arrow key. |
key_eol | kel | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the CLEAR-END-LINE key. |
key_eos | ked | Used by JED to establish what character sequence is sent by the terminal should the user press the CLEAR-END-SCREEN key. |
key_f1 | kf1 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press function key 1. |
key_f2 | kf2 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press function key 2. |
key_f3 | kf3 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press function key 3. |
key_f4 | kf4 | Used by JED to establish what character sequence is sent by the terminal should the user press function key 4. |
key_f5 | kf5 | Used by JED to establish what character sequence is sent by the terminal should the user press function key 5. |
key_f6 | kf6 | Used by JED to establish what character sequence is sent by the terminal should the user press function key 6. |
key_f7 | kf7 | Used by JED to establish what character sequence is sent by the terminal should the user press function key 7. |
key_f8 | kf8 | Used by JED to establish what character sequence is sent by the terminal should the user press function key 8. |
key_f9 | kf9 | Used by JED to establish what character sequence is sent by the terminal should the user press function key 9. |
key_f10 | kf10 | Used by JED to establish what character sequence is sent by the terminal should the user press function key 10. |
key_home | khome | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the HOME key. |
key_ic | kich1 | Used by JED to establish what character sequence is sent by the terminal should the user press the INSERT-CHARACTER key. |
key_il | kil1 | Used by JED to establish what character sequence is sent by the terminal should the user press the INSERT LINE key. |
key_left | kcub1 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the left arrow key. |
key_npage | knp | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the NEXT-PAGE key. |
key_ppage | kpp | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the PREVIOUS-PAGE key. |
key_right | kcuf1 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the right arrow key. |
key_sf | kind | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the SCROLL-FORWARD key. |
key_sr | kri | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the SCROLL-REVERSE key. |
key_up | kcuu1 | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the up arrow key. |
lines | lines | Used by jBASE to determine the default depth of the terminal e.g. when the "SYSTEM(3)" function is executed). It can be over-ridden by the TERM statement or JBCTERM_DEPTH environment variable. It can also be over-ridden if the terminal is connected through a protocol that defined the terminal width, such as many PC terminal emulators connected over telnet. |
magic_cookie_glitch | xmc | When you use a single function call such as @(-155) , this will build up a total of four video effects. Normally this is done by building up a string of each effect in turn. However if this binary value is set, it shows the terminal has serial attributes and so loses a character position for each effect. In our example we would not want to lose 4 positions and so we will attempt to use the 'sgr' capability instead which allows multiple video effects to be established with the loss of only a single character position. |
parm_right_cursor | cuf | This may be used to do absolute column positioning such as the @(12) function call should the capability 'hpa' not be present. |
print_screen | mc0 | Used by the jBASE name print_screen in order to print the contents of the current screen onto any printer attached to the terminal. |
prtr_off | mc4 | Used by the jBASE name printer_off to stop the copying of terminal characters to any printer attached to the terminal. |
prtr_on | mc5 | Used by the jBASE name printer_on to begin copying of terminal characters to any printer attached to the terminal. |
scroll_forward | ind | Used by the jBASE name scroll_forward to scroll the terminal screen forwards by one line. |
scroll_reverse | ri | Used by the jBASE name scroll_forward to scroll the terminal screen forwards by one line. |
set_attributes | sgr | Used by many jBASE names in order to set a certain video effect either on or off. |
tab | ht | Used by JED and jsh to establish what character sequence is sent by the terminal should the user press the TAB key. |
to_status_line | tsl | Used by the jBASE name status_line_on to move the cursor from the current cursor position to the status line (usually line 25). |
http://807199.827977/r5/knowledgebase/howto/general/common/CreateTerminfo/usage.htm last modified on 06/19/09 05:29 AM