
Si llamamos al INT 10h y configuramos sus parámetros mediante lenguaje ensamblador, y luego compilamos este código en un binario y lo escribimos en el sector de arranque del disquete, podemos generar una cadena en la máquina básica (o máquina virtual sin sistema operativo) pantalla.
...
; INT 10h
; When AH = 13h
; ES:BP = Offset of string
; CX = length of string
; AL = Write mode
; BH = Page Number, BL = Color
; DL = Column
mov ax, BootMessage
mov bp, ax
mov cx, 12
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
jmp $ ; while (true)
BootMessage: db "Hello World!"
...
Me pregunto cómo controla el BIOS el glifo de cada carácter. En algunas computadoras, ¿por qué la "A" en la pantalla es similar a la "A" en fuente Sans-serif, no a Courier? Pero en otras computadoras, puede ser otra fuente.
¿Hay algunas matrices 0-1 integradas en el BIOS o en una determinada ROM? Por ejemplo, la matriz 0-1 en la imagen siguiente corresponde al carácter A.
Respuesta1
Antes de que se cargue el sistema operativo, el BIOS controla cómo se escribe el texto. El propio BIOS tiene instrucciones para imprimir texto básico en la pantalla. Necesita esto para poder dibujar su propia pantalla BIOS. Cualquier fuente que esté codificada en el BIOS, es la que se utilizará más adelante.
Cuando envía este código al BIOS, lo traduce en cambiar el color de ciertos píxeles. Si bien es de esperar que solo imprima el color anterior, en realidad también imprimirá el color de fondo. De lo contrario, el texto se superpondría y crearía un desorden.
De hecho, sigue una matriz para cada letra basada en un tamaño fijo, y es posible cambiar el conjunto de caracteres durante el tiempo de ejecución.
Así es como se crearon los juegos basados en modo texto en el C64. El programador cambiaba a menudo la fuente para poder dibujar bonitos gráficos. A veces era tan simple como colocar el objeto del jugador dentro de un personaje y moverlo.