ÀDOCTYPE html> termcap(5) freebsd man page =�unix.comÃ_title> � <meta name="description" content="Man page for termcap(5) on freebsd, from the unix.com online archive."> � <meta property="og:url" content="https:å]www.unix.com/man_pag0ufreebs(uô^termca:y"> � <link rel="canonical" href="httpsa_/www.unix.coÛwman_page/freebsd/5/termcap."."> À-- Google tag (gtag.js) --> <meta name="google-site-verification" content="IRSOCxclhê0Ã0È0ë0ynQHh5zO2js5hftZ4UYTrk_iImCo5sIg" /> <meta name="csrf-param" content="authenticity_token"ëX> <meta name="csrf-token" content=»0ó0Á0oOZm5HHwHraPtLvKGLTuSq0k2s0v3Ao0JO3wc4St5gubKviwmMfDxCweFPBgyTseL4db2�5�qSDjEc4p1g2uA"ëX> � <link rel="stylesheet" href="httpsa_/stackpath.bootstrapcdn.coÛwbootstra:y4.5.r^cstzbootstrap.min.css"> <link rel="stylesheet" type="texËzcss" href="httpsa_/www.unix.coÛwcstzapplication.html.css"> � <link rel="stylesheet" type="text/css" href="https:å]www.unix.com/css/similar_threads.html.css"> <link rel="stylesheet" type="texËzcss" href="httpsa_/www.unix.coÛwcstzman_page_links.html.css"> Ã_head> � <body> <di6�class="title text-center"> � <a href="https:å]community.unix.com"> � <img id="site-logo" class="logo-big" src="httpsa_/community.unix.coÛwuploadtzdefaulËzoriginal(�W)�;r_86f7(� g)�`8c2d8de9Ú0Ë0Ò03dd5b986DSÖ0Ã0·0§0ë0b74dc5 ad.png" alt="Man Page Inde8�for freebsd Operating System"> � </a> Ã_div> � � </div> � <di6�class="title-curve d-none" �Ã_div> � <div> <form id="man-search-form" � class="form-inline" � role="search" � style="margin: 10px 0 10p8�0; � padding: 0; background: transparentS�M�important; � border: 0 !important; box-shadow: none !important;"> <div style="display: flex; � align-items: center; width: 100%; � margin: 0; padding: 0; background: transparen4�!important; border: 0 !important; box-shadow: noneS�M�important;"> � <input type="text" id="man-search-query" placeholder="pattern search all man pages..." style="flex: 1; min-width: 0; � border: 0 !important; box-shadow: none !important; outline: none; padding: 6p8�8px;" value="" � > <button type="submit" class="btn btn-primary btn-sm" � style="margin-left: 10px; white-space: nowrap;"> Search � </button> � </div> Ã_form> <script> (function() { var form = document.getElementById('man-search-form'); var inpu4�= document.getElementById('man-search-query'); if (!form ||S�M�input) return; form.addEventListener('submit', function(e) { e.preventDefault(); var i�= (input.value |=�'').trim(); if (!q) return; � var url = '/man_pages/pattern_searcvv' + encodeURIComponent(q); � window.location.href = url; � }); � })(); </script> Ã_div> <h1 class="display-5 my-4" style="color:white !important;"> termcap(5) freebsd man page =�unix.com � </h1> <div class="card-body"> <di6�class="manpage-links" style="margin-bottom: 20pxS�M�important;"> � <a href="https:å]www.unix.com/man-pages/freebsd" class="btn btn-outline-primary btn-sm"> Freebsd Man Pages Ã_a> � <a href="https:å]community.unix.com."." class="btn btn-outline-primar9�btn-sm"> � Latest Topics Ã_a> </div> <p><strong>Man Page:Ã_strong �termcap</p> <p><strong>Operating Environment:</strong> freebsdÃ_p> � <p><strong>Section:Ã_strong �5</p> � </div> � <di6�class="card-body" style="overflow-x:auto;"> <div id="neo-man-page"> <pre id="neo-man-page-output" style="margin-left:auto;margin-right:auto;"><a class="neo-man-link man-links" href="/man-pag0ufreebs(uô^TERMCAÔk">TERMCAP(5)Ã_a> BSD File Formats Manual <a class="neo-man-link man-links" href="/man-pag0ufreebs(uô^TERMCAÔk">TERMCAP(5)Ã_a> <div class="nea-man-caps"><b>NAME</b></div> termcap <b><i>--</i></b �terminal capabilit9�data base <di6�class="neo-man-caps"><b>SYNOPSISÃ_b>Ã_div> � termcap <di6�class="neo-man-caps"><b>DESCRIPTION</b></div> The termcap file is a data base describing terminals, used, for example, by <a class="nea-man-link man-links" href= Yman-page/freebsd/1/v}v">vi(1)</a �and <a class="neo-man-link man-links" href="/man-pag0ufreebs(uz^ncursetz">ncurses(3)Ã_a>. Terminals are described in termcap b9�giv- � ing a se4�of capabilities that the9�have and b9�describing how operations are performed. Padding requirements and initialization sequences are included in termcap. � Entries in termcap consist of a number of `:'-separated fields. The first entry for each terminal gives the names tha4�are known for the terminal, separated b9�`|' characters. The first name given is the mos4�common abbreviation for the terminal. The las4�name given should be � a long name full9�identifying the terminal, and all others are understood as synonyms for the terminal name. All names bu4�the last should be in lower case and contain no blanks; the las4�name may well contain upper case characters and blanks for readability. � Terminal names (except for the last, verbose entry) should be chosen using the following conventions. The particular piece of hardware mak- � ing up the terminal should have a root name chosen, thus ``hä²(�¡Œ)�1'' This name should not contain hyphens. Modes that the hardware can be in or user preferences should be indicated b9�appending a hyphen and an indicator of the mode. Therefore, a ``v"00'' in Ó0ë02-column mode would be ``vt100-w''. The following suffixes should be used where possible: Suffi8� Meaning � Example � <b><i>-wÃ_i>Ã_b> � Wide mode (more than 80 columns) v"00-w <b><i>-amÃ_i>Ã_b> � With automatic margins (usuall9�default) � vt100-am <b><i>-nam</i></b � Without automatic margins � vt100-nam � <b><i>-nÃ_i>Ã_b> � Number of lines on screen aaa-60 � <b><i>-na</i></b> No arro7�keys (leave them in local) � concep"00-na � <b><i>-np</i></b> Number of pages of memory � concep"00-4p � <b><i>-rv</i></b> Reverse video concept100-rv <div class="nea-man-caps"><b>CAPABILITIES</b></div> The description field attempts to conve9�the semantics of the capability. You may find some codes in the description field: (P) indicates tha4�padding ma9�be specified. � #[1-9] in the description field indicates tha4�the string is passed through <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/tparm.".">tparmÊ0Î0)</a �or <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/tgoto.".">tgotoÊ0Î0)</a �with parms as given (#i). � (P*) indicates that padding may var9�in proportion to the number of lines affected. (#i) indicates the ith parameter. � These are the boolean capabilities: � Boolean � TCap Description Variables Code auto_left_margin b7� cursor_left wraps from column 0 to last � column � auto_right_margin am terminal has automatic margins no_esc_ctlc � xb beehive (f1=escape, =ctrl C) � ceol_standout_glitch xs standout not erased by overwriting (hp) eat_newline_glitch xn newline ignored after 80 cols (concept) � erase_overstrike � eo can erase overstrikes with a blank � generic_type � gn generic line type hard_copy hc hardcop9�terminal � has_meta_key � km Has a meta key, sets msb high has_status_line � hs has extra status line insert_null_glitch in inser4�mode distinguishes nulls � memory_above � da displa9�ma9�be retained above the screen � memory_below � db displa9�ma9�be retained belo7�the screen � move_insert_mode � mi safe to move while in insert mode move_standout_mode ms safe to move while in standou4�mode � over_strike os terminal can overstrike � status_line_esc_ok es escape can be used on the status line dest_tabs_magic_smso x4� tabs destructive, magic so char ("061) � tilde_glitch � hz cannot print ~'s (hazeltine) � transparent_underline ul underline character overstrikes xon_xoff � xo terminal uses xoâwxoff handshaking � needs_xon_xoff � nx padding will not work, xon/xoff required � prtr_silent 5i printer will no4�echo on screen � hard_cursor HC cursor is hard to see � non_rev_rmcup NR enter_ca_mode does no4�reverse exit_ca_mode � no_pad_char NP pad character does no4�exist non_dest_scroll_region ND scrolling region is non-destructive � can_change cc terminal can re-define existing colors back_color_erase u4� screen erased with background color � hue_lightness_saturation � hl terminal uses only HLS color notation (tektronix) col_addr_glitch � YA only positive motion for column address and micro_column_address caps � cr_cancels_micro_mode YB using cr turns off micro mode has_print_wheel � YC printer needs operator to change character � set row_addr_glitch � YD only positive motion for row_address and � micro_row_address caps � semi_auto_right_margin YE printing in last column causes cr cpi_changes_res � YF changing character pitch changes resolution lpi_changes_res � YG changing line pitch changes resolution These are the numeric capabilities: Numeric TCa0� Description � Variables � Code � columns � co number of columns in aline � init_tabs � it tabs initially every # spaces lines li number of lines on screen or page � lines_of_memory lm lines of memory if > line. 0 => varies magic_cookie_glitch sg number of blank chars lef4�by � enter_standout_mode or exit_standout_mode padding_baud_rate � pb lowest baud rate where padding needed virtual_terminal v4� virtual terminal number (CB/unix) � width_status_line ws columns in status line num_labels � Nl number of labels on screen � label_height � lh rows in each label � label_width l7� columns in each label � max_attributes � ma maximum combined attributes terminal can � handle � maximum_windows M2 2 2 2 maximum number of definable windows � magic_cookie_glitch_ul ug number of blanks lef4�by underline � # # These came in with SVr4's color support � # max_colors � Co maximum numbers of colors on screen max_pairs pa maximum number of color-pairs on the screen � no_color_video � NC video attributes tha4�cannot be used with colors # � # The following numeric capabilities are present in the SVr4.0 term # structure, bu4�are no4�ye4�documented in the man page. # The9�came in with SVr4's printer support. � # buffer_capacity � Ya numbers of bytes buffered before printing dot_vert_spacing Yb spacing of pins verticall9�in pins per inch � dot_horz_spacing � Yc spacing of dots horizontally in dots per � inch � max_micro_address Yd maximum value in micro_..._address max_micro_jump Ye maximum value in parm_..._micro � micro_char_size Yf character size when in micro mode � micro_line_size Yg line size when in micro mode number_of_pins Yh numbers of pins in print-head � output_res_char Yi horizontal resolution in units per line � output_res_line Yj vertical resolution in units per line � output_res_horz_inch Yk horizontal resolution in units per inch output_res_vert_inch Yl vertical resolution in units per inch � print_rate Ym print rate in chars per second wide_char_size Yn character ste0�size when in double wide � mode � buttons � BT number of buttons on mouse � bit_image_entwining Yo number of passed for each bit-image row bit_image_type Y0� type of bit-image device � These are the string capabilities: String � TCap Description Variables Code back_tab � bt back tab (P) � bell bl audible signal (bell) (P) � carriage_return cr carriage return (P*) change_scroll_region cs change region to line #1 to line (�ÛV)� (P) � clear_all_tabs � ct clear all tab stops (P) clear_screen cl clear screen and home cursor (P*) � clr_eol � ce clear to end of line (P) � clr_eos � cd clear to end of screen (P*) column_address ch horizontal position #1, absolute (P) command_character � CC terminal settable cmd character in � prototype cursor_address cm move to row #1 columns (�ÛV)� � cursor_down do down one line � cursor_home ho home cursor � cursor_invisible � vi make cursor invisible cursor_left � le move lef4�one space cursor_mem_address CM memor9�relative cursor addressing � cursor_normal ve make cursor appear normal (undo � cursor_invisible/cursor_visible) � cursor_right � nd move right one space � cursor_to_ll � ll last line, first column cursor_up u0� u0�one line � cursor_visible � vs make cursor very visible � delete_character � dc delete character (P*) delete_line � dl delete line (P*) � dis_status_line ds disable status line � down_half_line � hd half a line down � enter_alt_charset_mode as star4�alternate character se4�(P) enter_blink_mode mb turn on blinking enter_bold_mode � md turn on bold (extra bright) mode � enter_ca_mode ti string to start programs using cursor_address enter_delete_mode � dm enter delete mode enter_dim_mode mh turn on half-bright mode enter_insert_mode � im enter insert mode enter_secure_mode � mk turn on blank mode (characters invisible) enter_protected_mode m0� turn on protected mode enter_reverse_mode mr turn on reverse video mode enter_standout_mode so begin standou4�mode � enter_underline_mode us begin underline mode � erase_chars ec erase #1 characters (P) � exit_alt_charset_mode ae end alternate character se4�(P) exit_attribute_mode me turn off all attributes � exit_ca_mode � te strings to end programs using cup exit_delete_mode ed end delete mode � exit_insert_mode � ei exit inser4�mode � exit_standout_mode se exit standou4�mode � exit_underline_mode ue exit underline mode flash_screen vb visible bell (may not move cursor) form_feed ff hardcop9�terminal page ejec4�(P*) � from_status_line � fs return from status line init_1string i1 initialization string � init3�5�string � is initialization string init_3string i2 2 initialization string � init_file � if name of initialization file insert_character ic inser4�character (P) insert_line � al insert line (P*) � insert_padding � ip insert padding after inserted character key_backspace � kb backspace key key_catab ka clear-all-tabs key key_clear kC clear-screen or erase key � key_ctab k4� clear-tab key � key_dc kD delete-character key key_dl � kL delete-line key key_down � kd down-arrow key � key_eic � kM sent b9�rmir or smir in insert mode key_eol kE clear-ta-end-of-line key key_eos kS clear-ta-end-of-screen key key_f0 � k0 F0 function key key_f1 � Ó  function key key_f10 k<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>� F10 function key key_f2 �  ‡e function key key_f3 � 1�9�¹p Þ0ë0¯0 function key key_f4 � k4 F4 function key key_f5 � k5 F5 function key key_f6 � k6 F6 function key key_f7 � k7 F7 function key key_f8 � k8 F8 function key key_f9 � k9 F9 function key key_home � kh home key � key_ic k!�?� insert-character key key_il � kA insert-line key key_left � kl left-arrow key � key_ll k?�!� last-line key � key_npage � kN next-page key key_ppage kP prev-page key � key_right � kr right-arro7�key key_sf � kF scroll-forward key � key_sr kR scroll-backward key � key_stab kT set-tab key � key_up k5� up-arro7�key keypad_local ke leave 'keyboard_transmit' mode keypad_xmit � ks enter 'keyboard_transmit' mode � lab_f0 l0 label on function key f0 if not f0 lab_f1 � × label on function ke9� if no4� � lab_0 � la label on function ke9�0 if not f10 � lab_  l2 label on function key f2 if not f2 lab_f3 � 2�0�¹p label on function ke9�1�4�¹p if no4�1�4�¹p � lab_f4 l2 2 2 label on function key f2 2 2 if not f4 lab_f5 � l5 label on function ke9�f5 if no4�f5 � lab_f6 l5 5 label on function key f5 5 if not f8 < lab_f7 � l7 label on function ke9�f7 if no4�f7 � lab_f8 l8 label on function key f8 if not f8 lab_f9 � l9 label on function ke9�f9 if no4�f9 � meta_off mo turn off meta mode meta_on mm turn on meta mode (8th-bi4�on) newline n7� newline (behave like cr followed by lf) � pad_char pc padding char (instead of null) parm_dch � DC delete #1 chars (P*) � parm_delete_line � DL delete #1 lines (P*) � parm_down_cursor � DO down #1 lines (P*) � parm_ich IC inser4�#1 chars (P*) parm_inde8� � SF scroll forward #1 lines (P) parm_insert_line AL inser4�#1 lines (P*) parm_left_cursor LE move #1 chars to the left (P) � parm_right_cursor R!�?� move #1 chars to the righ4�(P*) � parm_rindex SR scroll back #1 lines (P) parm_up_cursor UP u0�#1 lines (P*) pkey_key � pk program function key #1 to type string #2 pkey_local � pl program function key #1 to execute � string #2 pkey_xmit p8� program function ke9�#1 to transmit � string #2 print_screen ps print contents of screen prtr_off � pf turn off printer � prtr_on � po turn on printer repeat_char � rp repeat char #1 #2 times (P*) � reset_1string r1 reset string reset3�5�string � ȹ rese4�string � reset_3string r2 2 reset string reset_file � rf name of rese4�file � restore_cursor � rc restore cursor to last position of � save_cursor row_address � cv vertical position #1 absolute (P) save_cursor � sc save current cursor position (P) � scroll_forward � sf scroll tex4�up (P) � scroll_reverse � sr scroll tex4�down (P) � set_attributes � sa define video attributes #1-#9 (PG9) set_tab s4� set a tab in ever9�row, current columns � set_window wi current windo7�is lines #1-(�ÛV)� cols »0ó0È0-#4 tab ta tab to next 8-space hardware tab stop � to_status_line � ts move to status line underline_char uc underline char and move pas4�it � up_half_line � hu half a line up � init_prog � iP path name of program for initialization key_a1 �  upper left of keypad � key_9�¹p K2 2 upper right of keypad � key_ K2 center of keypad key_c1 � K4 lower left of keypad � key_1�1�¹p K5 lower right of keypad � prtr_non pO turn on printer for #1 bytes termcap_ini¬À �  secondar9�initialization string termcap_reset � rs terminal reset string # � # SV capabilities stop here. IBM's version of terminfo is the same as � # SVr4 u0�to this point, but has a different set afterwards. � # char_padding rP like insert_padding but when in inser4�mode � acs_chars � ac graphics charset pairs - def=v"00 � plab_norm � pn program label #1 to show string (�ÛV)� � key_btab kB back-tab key enter_xon_mode SX turn on xon/xoff handshaking exit_xon_mode � RX turn off xon/xoff handshaking enter_am_mode � SA turn on automatic margins exit_am_mode RA turn off automatic margins xon_character � XN XON character xoff_character XF XOFF character ena_acs eA enable alternate char set � label_on LO turn on sof4�labels � label_off � LF turn off sof4�labels � key_beg �  begin key key_cancel � (�my)� cancel key � key_close � Ý0ó0É0 close key key_command � @4 command key key_copy � @5 copy key � key_create @5 5 create key key_end @5 5 5 end key � key_enter � @8 ente¾ysend key � key_exit @9 exi4�key key_find � @0 find key � key_help %1 hel0�key key_mark � (�mQ)� mark key � key_message %2 2 message key � key_move %2 2 2 move key key_next � %5 next key � key_open %5 5 open key key_options � %7 options key key_previous %8 previous key key_print %9 print key � key_redo %0 redo key key_reference � &± reference key key_refresh � &(�f[)� refresh key key_replace � &Ú0ü0¸0 replace key key_restart � &4 restar4�key key_resume � &5 resume key � key_save &5 5 save key key_suspend � &7 suspend key key_undo � &8 undo key � key_sbeg &9 shifted key � key_scancel &0 shifted key � key_scommand � *1 shifted key key_scopy *2 shifted key � key_screate *2 2 shifted key � key_sdc � *4 shifted key key_sdl *5 shifted key � key_select *5 5 selec4�key key_send � *7 shifted key key_seol � *8 shifted key key_sexit *9 shifted key � key_sfind � *0 shifted key key_shelp #1 shifted key � key_shome � (�ÛV)� shifted key key_sic #2 2 shifted key � key_sleft � #4 shifted key key_smessage %a shifted key � key_smove � %b shifted key key_snext %c shifted key � key_soptions � %d shifted key key_sprevious � %e shifted key key_sprin4� � %f shifted key key_sredo %g shifted key � key_sreplace � %h shifted key key_srigh4� � %i shifted key key_srsume � %j shifted key key_ssave S�M�1 shifted key � key_ssuspend � (�ŒN)� shifted key key_sundo S�M�2 2 shifted key � req_for_input RF send next input char (for ptys) � key_1 �  1 function key � key_2 � ‡e 2 function key � key_3 � Þ0ë0¯0 2 2 function key � key_4 � F4 2 2 2 function key � key_5 � F5 5 function key � key_6 � F6 5 5 function key � key_7 � F7 5 5 5 function key � key_8 � F8 8 function key � key_9 � F9 9 function key � key_ 0 � FA ‡e0 function key � key_ 1 � FB ‡e1 function key � key_ 2 � FC ‡e2 function key � key_ 3 � FD ‡e2 2 function key � key_ 4 � FE ‡e2 2 2 function key � key_ 5 � FF ‡e5 function key � key_ 6 � FG ‡e5 5 function key � key_ 7 � FH ‡e5 5 5 function key � key_ 8 � FI ‡e8 function key � key_ 9 � FJ ‡e9 function key � key_1�4�¹p0 � FK Þ0ë0¯00 function key � key_1�4�¹p1 � FL Þ0ë0¯01 function key � key_1�4�¹p2 � FM Þ0ë0¯02 function key � key_1�4�¹p3 � FN Þ0ë0¯02 2 function key � key_1�4�¹p4 � FO Þ0ë0¯02 2 2 function key � key_1�4�¹p5 � FP Þ0ë0¯05 function key � key_1�4�¹p6 � FQ Þ0ë0¯05 5 function key � key_1�4�¹p7 � FR Þ0ë0¯05 5 5 function key � key_1�4�¹p8 � FS Þ0ë0¯08 function key � key_1�4�¹p9 � FT Þ0ë0¯09 function key � key_f40 � FU F40 function key � key_f41 � FV F41 function key � key_f42 � FW F42 function key � key_f43 � FX F42 2 function key � key_f44 � FY F42 2 2 function key � key_f45 � FZ F45 function key � key_f46 � Fa F45 5 function key � key_f47 � Fb F45 5 5 function key � key_f48 � Fc F48 function key � key_f49 � Fd F49 function key � key_f50 � Fe F50 function key � key_f51 � Ff F51 function key � key_f52 � Fg F52 function key � key_f53 � Fh F52 2 function key � key_f54 � Fi F52 2 2 function key � key_f55 � Fj F55 function key � key_f56 � Fk F55 5 function key � key_f57 � Fl F55 5 5 function key � key_f58 � Fm F58 function key � key_f59 � Fn F59 function key � key_f60 � Fo F60 function key � key_f61 � Fp F61 function key � key_f62 � Fq F62 function key � key_f63 � Fr F62 2 function key � clr_bol � cb Clear to beginning of line � clear_margins MC clear right and lef4�soft margins � set_left_margin ML set lef4�soft margin set_right_margin MR set right sof4�margin � label_format � Lf label format � set_clock � SC se4�clock, #1 hrs (�ÛV)� mins »0ó0È0 secs display_clock � DK displa9�clock at (#1,#2) � remove_clock � RC remove clock � create_window C2 2 2 2 define a window #1 from #2, #2 2 to #4, #5 goto_window � WG go to window #1 hangup � HU hang-u0�phone dial_phone � DI dial number #1 � quick_dial QD dial number #1 withou4�checking � tone TO selec4�touch tone dialing � pulse � PU select pulse dialling flash_hook � fh flash switch hook fixed_pause � PA pause for 2-2 2 seconds wait_tone WA wai4�for dial-tone user0 u0 User string #0 use u1 User string #1 useȹ u2 User string #2 used�a� u2 2 User string #2 < user4 u2 2 2 User string #4 user5 u5 User string #5 user6 u5 5 User string #8 < user7 u5 5 5 User string #7 user8 u8 User string #8 user9 u9 User string #9 # � # SVr4 added these capabilities to support color � # orig_pair o0� Set default pair to its original value orig_colors � oc Se4�all color pairs to the original ones � initialize_color � Ic initialize color #1 to ((�ÛV)�,#3,#4) initialize_pair � Ip Initialize color pair #1 to fg=((�ÛV)�,#3,#4), � bg=(#5,#6,#7) set_color_pair s0� Set current color pair to #1 set_foreground Sf Set foreground color #1 � set_background � Sb Se4�background color #1 # � # SVr4 added these capabilities to support printers # � change_char_pitch ZA Change number of characters per inch change_line_pitch � ZB Change number of lines per inch change_res_horz � ZC Change horizontal resolution � change_res_vert ZD Change vertical resolution define_char � ZE Define a character � enter_doublewide_mode ZF Enter double-wide mode � enter_draft_qualit9� ZG Enter draft-qualit9�mode � enter_italics_mode ZH Enter italic mode enter_leftward_mode Z!�?� Start leftward carriage motion enter_micro_mode ZJ Start micro-motion mode � enter_near_letter_quality ZK Enter NLQ mode enter_normal_qualit9� ZL Enter normal-qualit9�mode � enter_shadow_mode ZM Enter shadow-prin4�mode � enter_subscript_mode ZN Enter subscrip4�mode � enter_superscript_mode ZO Enter superscrip4�mode � enter_upward_mode ZP Start upward carriage motion exit_doublewide_mode ZQ End double-wide mode exit_italics_mode � ZR End italic mode exit_leftward_mode ZS End left-motion mode exit_micro_mode � ZT End micra-motion mode exit_shadow_mode ZU End shadow-prin4�mode � exit_subscript_mode ZV End subscrip4�mode � exit_superscript_mode ZW End superscrip4�mode � exit_upward_mode � ZX End reverse character motion � micro_column_address ZY Like column_address in micro mode micro_down � ZZ Like cursor_down in micro mode � micro_left Za Like cursor_lef4�in micro mode micro_right � Zb Like cursor_righ4�in micro mode micro_row_address � Zc Like row_address in micro mode � micro_up Zd Like cursor_u0�in micro mode order_of_pins � Ze Match software bits to print-head pins � parm_down_micro Zf Like parm_down_cursor in micro mode � parm_left_micro Zg Like parm_left_cursor in micro mode � parm_right_micro � Zh Like parm_right_cursor in micro mode � parm_up_micro Zi Like parm_up_cursor in micro mode � select_char_set Zj Selec4�character set set_bottom_margin � Zk Se4�bottom margin at current line set_bottom_margin_parm Zl Set bottom margin a4�line #1 or #2 lines from bottom � set_left_margin_parm Zm Se4�left (right) margin at column #1 ((�ÛV)�) set_right_margin_parm Zn Set right margin at column #1 � set_top_margin � Zo Se4�to0�margin a4�curren4�line � set_top_margin_parm Zp Se4�to0�(bottom) margin at row #1 (#2) � start_bit_image Zi� Start printing bi4�image graphics � start_char_set_def Zr Star4�character se4�definition � stop_bit_image � Zs Stop printing bi4�image graphics � stop_char_set_def Z4� End definition of character aet � subscript_characters Zu List of subscriptible characters � superscript_characters Zv List of superscriptible characters � these_cause_cr � Zw Printing any of these chars causes CR zero_motion � Zx No motion for subsequent character � # # The following string capabilities are present in the SVr4.0 term # structure, bu4�are no4�documented in the man page. # � char_set_names � Zy List of character se4�names key_mouse Km Mouse event has occurred mouse_info � Mi Mouse status information � req_mouse_pos RQ Request mouse position get_mouse Gm Curses should get button events � set_a_foreground � AF Se4�ANSI foreground color set_a_background AB Set ANS!�?�background color � pkey_plab � xl Program function key #1 to type string #2 and sho7�string #2 < device_type � dv Indicate languag0ucodese4�support code_set_init � ci Init sequence for multiple codesets set0_des_seq s0 Shift to code set 0 (EUC se4�0, ASCII) set1_des_seq s1 Shift to code set 1 � se¬À_des_seq � ¼ Shif4�to code se4�2 set3_des_seq s2 2 Shift to code setµ0ó0Á0ü0à0 � set_lr_margin ML Set both left and right margins to #1, (�ÛV)� � set_tb_margin MT Sets both top and bottom margins to #1, #2 bit_image_repeat X9� Repea4�bi4�image cell #1 (�ÛV)� times � bit_image_newline Z+� Move to nex4�ro7�of the bit image � bit_image_carriage_return Y6� Move to beginning of same row � color_names Y7� Give name for color #1 define_bit_image_region Y8� Define rectangular bi4�image region � end_bit_image_region Yy End a bit-image region � set_color_band � Yz Change to ribbon color #1 set_page_length � YZ Se4�page length to #1 lines # � # SVr4 added these capabilities for direct PC-clone support # � display_pc_char S1 Display PC character enter_pc_charset_mode S2 Enter PC character displa9�mode � exit_pc_charset_mode ë0Ô0ü0 Exit PC character displa9�mode � enter_scancode_mode S4 Enter PC scancode mode � exit_scancode_mode S5 Exit PC scancode mode pc_term_options � S6 PC terminal options scancode_escape � S7 Escape for scancode emulation alt_scancode_esc S8 Alternate escape for scancode emulation � # # The XSI Curses standard added these. # � enter_horizontal_hl_mode � Xh Enter horizontal highlight mode enter_left_hl_mode Xl Enter lef4�highligh4�mode � enter_low_hl_mode Xo Enter low highlight mode enter_right_hl_mode Xr Enter right highlight mode enter_top_hl_mode � Xt Enter to0�highligh4�mode � enter_vertical_hl_mode Xv Enter vertical highlight mode � Obsolete termcap capabilities. Ne7�software should no4�rely on them a4�all. Boolean TCa0� Description � Variables � Code � linefeed_is_newline NL move down with ^J even_parity � EP terminal requires even parity odd_parit9� � OP terminal requires odd parity � half_duplex HD terminal is half-duplex � lower_case_only LC terminal has only lower case upper_case_only � UC terminal has onl9�upper case � has_hardware_tabs p4� has 8-char tabs invoked with ^I � return_does_clr_eol xr return clears the line � tek_4025_insert_line xx Tektroni8�4025 insert-line glitch backspaces_with_bs bs uses ^H to move left crt_no_scrolling ns crt canno4�scroll � no_correctly_working_cr nc no way to go to star4�of line � Number TCa0� Description � Variables � Code � backspace_delay dB padding required for ^H � form_feed_delay dF padding required for ^L � horizontal_tab_delay dT padding required for ^I vertical_tab_dela9� dV padding required for ^V � number_of_function_keys kn coun4�of function keys � carriage_return_dela9� dC pad needed for CR new_line_delay dN pad needed for LF String � TCap Description Variables Code other_non_function_keys ko lis4�of self-mapped keycaps � arrow_key_map ma map arrow keys memory_lock_above � ml lock visible screen memory above the � curren4�line � memory_unlock m5� unlock visible screen memor9�above the current line linefeed_if_not_lf nl use to move down backspace_if_not_bs bc move left, if not ^H � A Sample Entry � The following entry, which describes the Concept-100, is among the more comple8�entries in the termcap file as of this writing. � ca|concept100|u00|concept|c104|concep"00-4p|HDS Concept-100: :alÝ0¤0ó0È0*E^R:am:bl=^G:cd³6*E^C:ce³6E^U:cl=2*^L:cm=Ea%+ %+ : � :co#AS:.cr=9^M:db:dc³6E^A:dl=3*E^B:do=^J:ei=E200:eo:im=E^P:in: � :ip=16*:is=EUEfE7E5E8ElENHEK|^00Eo&(�f[)�00Eo47E:Ó=E5: :=E6:1�9�¹p=E7:kb=^h:kd=E<:ke=Ex:kh=E?:kl=E>:kr=E=:ks=EX: :ku=E;:le=^H:li(�ÛV)�4:mb=EC:me=EN200:mh=EE:mi:mk=EH:mp=EI: :mr=ED:nd=E=:pb#900:rp=0(�Ñ‘)�*Er%.%+ :se=EdEe:sf=^J:so=EEED: � :.ta=8 :te=Ev 20(�åe)�0020(�åe)�0020(�åe)�00Ep : :ti=EUE6� 8pEp :ue=Eg:ul:up=E;:us=EG: :vb=E0020(�åe)�0020(�åe)�0020(�åe)�0020(�åe)�0020(�åe)�0020(�åe)�00200EK: :ve=Ew:vs=EW:vt#8:xn: :bs:cr=^M:dC#9:dT#8:nl=^J:ta=^I:pt: Entries may continue onto multiple lines by giving a as the last character of a line, and empt9�fields may be included for readability � (here between the last field on a line and the first field on the next). Comments may be included on lines beginning with ``#''. � Types of Capabilities Capabilities in termcap are of three types: Boolean capabilities, which indicate particular features that the terminal has; numeric capabili- � ties, giving the size of the display or the size of other attributes<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�and string capabilities, which give character sequences that can be used to perform particular terminal operations. All capabilities have twa-letter codes. For instance, the fac4�that the Concept has � automatic margins (an automatic return and linefeed when the end of a line is reached) is indicated by the Boolean capabilit9�am. Hence the description of the Concep4�includes am. Numeric capabilities are followed b9�the character `#' then the value. In the example above co, which indicates the number of columns the display has, gives the value `80' for the Concept. � Finally, string-valued capabilities, such as ce (clear-ta-end-of-line sequence) are given by the two-letter code, an `=', then a string end- � ing at the nex4�following `:'. A dela9�in milliseconds ma9�appear after the `=' in such a capability, which causes padding characters to be � supplied b9�<a class="neo-man-link man-links" href="/man-pag0ufreebs(uz^tputtz">tputs(3)Ã_a> after the remainder of the string is sent to provide this delay. The delay can be either a number, such as `20', or a number followed b9�an `*', such as 8�¹p*'. An `*' indicates that the padding required is proportional to the number of lines affected by the � operation, and the amoun4�given is the per-affected-line padding required. (In the case of insert-character, the factor is still the number � of lines affected; this is always 1 unless the terminal has in and the software uses it.) When an `*' is specified, it is sometimes useful � to give a dela9�of the form 8�¹p.5' to specify a delay per line to tenths of milliseconds. (Onl9�one decimal place is allowed.) A number of escape sequences are provided in the string-valued capabilities for eas9�encoding of control characters there. E maps to an ESC character, ^X maps to a control-X for any appropriate X, and the sequences � �f ma0�to linefeed, return, tab, backspace, and form- � feed, respectively. Finally, characters may be given as three octal digits after a , and the characters ^ and ma9�be given as ^ and \. � If i4�is necessary to place a : in a capabilit9�it mus4�be escaped as : or be encoded as �(�]y)�. If it is necessar9�to place a NUL character � in a string capability i4�must be encoded as(��N)�00. (The routines tha4�deal with termca0�use C strings and stri0�the high bits of the output ver9�late, so tha4�a 200 comes ou4�as a �00 would.) Sometimes individual capabilities mus4�be commented out. To do this, put a period before the capabilit9�name. For example, see the firs4�cr � and ta in the example above. Preparing Descriptions The mos4�effective wa9�to prepare a terminal description is b9�imitating the description of a similar terminal in termcap and to build up a � description gradually, using partial descriptions with <a class="nea-man-link man-links" href= Yman-page/freebsd/1/v}v">vi(1)</a �to check tha4�they are correct. Be aware that a ver9�unusual terminal may � expose deficiencies in the ability of the termca0�file to describe i4�or bugs in <a class="nea-man-link man-links" href= Yman-page/freebsd/1/v}v">vi(1)</a>. To easil9�test a new terminal description yo5�are working on yo5�can pu4�it in your home director9�in a file called .termca0�and programs will look there before looking in � /usr/share/misutermcap. Yo5�can also set the environment variable TERMPATH to a list of absolute file pathnames (separated b9�spaces or colons), one of which contains the description yo5�are working on, and programs will search them in the order listed, and nowhere else. See <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/termcap.".">termcapÊ0Î0)</a>. The TERMCAP environmen4�variable is usuall9�se4�to the termcap entry itself to avoid reading files when starting u0�a program. To ge4�the padding for insert-line righ4�(if the terminal manufacturer did no4�document it), a severe tes4�is to use <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]vi.".">vi(1)Ã_a> to edit � /etc/passwd at 900 baud, delete roughly 15 5 lines from the middle of the screen, then hi4�the `u' ke9�several times quickly. If the display � messes up, more padding is usually needed. A similar test can be used for insert-character. Basic Capabilities The number of columns on each line of the display is given by the co numeric capability. If the displa9�is a CRT, then the number of lines � on the screen is given b9�the li capability. If the display wraps around to the beginning of the next line when the cursor reaches the right margin, then it should have the am capability. If the terminal can clear its screen, the code to do this is given by the cl string capabil- ity. If the terminal overstrikes (rather than clearing the position when a character is overwritten), it should have the os capability. If the terminal is a printing terminal, with no soft cop9�unit, give i4�both hc and os. (os applies to storage scope terminals, such as the � Tektroni8�4010 series, as well as to hard copy and APL terminals.) If there is a code to move the cursor to the lef4�edge of the current row, give this as cr. (Normall9�this will be carriage-return, ^M.) If there is a code to produce an audible signal (bell, beep, etc.), give � this as bl. � If there is a code (such as backspace) to move the cursor one position to the left, that capabilit9�should be given as le. Similarly, codes � to move to the right, up, and down should be given as nd, up, and do, respectively. These local cursor motions should not alter the text the9�pass over; for example, yo5�would no4�normally use ``nd= '' unless the terminal has the os capability, because the space would erase the � character moved over. � A very important point here is tha4�the local cursor motions encoded in termca0�have undefined behavior at the lef4�and to0�edges of a CRT � display. Programs should never attemp4�to backspace around the left edge, unless bw is given, and never attempt to go u0�off the to0�using local cursor motions. In order to scroll text up, a program goes to the bottom left corner of the screen and sends the sf (index) string. To scroll text down, a � program goes to the to0�left corner of the screen and sends the sr (reverse index) string. The strings sf and sr have undefined behavior when no4�on their respective corners of the screen. Parameterized versions of the scrolling sequences are SF and SR, which have the same � semantics as sf and sr excep4�that the9�take one parameter and scroll that man9�lines. They also have undefined behavior except a4�the appropriate corner of the screen. The am capability tells whether the cursor sticks a4�the righ4�edge of the screen when text is output there, bu4�this does no4�necessarily apply to nd from the last column. Leftward local motion is defined from the lef4�edge onl9�when b7�is given<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�then an le from the left edge will move to the righ4�edge of the previous row. This is useful for drawing a bo8�around the edge of the screen, for example. If the termi- � nal has switch-selectable automatic margins, the termcap description usually assumes tha4�this feature is on, i.e., am. If the terminal has � a command that moves to the firs4�column of the next line, tha4�command can be given as nw (newline). I4�is permissible for this to clear � the remainder of the current line, so if the terminal has no correctly-working CR and LF i4�ma9�still be possible to craft a working n7�out of one or both of them. These capabilities suffice to describe hardcopy and ``glass-tty'' terminals. Thus the Teletype modelµ0ó0Á0ü0à02 2 is described as T3|ttd�m�3�3|Õ0£0ü0È0|tty|Teletype model Õ0£0ü0È0: :bl=^G:co#72:cr=^M:do=^J:hc:os: and the Lear Siegler ADM-2 2 is described as l3|ad2�1�¹p-fŒT|LSI ADMÐ0ü0ì0ë0: � :am:bl=^G:cl=^Z:co#80:cr=^M:do=^J:le=^H:li(�ÛV)�4:sf=^J: Parameterized Strings � Cursor addressing and other strings requiring parameters are described b9�a parameterized string capability, with <a class="neo-man-link man-links" href="/man-pag0ufreebs(uz^printf.".">printf(3)Ã_a>-like escapes %x � in it, while other characters are passed through unchanged. For example, to address the cursor the cm capabilit9�is given, using two parame- ters: the row and column to move to. (Rows and columns are numbered from zero and refer to the physical screen visible to the user, no4�to � an9�unseen memory. If the terminal has memory-relative cursor addressing, tha4�can be indicated b9�an analogous CM capability.) The % encodings have the following meanings: � %% outpu4�`%' %d output value as in <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/print‹u">printfÊ0Î0)</a �%d � (�mQ)� outpu4�value as in <a class="neo-man-link man-links" href="/man-pag0ufreebs(uz^printf.".">printf(3)Ã_a> %2d � Ç0·0 outpu4�value as in <a class="neo-man-link man-links" href="/man-pag0ufreebs(uz^printf.".">printf(3)Ã_a> %3d � %. outpu4�value as in <a class="neo-man-link man-links" href="/man-pag0ufreebs(uz^printf.".">printf(3)Ã_a> %c %+x add 8�to value, then do %. � %>x9� if value ><�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�8�then add y, no output %r reverse order of two parameters, no output � %i increment b9�one, no output � %n exclusive-or all parameters with 0140 (Datamedia 2500) %B BCD (16*(value/10)) + (value%10), no output %D Reverse coding (value - 2*(value%16)), no output (Delta Data). Consider the Hewlett-Packard 2645, which, to ge4�to rowµ0ó0Á0ü0à0 and column (�*h)�, needs to be sent ``E&a(�*h)�c03Y'' padded for 5 5 milliseconds. Note tha4�the order of the row and column coordinates is reversed here and tha4�the ro7�and column are sen4�as two-digit integers. Thus its cm capabilit9�is ``cm=6E&%r%2c(�mQ)�Y''. The Datamedia(��N)�500 needs the curren4�ro7�and column sen4�encoded in binar9�using ``%.''. Terminals tha4�use ``%.'' need to be able to backspace the cursor (le) and to move the cursor up one line on the screen (up). This is necessary because i4�is not always safe to transmit � , ^D, and , as the system ma9�change or discard them. (Programs using termca0�must set terminal modes so tha4�tabs are not expanded, so is safe to send. This turns ou4�to be essential for the Ann Arbor 40AS.) A final example is the Lear Siegler ADMÐ0ü0ì0ë0a, which offsets row and column by a blank character, thus ``cm=E=%+ %+ ''. � Ro7�or column absolute cursor addressing can be given as single parameter capabilities ch (horizontal position absolute) and c6�(vertical position absolute). Sometimes these are shorter than the more general twa-parameter sequence (as with the Hewlett-Packard 2645) and can be � used in preference to cm. If there are parameterized local motions (e.g., move n positions to the right) these can be given as DO, LE, RI, � and UP with a single parameter indicating ho7�many positions to move. These are primarily useful if the terminal does not have cm, such as the Tektronix 4(�åe)�5. Cursor Motions If the terminal has a fas4�wa9�to home the cursor (to the ver9�upper left corner of the screen), this can be given as ho. Similarly, a fast � wa9�of getting to the lower left-hand corner can be given as ll; this ma9�involve going up with up from the home position, but a program � should never do this itself (unless ll does), because it can make no assumption abou4�the effect of moving u0�from the home position. Note tha4�the home position is the same as cursor address (0,0): to the to0�left corner of the screen, not of memory. (Therefore, the ``EH'' sequence on Hewlett-Packard terminals canno4�be used for ho.) Area Clears � If the terminal can clear from the current position to the end of the line, leaving the cursor where i4�is, this should be given as ce. If the terminal can clear from the current position to the end of the display, this should be given as cd. cd mus4�only be invoked from the � firs4�column of a line. (Therefore, i4�can be simulated b9�a reques4�to delete a large number of lines, if a true cd is not available.) InserËzDelete Line If the terminal can open a ne7�blank line before the line containing the cursor, this should be given as al<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�this mus4�be invoked onl9�from � the firs4�position of a line. The cursor must then appear a4�the left of the newl9�blank line. If the terminal can delete the line tha4�the cursor is on, this should be given as dl; this must onl9�be used from the first position on the line to be deleted. Versions of al and dl which take a single parameter and inser4�or delete that man9�lines can be given as AL and DL. If the terminal has a settable scrolling � region (like the Vf00), the command to se4�this can be described with the cs capability, which takes two parameters: the to0�and bottom � lines of the scrolling region. The cursor position is, alas, undefined after using this command. It is possible to ge4�the effect of insert � or delete line using this command <b><i>--Ã_i>Ã_b> the sc and rc (save and restore cursor) commands are also useful. Inserting lines at the top or bottom � of the screen can also be done using sr or sf on man9�terminals withou4�a true inserËzdelete line, and is often faster even on terminals with those features. If the terminal has the ability to define a windo7�as par4�of memor9�which all commands affect, i4�should be given as the parameterized � string wi. The four parameters are the starting and ending lines in memor9�and the starting and ending columns in memory, in that order. (This <a class="nea-man-link man-links" href= Yman-page/freebsd/5/terminfów">terminfo(5)</a �capability is described for completeness. I4�is unlikel9�that any termcap-using program will suppor4�it.) If the terminal can retain displa9�memory above the screen, then the da capabilit9�should be given; if displa9�memory can be retained below, then db should be given. These indicate that deleting a line or scrolling ma9�bring non-blank lines up from belo7�or tha4�scrolling back � with sr ma9�bring down non-blank lines. � Insert/Delete Character There are two basic kinds of intelligen4�terminals with respect to insert/delete character that can be described using termcap. The most � common inserËzdelete character operations affect onl9�the characters on the curren4�line and shift characters off the end of the line rigidly. Other terminals, such as the Concept-100 and the Perkin Elmer Owl, make a distinction between typed and untyped blanks on the � screen, shifting upon an inser4�or delete only to an untyped blank on the screen which is either eliminated or expanded to two untyped � blanks. You can determine the kind of terminal yo5�have b9�clearing the screen then typing text separated b9�cursor motions. Type ``abc def'' using local cursor motions (no4�spaces) between the ``abc'' and the ``def''. Then position the cursor before the ``abc'' and put the terminal in inser4�mode. If typing characters causes the res4�of the line to shift rigidly and characters to fall off the end, then your terminal does no4�distinguish between blanks and untyped positions. If the ``abc'' shifts over to the ``def'' which then move together around the end of the current line and onto the nex4�as you insert, then yo5�have the second type of terminal and should give the capability in, which stands for ``insert null''. While these are two logicall9�separate attributes (one line vs. multi-line insert mode, and special � treatmen4�of untyped spaces), we have seen no terminals whose insert mode cannot be described with the single attribute. The termcap entries can describe both terminals tha4�have an insert mode and terminals that send a simple sequence to open a blank position � on the current line. Give as im the sequence to get into insert mode. Give as ei the sequence to leave inser4�mode. Now give as ic any sequence that needs to be sen4�just before each character to be inserted. Mos4�terminals with a true insert mode will not give ic<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�terminals tha4�use a sequence to open a screen position should give i4�here. (If your terminal has both, inser4�mode is usuall9�preferable to ic. Do not give both unless the terminal actuall9�requires both to be used in combination.) If post-inser4�padding is needed, give this as a number � of milliseconds in i0�(a string option). An9�other sequence tha4�ma9�need to be sen4�after insertion of a single character can also be given in ip. If your terminal needs to be placed into an `insert mode' and needs a special code preceding each inserted character, then both iÛw � ei and ic can be given, and both will be used. The IC capability, with one parameter n, will repeat the effects of ic n times. � It is occasionally necessary to move around while in inser4�mode to delete characters on the same line (e.g., if there is a tab after the insertion position). If your terminal allows motion while in inser4�mode, yo5�can give the capabilit9�mi to speed up inserting in this case. � Omitting mi will affec4�only speed. Some terminals (notably Datamedia's) must not have mi because of the wa9�their insert mode works. Finally, yo5�can specif9�dc to delete a single character, DC with one parameter n to delete n characters, and delete mode b9�giving dm and ed � to enter and exi4�delete mode (which is an9�mode the terminal needs to be placed in for dc to work). Highlighting, Underlining, and Visible Bells If your terminal has one or more kinds of display attributes, these can be represented in a number of different ways. Yo5�should choose one display form as standou4�mode, representing a good high-contrast, easy-on-the-eyes format for highlighting error messages and other attention � getters. (If yo5�have a choice, reverse video plus half-brigh4�is good, or reverse video alone.) The sequences to enter and exi4�standout � mode are given as so and se, respectively. If the code to change into or ou4�of standou4�mode leaves one or even two blank spaces or garbage characters on the screen, as the TV!�?�2 and Telera9�10­ do, then sg should be given to tell how man9�characters are left. Codes to begin underlining and end underlining can be given as us and ue, respectively. Underline mode change garbage is specified b9�ug, similar to sg. If the terminal has a code to underline the current character and move the cursor one position to the right, such as the Microterm Mime, this can be given as uc. � Other capabilities to enter various highlighting modes include mb (blinking), md (bold or extra bright), mh (dim or half-bright), mk (blank- � ing or invisible text), mp (protected), mr (reverse video), me (turn off all attribute modes), as (enter alternate character set mode), and ae (exi4�alternate character se4�mode). Turning on any of these modes singly may or ma9�no4�turn off other modes. � If there is a sequence to se4�arbitrar9�combinations of mode, this should be given as sa (se4�attributes), taking 9 parameters. Each parame- ter is either 0 or 1, as the corresponding attributes is on or off. The 9 parameters are, in order: standout, underline, reverse, blink, � dim, bold, blank, protect, and alternate character set. Not all modes need be supported b9�sa, only those for which corresponding attribute � commands exist. (It is unlikely tha4�a termcap-using program will support this capability, which is defined for compatibility with <a class="nea-man-link man-links" href= Yman-page/freebsd/5/terminfów">terminfo(5)</a>.) � Terminals with the ``magic cookie'' glitches (sg and ug), rather than maintaining extra attribute bits for each character cell, instead deposit special ``cookies'', or ``garbage characters'', when they receive mode-setting sequences, which affec4�the displa9�algorithm. Some terminals, such as the Hewlett-Packard(��N)�(�¡Œ)�1, automatically leave standou4�mode when they move to a new line or when the cursor is addressed. Programs using standout mode should exi4�standout mode on such terminals before moving the cursor or sending a newline. On ter- minals where this is no4�a problem, the ms capability should be present to sa9�that this overhead is unnecessary. If the terminal has a way of flashing the screen to indicate an error quietly (a bell replacement), this can be given as vb<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�it mus4�no4�move � the cursor. � If the cursor needs to be made more visible than normal when i4�is not on the bottom line (to change, for example, a non-blinking underline into an easier-to-find block or blinking underline), give this sequence as vs. If there is a way to make the cursor completely invisible, give that as vi. The capabilit9�ve, which undoes the effects of both of these modes, should also be given. If your terminal correctl9�displays underlined characters (with no special codes needed) even though it does no4�overstrike, then you should give the capability ul. If overstrikes are erasable with a blank, this should be indicated b9�giving eo. Keypad If the terminal has a keypad that transmits codes when the keys are pressed, this information can be given. Note tha4�it is no4�possible to handle terminals where the keypad onl9�works in local mode (this applies, for example, to the unshifted Hewlett-Packard(��N)�(�¡Œ)�1 keys). If the � keypad can be se4�to transmi4�or not transmit, give these codes as ks and ke. Otherwise the keypad is assumed to always transmit. The codes sen4�by the left-arrow, right-arrow, up-arrow, down-arrow, and home keys can be given as kl, kr, ku, kd, and kh, respectively. If there are function keys such as f0, f1, ..., f9, the codes they send can be given as k0, Ó, ..., k9. If these keys have labels other than the default � f0 through f9, the labels can be given as l0, ×, ..., l9. The codes transmitted by certain other special keys can be given: kH (home down), kb (backspace), ka (clear all tabs), kt (clear the tab stop in this column), kC (clear screen or erase), kD (delete character), kL (delete line), kM (exit inser4�mode), kE (clear to end of line), kS (clear to end of screen), k!�?�(inser4�character or enter inser4�mode), kA (insert line), kN (next page), kP (previous page), kF (scroll forward/down), kR (scroll backwar(uup), and kT (set a tab sto0�in this column). In � addition, if the keypad has a 2 2 byµ0ó0Á0ü0à0 array of keys including the four arro7�keys, then the other five keys can be given as K1, K2, K3, K4, � and K5. These keys are useful when the effects of aµ0ó0Á0ü0à0 b9�2 2 directional pad are needed. The obsolete ko capabilit9�formerly used to describe ``other'' function keys has been completely supplanted by the above capabilities. The ma entr9�is also used to indicate arrow keys on terminals tha4�have single-character arro7�keys. I4�is obsolete bu4�still in use in ver- � sion(��N)� of vi which mus4�be run on some minicomputers due to memory limitations. This field is redundant with kl, kr, ku, kd, and kh. It consists of groups of two characters. In each group, the first character is what an arro7�ke9�sends, and the second character is the corre- sponding vi command. These commands are h for kl, j for kd, k for ku, l for kr, and ?�!�for kh. For example, the Mime would have ``ma=^Hh^Kj^Zk^Xl'' indicating arro7�keys lef4�(^H), down (^K), u0�(^Z), and righ4�(^X). (There is no home key on the Mime.) Tabs and Initialization � If the terminal needs to be in a special mode when running a program tha4�uses these capabilities, the codes to enter and exit this mode can � be given as ti and te. This arises, for example, from terminals like the Concep4�with more than one page of memory. If the terminal has onl9�memory-relative cursor addressing and no4�screen-relative cursor addressing, a screen-sized window mus4�be fixed into the displa9�for cursor addressing to work properly. This is also used for the Tektroni8�4025, where ti sets the command character to be the one used by termcap. � Other capabilities include is, an initialization string for the terminal, and if, the name of a file containing long initialization strings. � These strings are expected to se4�the terminal into modes consistent with the rest of the termca0�description. They are normall9�sent to the terminal by the <a class="nea-man-link man-links" href= Yman-page/freebsd/1/tseËz">tset(1)</a �program each time the user logs in. The9�will be printed in the following order: is<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�setting tabs using c4�and st; and finally if. (Terminfo uses i1- instead of is and runs the program iP and prints 1�7�¹p after the other initializations.) A pair of sequences tha4�does a harder rese4�from a totally unknown state can be analogousl9�given as rs and if. These strings are outpu4�by the � <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]reseËz">reset(1)Ã_a> program, which is used when the terminal gets into a wedged state. (Terminfo uses -r2 2 instead of rs.) Commands are normally placed in rs and rf onl9�if the9�produce annoying effects on the screen and are not necessary when logging in. For example, the command to � se4�the VT100 into 80-column mode would normally be part of is, bu4�it causes an annoying glitch of the screen and is no4�normally needed since the terminal is usually already in AS-column mode. � If the terminal has hardware tabs, the command to advance to the nex4�tab stop can be given as ta (usually ^I). A ``backtab'' command which � moves leftward to the previous tab sto0�can be given as bt. B9�convention, if the terminal driver modes indicate that tab stops are being � expanded b9�the computer rather than being sen4�to the terminal, programs should not use ta or b4�even if they are present, since the user � ma9�no4�have the tab stops properl9�set. If the terminal has hardware tabs that are initially set every n positions when the terminal is powered up, then the numeric parameter it is given, showing the number of positions between tab stops. This is normall9�used b9�the <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]tset.".">tset(1)Ã_a> � command to determine whether to se4�the driver mode for hardware tab expansion, and whether to set the tab stops. If the terminal has tab stops tha4�can be saved in nonvolatile memory, the termca0�description can assume tha4�they are properl9�set. If there are commands to se4�and clear tab stops, the9�can be given as ct (clear all tab stops) and s4�(set a tab sto0�in the current column of ever9�row). If a more complex sequence is needed to set the tabs than can be described by this, the sequence can be placed in is or if. Delays Certain capabilities control padding in the terminal driver. These are primarily needed by hardcop9�terminals and are used b9�the <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]tset.".">tset(1)Ã_a> � program to set terminal driver modes appropriately. Delays embedded in the capabilities cr, sf, le, ff, and ta will cause the appropriate � dela9�bits to be set in the terminal driver. If pb (padding baud rate) is given, these values can be ignored at baud rates belo7�the value of pb. For 4(�Ñ‘)�BSD <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]tset.".">tset(1)Ã_a>, the delays are given as numeric capabilities dC, dN, dB, dF, and dT instead. Miscellaneous � If the terminal requires other than a NUL (zero) character as a pad, this can be given as pc. Onl9�the firs4�character of the pc string is used. If the terminal has commands to save and restore the position of the cursor, give them as sc and rc. � If the terminal has an extra ``status line'' tha4�is not normall9�used b9�software, this fac4�can be indicated. If the status line is viewed as an extra line belo7�the bottom line, then the capability hs should be given. Special strings to go to a position in the status line and � to return from the status line can be given as ts and fs. (fs must leave the cursor position in the same place tha4�it was before ts. If necessary, the sc and rc strings can be included in ts and fs to ge4�this effect.) The capabilit9�ts takes one parameter, which is the col- umn number of the status line to which the cursor is to be moved. If escape sequences and other special commands such as tab work while in the status line, the flag es can be given. A string that turns off the status line (or otherwise erases its contents) should be given as ds. � The status line is normall9�assumed to be the same width as the rest of the screen, i.e., co. If the status line is a different width (pos- � sibl9�because the terminal does no4�allo7�an entire line to be loaded), then its width in columns can be indicated with the numeric parameter ws. If the terminal can move up or down half a line, this can be indicated with h5�(half-line up) and hd (half-line down). This is primarily � useful for superscripts and subscripts on hardcopy terminals. If a hardcopy terminal can ejec4�to the nex4�page (form feed), give this as ff (usuall9�^L). If there is a command to repeat a given character a given number of times (to save time transmitting a large number of identical characters), � this can be indicated with the parameterized string rp. The first parameter is the character to be repeated and the second is the number of � times to repea4�it. (This is a <a class="neo-man-link man-links" href="/man-pag0ufreebs(uô^terminfo.".">terminfo(5)Ã_a> feature tha4�is unlikel9�to be supported by a program tha4�uses termcap.) If the terminal has a settable command character, such as the Tektronix 4(�åe)�5, this can be indicated with CC. A prototype command character � is chosen which is used in all capabilities. This character is given in the CC capability to identify it. The following convention is sup- � ported on some UNIX systems: The environment is to be searched for a CC variable, and if found, all occurrences of the prototype character � are replaced b9�the character in the environment variable. This use of the CC environment variable is a ver9�bad idea, as i4�conflicts with � <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]make.".">make(1)Ã_a>. � Terminal descriptions that do no4�represen4�a specific kind of known terminal, such as switch, dialup, patch, and network, should include the gn (generic) capability so that programs can complain tha4�they do no4�know how to talk to the terminal. (This capabilit9�does not apply to virtual terminal descriptions for which the escape sequences are known.) � If the terminal uses xof‹uxon (DÞ0¤0¯0í0/D) handshaking for flow control, give xo. Padding information should still be included so that routines can make better decisions about costs, bu4�actual pad characters will not be transmitted. If the terminal has a ``meta key'' which acts as a shif4�key, setting the 8th bit of an9�character transmitted, then this fac4�can be indi- � cated with km. Otherwise, software will assume that the 8th bit is parity and i4�will usually be cleared. If strings exist to turn this ``meta mode'' on and off, the9�can be given as mm and mo. If the terminal has more lines of memor9�than will fi4�on the screen at once, the number of lines of memory can be indicated with lm. An � explicit value of 0 indicates that the number of lines is no4�fixed, but tha4�there is still more memory than fits on the screen. � If the terminal is one of those supported by the UNIX system virtual terminal protocol, the terminal number can be given as vt. � Media copy strings which control an auxiliar9�printer connected to the terminal can be given as ps: prin4�the contents of the screen<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�pf: turn off the printer; and po: turn on the printer. When the printer is on, all tex4�sent to the terminal will be sen4�to the printer. I4�is � undefined whether the text is also displayed on the terminal screen when the printer is on. A variation pO takes one parameter and leaves � the printer on for as many characters as the value of the parameter, then turns the printer off. The parameter should not exceed 255. All text, including pf, is transparentl9�passed to the printer while pO is in effect. Strings to program function keys can be given as pk, pl, and px. Each of these strings takes two parameters: the function ke9�number to pra- � gram (from 0 to 9) and the string to program i4�with. Function ke9�numbers ou4�of this range ma9�program undefined keys in a terminal-depen- den4�manner. The differences among the capabilities are that pk causes pressing the given ke9�to be the same as the user typing the given string; pl causes the string to be executed b9�the terminal in local mode<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�and px causes the string to be transmitted to the computer. Unfortunately, due to lack of a definition for string parameters in termcap, only <a class="nea-man-link man-links" href= Yman-page/freebsd/5/terminfów">terminfo(5)</a �supports these capabilities. For the <a class="nea-man-link man-links" href= Yman-page/freebsd/1/xterm.".">xterm(1)</a �terminal emulator the traditional behavior in FreeBSD when exiting a pager such as <a class="nea-man-link man-links" href= Yman-page/freebsd/1/lestz">less(1)</a �or <a class="nea-man-link man-links" href= Yman-page/freebsd/1/mor0u">more(1)</a>, or an editor such as <a class="nea-man-link man-links" href= Yman-page/freebsd/1/v}v">vi(1)</a �is NOT to clear the screen after the program exits. If you prefer to clear the screen there are a number of ``xterm-clear'' entries tha4�add this capabilit9�in the termcap file that you can use directly, or as examples. Glitches and Braindamage Hazeltine terminals, which do not allow `~' characters to be displayed, should indicate hz. The nc capability, no7�obsolete, formerly indicated Datamedia terminals, which echo for carriage return then ignore a following line- � feed. � Terminals that ignore a linefeed immediately after an am wrap, such as the Concept, should indicate xn. � If ce is required to get rid of standout (instead of merel9�writing normal tex4�on top of it), xs should be given. Teleray terminals, where tabs turn all characters moved over to blanks, should indicate x4�(destructive tabs). This glitch is also taken to mean that i4�is not possible to position the cursor on to0�of a ``magic cookie'', and tha4�to erase standou4�mode i4�is necessary to use delete and insert line. The Beehive Superbee, which is unable to correctl9�transmit the ESC or ^C characters, has xb, indicating that the ``f1'' ke9�is used for ESC and ``f2'' for ^C. (Only certain Superbees have this problem, depending on the ROM.) Other specific terminal problems ma9�be corrected b9�adding more capabilities of the form xx. Similar Terminals � If there are two ver9�similar terminals, one can be defined as being jus4�like the other with certain exceptions. The string capabilit9�tc � can be given with the name of the similar terminal. This capability mus4�be last, and the combined length of the entries must not exceed 1(�åe)�4. The capabilities given before tc override those in the terminal type invoked b9�tc. A capabilit9�can be canceled by placing xx@ to the lef4�of the tc invocation, where xx is the capability. For example, the entry hn|26-nl:ks@:ke@:tc(�O)�(�¡Œ)�1: defines a `�(�¡Œ)�1-nl'' tha4�does not have the ks or ke capabilities, hence does no4�turn on the function key labels when in visual mode. This � is useful for differen4�modes for a terminal, or for different user preferences. <div class="nea-man-caps"><b>FILESÃ_b>Ã_div> � /usr/share/misutermcap File containing terminal descriptions. ëXus¾yshar0umisc/termcap.db Hash database file containing terminal descriptions (see <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]cap_mkdb.".">cap_mkdb(1)Ã_a>). <div class="nea-man-caps"><b>SEE ALSO</b></div> <a class="nea-man-link man-links" href= Yman-page/freebsd/1/cap_mkdu">cap_mkdb(1)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsd/1/e6">ex(1)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsd/1/mor0u">more(1)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsd/1/tseËz">tset(1)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsd/1/uîv">ul(1)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsd/1/v}v">vi(1)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsd/1/xterm.".">xterm(1)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/ncurses.".">ncursesÊ0Î0)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/print‹u">printfÊ0Î0)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/termcap.".">termcapÊ0Î0)</a>, <a class="nea-man-link man-links" href= Yman-page/freebsd/5/terÛw">term(5)</a> <di6�class="neo-man-caps"><b>CAVEATS AND BUGSÃ_b>Ã_div> � The Note: termca0�functions were replaced by <a class="nea-man-link man-links" href= Yman-page/freebsd/5/terminfów">terminfo(5)</a �in AT&T System V UNIX Release 2.0. The transition will be relativel9�painless if capabilities flagged as ``obsolete'' are avoided. Lines and columns are now stored by the kernel as well as in the termca0�entry. Most programs no7�use the kernel information primarily<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�s�i�g�n�"�>�; <�/�s�p�a�n�>�<�s�p�a�n� �c�l�a�s�s�=�"�n�a�k�e�d�_�a�u�r�a�l�"�>�(�èlŠ)�<�/�s�p�a�n�>�the information in this file is used only if the kernel does no4�have any information. � The <a class="neo-man-link man-links" href="/man-pag0ufreebs(uþ]vi.".">vi(1)Ã_a> program allows only(��N)�56 characters for string capabilities, and the routines in <a class="nea-man-link man-links" href= Yman-page/freebsdÔ0¯0ë0/termlib.".">termlibÊ0Î0)</a �do not check for overflo7�of this buf- � fer. The total length of a single entry (excluding only escaped newlines) may not exceed 1024. � No4�all programs support all entries. <di6�class="neo-man-caps"><b>HISTORY</b></div> The termcap file format appeared inµ0ó0Á0ü0à0BSD. <div class="nea-man-caps"><b>BSDÃ_b>Ã_div> December Ó0ë0, 2009 � BSD</pre> Ã_div> � </div> <div class="table-responsive mb-4"> <table id="similar-threads-table" class="table table-bordered"> <thead class="table-dark"> � <tr> <th>Similar Topics in the Unix Linux CommunityÃ_th> Ã_tr> Ã_thead> � <tbody> � <tr> <td> � <a href="httpa_/community.unix.coÛwËztermca:y1569"> � Termcap � </a> Ã_td> Ã_tr> <tr> � <td> <a href="http:å]community.unix.com/t/na-entry-in-termcap-for-h:y165996"> � no entr9�in termcap for &»0ó0È09;hp' Ã_a> � </td> � </tr> � <tr> <td> � <a href="httpa_/community.unix.coÛwËzscreen-termcap-problem(�W)�24585"> screen - termcap problem � </a> Ã_td> Ã_tr> <tr> � <td> <a href="http:å]community.unix.com/t/scigraphicatermcap-installation(�W)�45(� g)�3"> Scigraphica-termca0�installation � </a> Ã_td> Ã_tr> <tr> � <td> <a href="http:å]community.unix.com/t/solaris-vi-not-vim-not-using-xterm-termcap-entrQ3046"> � Solaris +vi (no4�vim) not using xterm termcap entry � </a> Ã_td> Ã_tr> Ã_tbody> � </table> Ã_div> Ã_body> Ã_html> <�/�d�i�v�>�<�d�i�v� �c�l�a�s�s�=�"�n�a�k�e�d�_�c�t�r�l�"�>� �<�f�o�r�m� �a�c�t�i�o�n�=�"�/�i�n�d�e�x�.�c�g�i�/�c�o�n�t�r�a�s�t�"� �m�e�t�h�o�d�=�"�g�e�t�"� �n�a�m�e�=�"�g�a�t�e�"�>� �<�p�>�<�a� �h�r�e�f�=�"�h�t�t�p�:�/�/�a�l�t�s�t�y�l�e�.�a�l�f�a�s�a�d�o�.�n�e�t�"�>�A�l�t�S�t�y�l�e�<�/�a�>� �k0ˆ0c0f0 YÛcU0Œ0_0Ú0ü0¸0 �<�a� �h�r�e�f�=�"�h�t�t�p�s�:�/�/�w�w�w�.�u�n�i�x�.�c�o�m�/�m�a�n�-�p�a�g�e�/�f�r�e�e�b�s�d�/�5�/�t�e�r�m�c�a�p�"�>�(�-�&�g�t�;�ª0ê0¸0Ê0ë0)�<�/�a�>� �/� �<�l�a�b�e�l�>�¢0É0ì0¹0:� �<�i�n�p�u�t� �t�y�p�e�=�"�t�e�x�t�"� �n�a�m�e�=�"�n�a�k�e�d�_�p�o�s�t�_�u�r�l�"� �v�a�l�u�e�=�"�h�t�t�p�s�:�/�/�w�w�w�.�u�n�i�x�.�c�o�m�/�m�a�n�-�p�a�g�e�/�f�r�e�e�b�s�d�/�5�/�t�e�r�m�c�a�p�"� �s�i�z�e�=�"�2�2�"� �/�>�<�/�l�a�b�e�l�>� �<�l�a�b�e�l�>�â0ü0É0:� �<�s�e�l�e�c�t� �n�a�m�e�=�"�n�a�k�e�d�_�p�o�s�t�_�m�o�d�e�"�>� �<�o�p�t�i�o�n� �v�a�l�u�e�=�"�d�e�f�a�u�l�t�"�>�Ç0Õ0©0ë0È0<�/�o�p�t�i�o�n�>� �<�o�p�t�i�o�n� �v�a�l�u�e�=�"�s�p�e�e�c�h�"�>�ó—ðXÖ0é0¦0¶0<�/�o�p�t�i�o�n�>� �<�o�p�t�i�o�n� �v�a�l�u�e�=�"�r�u�b�y�"�>�ë0Ó0ØNM0<�/�o�p�t�i�o�n�>� �<�o�p�t�i�o�n� �v�a�l�u�e�=�"�c�o�n�t�r�a�s�t�"� �s�e�l�e�c�t�e�d�=�"�s�e�l�e�c�t�e�d�"�>�M‘r‚ÍSâŽ<�/�o�p�t�i�o�n�>� �<�o�p�t�i�o�n� �v�a�l�u�e�=�"�l�a�r�g�e�r�-�t�e�x�t�"�>�‡eW[áb'Y<�/�o�p�t�i�o�n�>� �<�o�p�t�i�o�n� �v�a�l�u�e�=�"�m�o�b�i�l�e�"�>�â0Ð0¤0ë0<�/�o�p�t�i�o�n�>� �<�/�s�e�l�e�c�t�>� �<�i�n�p�u�t� �t�y�p�e�=�"�s�u�b�m�i�t�"� �v�a�l�u�e�=�"�hˆ:y"� �/�>� �<�/�p�>� �<�/�f�o�r�m�>� �<�/�d�i�v�>� � � �