HispaMSX

Re: [hispamsx] Dudeda ensambladorera

2001-06-01 10:28:56
On Thu, 31 May 2001, DEF wrote:

Estaba cacharreando con el Hitech-C (si es que no escarmiento) y me he dado
cuenta que no tiene funciones para colocar el texto donde te de la gana
(algo así como el gotoxy de Borland o el SetTextPosition de M$). Así que
supongo que me tocará hacerlo en ensamblador, pero ni idea de como hacerlo.
He mirado el Teechnical Hand Book y te dice como (+ o -) pero en Basic T_T y
el EasyAsembler de Nestor tampoco (más que nada porque eso supongo que
estará en el capitulo 10 o 11 aún sin escribir)

Vaya, pues esto es un poco básico, no? Si dices que te has mirado el
Technical Handbook, vuélvetelo a mirar, porque está todo ahí.

Tienes por lo menos dos formas de hacerlo:

1) Enviar directamente a la VRAM el texto que quieres imprimir, a partir
de la dirección en la que quieres que aparezca. Simplemente has de
calcular la dirección VRAM de la posición X,Y en pantalla. (solución
recomendada)
2) Escribir en las variables del sistema en las que el MSX-DOS guarda las
posiciones X e Y del cursor en pantalla y poner el cursor donde te
interesa. Luego usar la función STROUT de MSX-DOS para escribir el texto
(solución *NO* recomendada)

Para cualquiera de los dos métodos tienes toda la información necesaria
en el MSX2 Technical Handbook. Y seguro que a alquien se le ocurren más
formas de hacerlo.

1.- ¿Como demonios se hace esto? Bien por interrupciones o por
desplazamiento sobre la memoria de video... me da igual.
2.- ¿Existe alguna lista de interrupciones a lo Ralf Brown (creo que se
llamaba así el payo) pero para MSX?

En el MSX las 'interrupciones del DOS' se les llama 'funciones del DOS'.
La palabra 'interrupciones' tiene otro sentido muy distinto. Y sí, hay una
lista de todas las funciones del MSX-DOS. Están en el MSX2 Technical
Handbook.

Por cierto, he pasado toda la documentación del MSX-DOS2 a PDF (comandos,
entorno y funciones). Esta noche lo subiré a la web para que todo el mundo
pueda bajárselo (137 páginas).

Saludos,

--
ag0ny(_en_)ag0ny(_punto_)com - http://www.aamsx.org


<Anterior en la conversación] Conversación actual [Siguiente en la conversación>