A mediados de los 90, empezaron a popularizarse en juegos comerciales, y demos, las tipografías degradadas. A principios de 1991, yo ya lo había implementado. Vi diferentes variantes desde las bitono, con la mitad superior de cada letra de un color, y la mitad inferior de otro color, que era requerido en CGA, EGA y VGA con 16 colores o menos, y la variante que degradaba verticalmente todos los píxeles.

Las diferencias, aparte de los años de antelación son que yo lo hice con QuickBASIC 4.5, de manera que aunque funcionaba, distaba mucho de ser eficiente, y en un PC/XT de la época se podía imprimir una pantalla de texto a resolución MCGA/VGA 320×200 con 256 colores en aproximadamente 1 segundo.

Casualmente he encontrado en un disco de 3,5 pulgadas la implementación en cuestión, que en este caso databa de 1992, recuerdo que la versión inicial usaba POKE/PEEK para los accesos directos a memoria, que sorprendentemente eran más lentos que las funciones de QB.

La versión que publico a continuación, está refactorizada levemente, y compilada con Visual Basic 1.0 para DOS. El ejecutable original eran 28 KB., mientras que éste son 34 KB. descomprimido, y está compilado para procesadores 8088/8086 o superiores.

20 años después, resulta curioso ver lo sencillo de la idea, y la simplicidad de la implementación.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
DECLARE SUB Main ()
DECLARE SUB Letras (piL%, piC%, psTexto$, piColor%)
Main
 
SUB Letras (piL%, piC%, psTexto$, piColor%)
	iTextoLen% = LEN(psTexto$)
	iCurX% = (piC% - 1) * 8
 
	LOCATE piL%, piC%
	COLOR 15
 
	FOR iTexto% = 1 TO iTextoLen%
		PRINT MID$(psTexto$, iTexto%, 1);
		FOR iX% = 0 TO 7
			iCurY% = (piL% - 1) * 8
			FOR iY% = 0 TO 7
				IF POINT(iCurX%, iCurY%) <> 0 THEN
					PSET (iCurX%, iCurY%), piColor% + iY%
				END IF
				iCurY% = iCurY% + 1
			NEXT
			iCurX% = iCurX% + 1
		NEXT
	NEXT
END SUB
 
SUB Main ()
	SCREEN 13
	Letras 9, 12, "Letras degradadas", 50
	Letras 11, 3, "Basado en un c¢digo original de 1991", 50
	Letras 12, 6, "inicialmente en QuickBASIC 4.5.", 50
	Letras 13, 2, "En 2012 compilado con VisualBASIC 1.0", 50
	Letras 14, 11, "y con algunos cambios.", 50
	Letras 16, 9, "http://www.javiergutierrezchamorro.com", 50
	SLEEP 0
	SCREEN 0
	WIDTH 80
END SUB

Puedes descargar el paquete con los fuentes y el binario aquí (24 Kb. en formato ZIP).