DEC VTs representam teclas de função e várias teclas de cursor e edição com uma seqüência de controle chamada DECFNK, que é CSI seguida por um ou dois parâmetros seguidos por ~
. O primeiro parâmetro é o número da tecla de função. O segundo parâmetro indica estados da tecla modificadora ativa.
No que diz respeito ao DECFNK, pode haver até 20 teclas de função. Os códigos DECFNK para as teclas de função 1 a 20 são bem definidos e documentados. Havia, afinal, fisicamente 20 teclas de função nos teclados LK. (Mesmo que várias teclas de função geralmente não funcionem, elas potencialmente geram sequências DECFNK, e as seqüências estão no doco DEC.) Aqui está um teclado LK401 para um DEC VT420 :
Comovocêpodevernatabela,osemuladoresqueproduzemasseqüênciasDECFNKoriginaisemitemDECFNK11paraDECFNK34paraessas20chaves.(AlgunsdosnúmerosDECFNKsãoignorados.Curiosamente,osnúmerosignoradoscorrespondemaosespaçosfísicosentreosgruposdeteclasdalinhadatecladefunçãonoteclado.)
OndeascoisasficamcomplexaséondeoPCeoXENIXforamintroduzidos.NomundodoIBMPCe,emparticular,doPC3270,havia24teclasdefunçãonostecladosdoModeloF.OtecladoEnhanceddoPC/ATtinha12teclasdefunção,metadedisso.AquiestáumtecladomodeloF3270:
As convenções de emulação de terminal surgiram quando as teclas de função de F13 para F24 puderam ser acessadas a partir de um teclado PC / AT usando combinações de modificadores. Com as quatro combinações de ⎈ Controle e ⇧ Deslocamento de Nível 2 , as teclas de função mera 12 em um teclado Enhanced podem ser feitas para simular a função 48 chaves. Este foi o caso do console XENIX, que gerou 48 seqüências de controle distintas.
Você observará nas outras colunas da tabela que é isso que está acontecendo. As seqüências de controle para (digamos) F6 , F18 , F30 e F42 são todas DECFNK 17 com valores diferentes para os bitflags modificadores no segundo parâmetro.
Observe também que F1 para F5 não são seqüências de controle DECFNK nas mesmas colunas. Isto é novamente baixo para convenções de emulador em teclados de PC. Nos teclados DEC LK, F1 para F5 fez ter atribuído as seqüências DECFNK e poderiam gerá-las, mas geralmente operadas em um modo "local" em que eles não geraram entrada para o host. Os emuladores não precisavam gerar essas sequências DECFNK e emular F1 para F5 , porque poucas ou nenhuma aplicação dependiam dessas chaves como consequência; mas os emuladores inversamente fizeram precisam emular um conjunto de chaves PF1 para PF4 que estavam no teclado da calculadora em um teclado DEC atual, mas esse PC teclados não tem. Estas chaves não geraram sequências DECFNK, e não foram chaves de função verdadeiras. Eles geraram sequências de controle SS3, como as outras teclas da calculadora.
(Algumas das sequências SS3 são malformadas. "SS" significa "Single Shift" e tais mudanças aplicam-se a um único caractere seguinte. As sequências de controle XTerm que acrescentam parâmetros modificadores ao SS3 não são de fato seqüências SS3 corretamente formadas. Terminais reais DEC não funcionavam dessa forma, não foram relatados modificadores para seqüências de controle de teclas da calculadora.
Isso explica como a seqüência de controle da tecla de função definida para terminais emulados pode chegar a 48 teclas de função. Para explicar 64 seqüências de controle, basta observar o parâmetro modificador nas seqüências do DECFNK. Para as 12 seqüências de controle adicionais, é 3
, que denota o modificador ⎇ Alt .
De fato, existem 8 combinações possíveis de ⎈ Controle , ⇧ Deslocamento de Nível 2 e ⎇ Alt ; os três modificadores reconhecidos pelo protocolo de sequência de controle DEC VT. Assim, pode haver 96 sequências de controle DECFNK diferentes para essas convenções de emulador de terminal de um teclado PC / AT Enhanced e 160 de um teclado DEC LK.