www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/07/08/04:23:56

From: baldo AT chasque DOT apc DOT org
Message-Id: <3.0.1.32.19970708043731.0068cc5c@chasque.apc.org>
Date: Tue, 08 Jul 1997 04:37:31 -0300
To: "Grzegorz Hankiewicz" <gregorio AT jet DOT es>
Subject: Re: How to access the vide memory under DJGPP to print text.
Cc: djgpp AT delorie DOT com
In-Reply-To: <5pb362$l1r$1@diana.ibernet.es>
Mime-Version: 1.0

At 04:18 PM 01/07/1997 +0200, you wrote:
>Hi.
>I would like to know how to access the video memory to print text when in
>text video modes.
>I want to know if I could make a game with text graphics in 80x25. Can you
>blit text to the memory the same as you do with the VGA to avoid flicker?
>How do you change colors or the palette in this mode?
>How can you set the 80x50 text mode?
>Thanks
>

	Sorry for the people who speak English, but is very hard to me to write in
English. If someone want this writed in English, ask me, and I rewrite it
in English.

	Hola! Como ví que sos de españa te escribo en español (o mejor dicho en mi
español que es muy malo y tiene muchas faltas de ortografía). Esto tambien
lo mando al mailing list de DJGPP para la gente que se pregunta lo mismo y
sabe hablar español.
	Bueno, el buffer de texto está compuesto por columnas y filas al igual que
el buffer grafico de VGA, pero cada celda está compuesta por 16 bits que
contienen el caracter y los colores del mismo. La estructura de cada celda
es la siguiente:
	8 bits - Código ASCII del caracter.
	3 bits - Color del texto.
	1 bit - Si está encendido significa color de alta intensidad, si está
apagado significa color de baja intensidad.
	3 bits - Color del fondo.
	1 bit - Si está activado hace que el caracter titilee (blink), si está
apagado el caracter aparece siempre.
	Si estas en 80x25 o 80x50 es lo mismo, no hay que cambiar de banco o de
pagina ni nada de eso, es muy simple. Podés usar una matriz en memoria ram
y despues volcarla al buffer de texto que está localizado a 0xb800. No hice
ninguna rutina de esto para DJGPP, pero si queres te puedo dar unas que
tengo que están hechas para Microsoft C/C++ 7.0.
	No se si el modo de texto tiene algun tipo de sincronizacion con el
monitor para hacer cosas "flicker free", pero con el modo de texto vas a
tener tanta velocidad que esto no creo que sea necesario.
	Para poner el modo de texto es muy simple, cargas AX con 0x3 y llamar a la
interrupcion 0x10. Esto te pone el modo de texto 80x25. Si queres poner
80x50 tenes que primero poner el modo de texto 80x25 como te dije y despues
cargar AX con 0x1112 y llamar a la interrupcion 0x10.
	Nunca probé cambiar la paleta para los modos de texto, pero me imagino que
será similar a ponerla en VGA, talvez sea de la misma forma, excepto que
pones solo 16 colores en vez de 256.
	Bueno, espero haberte ayudado o haber ayudado a alguien mas. Si tenes
alguna duda preguntamela y veo si te puedo ayudar. Chau!

Ivan Baldo: baldo AT chasque DOT apc DOT org - http://www.chasque.apc.org/baldo


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019