Codi ESC ANSI

(S'ha redirigit des de: ANSI X3.64)

La norma de codis d'escapament ANSI X3.64 o ECMA-48 és la norma de l'American National Standards Institute (ANSI) impulsada per Bob Bemer a la dècada de 1970[1] i definida com l'estàndard de control de terminals basat en seqüències d'escapament emprades com caràcters de control per mostrar els caràcters en pantalla. La majoria dels emuladors de terminal actuals són compatibles amb el VT100 i per tant, apliquen aquesta norma. Cal tenir en compte però, que els diferents fabricants de terminals han dut a terme ampliacions de molts dels codis en el seva implementació particular.[2]

Seqüencies d'escapamentModifica

Les Seqüencies d'escapament ANSI definides inicialment per Bob Bemer, s'utilitzen per donar format a la sortida d'un terminal de text i es basen en l'estàndard ANSI, ANSI X3.64 (també anomenat ECMA-48). Quan s'intenta representar un codi d'escapament el terminal ho intercepta i actua en funció a aquest codi, canviant el color o movent el cursor. Les possibilitats de les seqüències d'escapament són molt variades i s'utilitzaven per donar format i canviar l'aspecte del que es volia mostrar en la pantalla del terminal.[3]

La majoria dels codis ANSI X3.64-control comencen amb el codi de control ASCII ESC (27 decimal, hexadecimal 1B), al que generalment segueix un claudàtor obert [ i uns quants codis de control:[4]

  • Esborrament de pantalla: ESC [2 J
  • Moure el cursor: ESC [ mn fila F, columna H (posicionament de fila i columna)
  • Regular el: ESC [1 m
  • Tots els formats de: ESC [0 m

La majoria de llenguatges de programació d s'utilitzen els codis de control per a la impressió directament al terminal, que sol ser estàndard. Per exemple, el llenguatge C per esborrar el text de la pantalla del terminal -compatible ANSI X3.64 empra el següent codi:

printf ("\ 033 [2J");

PC-DOSModifica

El sistema operatiu IBM PC-DOS empra el controlador ANSI.SYS que té com el seu propi nom indica, una gran part de la norma ANSI X3.64, però també inclou alguns codis de factura pròpia. Potser la part incorporada més significativa és la possibilitat d'utilitzar codis de colors, sovint anomenats incorrectament "codis de color ANSI". Amb aquests codis, per a cada caràcter es poden triar i establir clarament vuit opcions per al color del text i vuit per al color del fons de manera que les opcions són pràcticament 16 caràcters ASCII gràfics, utilitzats en les targetes gràfiques de 8 bits del PC d'IBM emprant codis de control "tipus ANSI", que van ser especialment populars a la dècada de 1990.[5]

A MS-DOS era necessari instal·lar el controlador ANSI.SYS, ANSI.COM[6] o NANSI.SYS[7]que permetia interpretar aquests codis. Tots els codis d'escapament comencen pels caràcters ESC (caràcter ASCII número 27 decimal, 1B en hexadecimal) seguit del caràcter [ .

Atari STModifica

L'Atari ST va utilitzar un sistema d'ordres adaptat a partir del VT52 amb algunes expansions per al suport de color, en lloc de donar d'utilitzar els codis d'escapament ANSI.[8]

Amiga-OSModifica

L'Amiga-OS no només interpreta les seqüències de codi ANSI per a la sortida de text a la pantalla, sinó que el controlador d'impressora Amiga-OS també les interpreta (amb extensions pròpies d'Amiga-OS) i les tradueix als codis necessaris per a cada impressora concreta que estigui connectada físicamentt.[9]

Taula de seqüencies d'escapament ANSI[5][10]Modifica

Alguns codis d'escapament
Seqüència Acció
ESC [ n A Mou el cursor cap amunt n files. Si el cursor es trobava a la part superior de la pantalla, no tenia cap efecte. Si no s'especificava n el cursor pujava una fila.
ESC [ n B Mou el cursor n files cap avall. Igual que amb el desplaçament cap amunt, si el cursor es trobava a la part inferior de la pantalla el cursor no es movia, i si no s'especificava n baixava una fila.
ESC [ n C Mou el curosr n columnes cap a la dreta. Si el cursor es troba en l'última columna aquesta comandament no té efecte. Si no s'especifica n el desplaçament és d'una columna.
ESC [ n D Mou el cursor n columnes a l'esquerra, llevat que es trobi a la primera columna, en aquest cas no té efecte. Si n no s'especifica pren el valor d'1.
ESC [ n ; m f Mou el cursor a la fila n i columna m . Si n no s'especifica el cursor es mou a la primera fila.
ESC [ n J Esborra part de la pantalla. Si n val 0 s'esborra des del cursor fins al final de la pantalla. En cas que n valgui 1 s'esborra fins al principi de la pantalla des de la posició del cursor. Si n val 2 s'esborra tota la pantalla (i utilitzant ANSI. SYS de MS-DOS el cursor va al principi de la pantalla)
ESC [ n K Esborra part de la línia. Si n és zero, des del cursor al final de la Lienas, en cas que valgui 1 s'esborra fins al principi. Si n val 2 s'esborra tota la línia.
ESC [ codi ; paràmetre [; paràmetre ] p Amb aquesta comandament es redefineix el comportament d'una tecla.
ESC [s Desa la posició actual del cursor.
ESC [o Posar el cursor a la posició guardada anteriorment.

Colors[11][12]Modifica

Taula de colors
Intensidad 0 1 2 3 4 5 6 7
Normal Negre Vermell Verd Groc Blau Magenta Cian Blanc
Clar Negre Vermell Verd Groc Blau Magenta Cian Blanc
Nom del color Color estàndard VGA CMD de Windows XP Terminal.app PuTTY mIRC xterm CSS/HTML X
Normal Negre 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0 0, 0, 0
Vermell 170, 0, 0 128, 0, 0 194, 54, 33 187, 0, 0 127, 0, 0 205, 0, 0 255, 0, 0 255, 0, 0
Verd 0, 170, 0 0, 128, 0 37, 188, 36 0, 187, 0 0, 147, 0 0, 205, 0 0, 255, 0 0, 128, 0
Marró/groc 170, 85, 0 128, 128, 0 173, 173, 39 187, 187, 0 252, 127, 0 205, 205, 0 255, 255, 0 255, 255, 0
Blau 0, 0, 170 0, 0, 128 73, 46, 225 0, 0, 187 0, 0, 127 0, 0, 238 0, 0, 255 0, 0, 255
Magenta 170, 0, 170 128, 0, 128 211, 56, 211 187, 0, 187 156, 0, 156 205, 0, 205 255, 0, 255 255, 0, 255
Cian 0, 170, 170 0, 128, 128 51, 187, 200 0, 187, 187 0, 147, 147 0, 205, 205 0, 255, 255 0, 255, 255
Gris 170, 170, 170 192, 192, 192 203, 204, 205 187, 187, 187 210, 210, 210 229, 229, 229 255, 255, 255 255, 255, 255
Clar Gris fosc 85, 85, 85 128, 128, 128 129, 131, 131 85, 85, 85 127, 127, 127 127, 127, 127
Vermell 255, 85, 85 255, 0, 0 252,57,31 255, 85, 85 255, 0, 0 255, 0, 0
Verd 85, 255, 85 0, 255, 0 49, 231, 34 85, 255, 85 0, 252, 0 0, 255, 0 144, 238, 144 144, 238, 144
Groc 255, 255, 85 255, 255, 0 234, 236, 35 255, 255, 85 255, 255, 0 255, 255, 0 255, 255, 224 225, 255, 224
Blau 85, 85, 255 0, 0, 255 88, 51, 255 85, 85, 255 0, 0, 252 92, 92, 255 173, 216, 230 173, 216, 230
Magenta 255, 85, 255 255, 0, 255 249, 53, 248 255, 85, 255 255, 0, 255 255, 0, 255
Cian 85, 255, 255 0, 255, 255 20, 240, 240 85, 255, 255 0, 255, 255 0, 255, 255 224, 255, 255 224, 255, 255
Blanc 255, 255, 255 255, 255, 255 233, 235, 235 255, 255, 255 255, 255, 255 255, 255, 255

ReferènciesModifica

  1. computerhope.com
  2. «Withdrawn FIPS Listed by Number». National Institute of Standards and Technology, 15 December 2016. [Consulta: 2 gener 2022].
  3. «The Great Curly Brace Trace Chase». Computer History Vignettes. Bob Bemer, 07-07-2002.
  4. Heathkit Company. «Heathkit Catalog 1979». Heathkit Company, 1979. Arxivat de l'original el 2012-01-13. [Consulta: 4 novembre 2011].
  5. 5,0 5,1 Frank da Cruz. Using C-Kermit. Digital Press, 1997, p. 278. ISBN 978-1-55558-164-0. 
  6. «ANSI.com: Download It Here». PC Magazine, 07-02-1989.
  7. «Nansi and NNansi – ANSI Drivers for MS-DOS». Dan Kegel's Web Hostel, 28-02-1999. [Consulta: 10 agost 2011].
  8. «Printer and terminal escape codes». Concise Atari ST 68000 Programming Guide. Arxivat de l'original el 20 September 2016. [Consulta: 22 juny 2020].
  9. «Amiga Printer Command Definitions». Commodore. [Consulta: 10 juliol 2013].
  10. Moy, Edward; Gildea, Stephen; Dickey, Thomas. «XTerm Control Sequences (ctlseqs)». Invisible Island, 2019.
  11. Moy, Edward; Gildea, Stephen; Dickey, Thomas. «XTerm Control Sequences (ctlseqs)». Invisible Island, 2019.
  12. «color-spaces.pl (a copy of 256colors2.pl from xterm dated 1999-07-11)». KDE, 06-12-2006.[Enllaç no actiu]

Enllaços externsModifica

Estàndard ECMA-48. Llista de codis de control definida al juny de 1991.