viernes, 7 de octubre de 2016

Impresoras basadas en caracteres

La tecnología de impresión de los 80 era muy diferente en dos aspectos. Primero, las impresoras de dicho periodo eran casi todas impresoras de impacto. Las impresoras de impacto usan un sistema mecánico que golpea una cinta contra el papel para formar impresiones de caracteres en la página. Dos de las tecnologías populares de aquella época eran la impresión de margarita y la impresión por matriz de puntos.

La segunda, y más importante característica de las primeras impresoras, era que las impresoras usaban una colección limitada de caracteres que era intrínseca al propio dispositivo. Por ejemplo, una impresora de margarita sólo podía imprimir los caracteres que estaban moldeados en los pétalos de la margarita. Esto hacía que las impresoras fueran casi como máquinas de escribir de alta velocidad. Como la mayoría de máquinas de escribir, imprimían usando fuentes monoespaciadas (de anchura fija). Esto significa que cada carácter tiene el mismo ancho. La impresión se realizaba en posiciones fijas de la página, y el área imprimible de una página contenía un número fijo de caracteres. La mayoría de las impresoras imprimían diez caracteres por pulgada (CPI) horizontalmente y seis líneas por pulgada (LPI) verticalmente. Usando este esquema, una hoja de papel tamaño US-letter tenía 85 caracteres de ancho y 66 líneas de alto. Teniendo en cuenta un pequeño margen a cada lado, se consideraba que 80 caracteres era el ancho máximo de una línea impresa. Esto explica por qué las pantallas de terminales (y nuestros emuladores de terminal) normalmente tienen 80 caracteres de ancho. Proporciona una vista WYSIWYG (What you see is what you get - Lo que ves es lo que obtienes) de la salida impresa, usando una fuente monoespaciada.

Los datos son enviados a una impresora tipo máquina de escribir en una secuencia simple de bytes que contiene los caracteres a imprimir. Por ejemplo, para imprimir una "a", se envía el código ASCII 97 del carácter. Además, los códigos de control ASCII con números bajos proporcionaban un medio de mover el carro y el papel de la impresora, usando códigos para retorno de carro, salto de línea, salto de página, etc. Usando los códigos de control, es posible conseguir efectos de texto limitados, como negrita, haciendo a la impresora imprimir un carácter, retroceso, e imprimir el carácter de nuevo para conseguir una impresión más oscura en la página. En realidad podemos comprobar esto si usamos nroff para renderizar una man page y ver la salida usando cat -A:

[me@linuxbox ~]$ zcat /usr/share/man/man1/ls.1.gz | nroff -man | cat -A | head
LS(1)            User Commands               LS(1)
$
$
$
N^HNA^HAM^HME^HE$
       ls - list directory contents$
$
S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS$
       l^Hls^Hs [_^HO_^HP_^HT_^HI_^HO_^HN]... [_^HF_^HI_^HL_^HE]...$

Los caracteres ^H (Control-h) son los retrocesos usados para crear el efecto negrita. De igual forma, podemos ver una secuencia retroceso/guión bajo para producir un subrayado.

No hay comentarios:

Publicar un comentario