HispaMSX

RE: Dudas de programación

2003-12-01 23:15:24
Muchas gracias, David, acababa de contestar a José Luis y se me había 
pasado tu mensaje :) Intentaré buscar toda la información posible y 
prometo preguntar sólo cuando me encuentre realmente atascado en algo, 
lo prometo :) Tampoco era necesario una respuesta tan magistral, te 
debe haber llevado media hora escribirla, te lo agradezco :)Como no sé 
qué manuales técnicos hay ahora mismo para el MSX, ¿empezaría bien con 
el MSX2 technical book ese?


Pero el screen 2 es aún más complicado que eso. Resulta que no tiene 
una tabla de 
patrones, si no 3, y no tiene una tabla de colores sino 3, y 
evidentemente no tiene una 
tabla de nombres, sino 3. Por qué? Porque digamoos que la pantalla 
está dividida en 3. 
Así, cada zona de la pantalla tiene una tabla de nombres, con lo 
cual, si en una 
posición cualquiera del primer tercio de la pantalla encuentras el 
valor 100, a la hora de 
dibujarlo, el VDP irá a buscar la información en la primera tabla de 
patrones, mientras 
que si ese valor 100 está en la segunda tabla de nombres (segundo 
tercio de pantalla), 
irá a buscarlo en la segunda tabla de patrones. Esto permite que 
podamos tener 
definidos simultaneamente 256x3 = 768 carácteres!!! Aunque claro, no 
podremos 
moistrarlos todos a la vez. Es más, si quieres mostrar un mismo 
carácter en la parte de 
arriba y en la de abajo, deberás definirlo tanto en el patrón 0 como 
en el 2 (primero y 
tercero).


Si no es mucho preguntar, esas tres partes en que se divide la 
pantalla, ¿son exactamente bloques de 64 píxeles de alto? Es para 
calcular los espacios que necesito, en caso de que al final obtase por 
hacerlo en screen 2.


De todas maneras, yo te aconsejo que definas unos patrones 
correspondientes a las 
letras de abecedario, números y signos de puntuación en el tercer 
patrón, puesto que 
ahí será donde irá el texto. Además puedes definir otros patrones en 
la misma tabla de 
patrones que definan marcos de texto, para hacer más bonita la 
presentación. Los otros 
2 tercios los puedes usar para definir patrones con información 
gráfica.

Perfecto :)
 
cuando programaba en pascal. Si es posible hacerlo, ¿existe algún 
comando en basic del msx2 para definir un ventana de texto, de 
manera 
que pueda escribir con scroll incluído en la mitad inferior de la 
pantalla? Como en las aventuras conversacionales tradicionales, ya 
sabéis a qué me refiero.

No, no exite ninguno, pero puedes hacerlo tú mismo ;).


Supongo que en ese caso hará falta una rutina en ensamblador para 
mover todo un bloque de texto una posición arriba y hacer una línea en 
blando debajo.

 
Otra solución es hacerla en SCREEN 2, y así que sea compatible con 
los 
MSX de la primera generación. En este caso, al pasar gráficos con 
el 
comversor BMP2MSX, creo las imágenes .sc2 pero no sé cómo 
cargarlas en 
la VRAM, supongo que sera un bload, ¿cierto?

Ten cuidado que cuando cargues el bitmap transformado, esté 
realizado de tal forma 
que te conserve siempre los colores de las letras del texto (blanco 
y negro 
principalmente), y que el gráfico ocupe solamente los 2 primeros 
tercios. Además, te 
aconsejaría que primero cargaras el gráfico, y después definieras 
los patrones de las 
letras, números y signos de puntuación en el tercer patrón, por si 
al cargar la imagen 
los patrones de la tabla de patrones tercera se sobreescribieran.


Esto me parece que está relacionado con el problema que le acabo de 
comentar a José Luis. 

Un saludete a tí también y muchas gracias :)

Juanma


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