Karoshi MSX Community

Desarrollo MSX => Desarrollo (Español/Spanish) => Mensaje iniciado por: assembler en 29 de Febrero de 2012, 07:03:12 pm



Título: Set page en ensamblador
Publicado por: assembler en 29 de Febrero de 2012, 07:03:12 pm
Según he podido ver en este hilo http://karoshi.auic.es/index.php?topic=2133.0 (http://karoshi.auic.es/index.php?topic=2133.0), para tratar con las diferentes páginas en VRAM hay que cambiar las bases de la tabla de nombres, colores y atributos, con los registros 2, 3 y 4.

Con eso entiendo que las gestiones hay que hacerlas por código, ¿no?

para escribir en la página 1 y ver la 0, tengo que escribir en 0x5800, y tener el registro 2 como 6
y para escribir en la 0 y ver la 1, escribir en 0x1800 y tener el registro 2 como 22

¿Es asíN?


Título: Re: Set page en ensamblador
Publicado por: samsaga2 en 01 de Marzo de 2012, 11:52:36 am
Si no te hace falta cambiar de página tirando directamente de vdp (interrupciones) te recomiendo tirar de la bios.

Por lo demás, sí. Para modificar la página 1 escribes los valores en el 5800h y para la página 0 los valores en 1800h. Las posiciones de la memoria vram no cambian, cambian los valores de los registros que indican en que sitios de la vram están los valores que ha de usar para mostrar las cosas en pantalla.


Título: Re: Set page en ensamblador
Publicado por: assembler en 01 de Marzo de 2012, 11:58:11 am
¿Qué funciones de la BIOS tendría que usar?




Título: Re: Set page en ensamblador
Publicado por: samsaga2 en 01 de Marzo de 2012, 12:49:54 pm
SETPAG (013DH)
  Function:     switches the page
  Input:        DPPAGE (FAF5H) for the display page number
                ACPAGE (FAF6H) for the active page number
  Output:       none
  Registers:    AF

Ten en cuenta que usando las rutinas de las bios tanto para cambiar de página como para establecer la dirección de escritura en vram (0053h) siempre has de poner la misma dirección, 1800h, ya que la bios ya se encarga de averiguar la página activa (la de escritura).