openqm           début
qu' est ce qu' openqm ?

qu'est ce que les sources ouverts ?

achetez qm aujourd'hui

téléchargements

qu'est qu'il y a de neuf dans les maj récentes ?

support

questions fréquemment posées

l'information de développeurs

applications et outils de développement

politique de confidentialité

liens

contactez-nous
--------------------------

installation
product features
what is the relationship with other mv databases?
product licensing
how do release numbers work?
what is a dynamic file?
keyboard input problems
qmserver problems
the qmclient api
security issues
can i sell my own qm applications?
terminal support
terminal support
qm uses the a private variant of the terminfo terminal definition database found on unix and linux systems.


how are terminals defined?

every supported terminal has an entry in the terminfo database. this consists of a small file holding a compiled definition of the terminal's control codes and key bindings. the master source from which these are built is provided in a text file named terminfo.src. this contains the definition of many of the most popular terminal types.


how is this data used?

when a terminal type is selected, either from the term environment variable or by use of the term command, qm reads the associated definition from the terminfo database. this is stored in memory and used by the qmbasic @() function and the terminfo() function.


how do terminfo source files work?

despite the compiled form being standard across most implementations of terminfo, different vendors use variations of the source format. in the qm implementation, each definition consists of a series of tokens separated by commas. a definition may span many lines by ending each line except the last with a comma.

the first token identifies the terminal definition(s) to be compiled from the source entry. each terminal type is separated by a vertical bar character (|). the final component is descriptive text rather than a terminal name.

the remaining tokens define characteristics of the terminal. these may be of three types; boolean, numeric and string. a boolean entry simply states that a terminal has some capability. a numeric entry defines a value such as the number of columns. a string entry contains a control string to be sent to the terminal to perform some operation or the character sequence sent by the terminal when a key is pressed.

each token has a capability name which is standardised over most terminfo implementations. although qm only uses a small number of capabilities, it recognises and stores all of the standard basic set in the terminfo database.


how do i compile a terminal definition?

the qmtic utility, described in the qm system administration manual, can be used to compile specific or all terminal definitions.


why might i need to compile a terminal definition?

you might find a reason to need to modify a terminal definition. perhaps you have a terminal which differs slightly from the standard definition. you might want to insert additional capability entries. there might be a defect in an entry (yes, we admit it can happen!).


can i add new terminal types?

if you have a terminal that is not in the standard set of definitions, we may be able to supply the source form of its terminfo entry. we recommend that you keep any new or modified definitions in a separate source file so that they can be reapplied if you upgrade to a new version of qm.

you can also obtain definitions for many terminals via the internet but beware that they may need some modification to our source format.


can i decompile an existing definition to see how it works?

yes, the qmtic utility has a decompile mode. this can decompile specific definitions or the entire database.


how do i find out what terminals are defined?

again, the qmtic utility can help as it has an indexing mode. alternatively, just examine the directory hierarchy that forms the terminfo database.


what terminal emulator should i use?

qm works with most terminal emulators. because we have only limited support for telnet parameter negotiation, you may need to disable this feature in some emulators. we have adopted accuterm as our preferred terminal emulator and it is bundled in with qm for all commercial licences issued on or after 1 january 2005. this includes some advanced file transfer and gui features for qm applications. see the links page for a link to the accusoft web site.


what about qm's own terminal emulator, qmterm?

qm comes with a simple terminal emulator named qmterm. this provides only basic facilities but includes some special screen handling modes that enable the qmbasic debugger to operate in the full screen mode used by windows qmconsole sessions.