¡Hola! Muchas gracias, Eduardo, me has refrescado la
memoria hasta hacerme retroceder muchos años :) A tí
también, David, por molestarte en buscar entre tanto
manual. Gracias a ambos. Voy a seguir un poquito si me
permitís...
Me parece bien que te animes a programar de nuevo.
De todos modos, empieza
con el Basic, si quieres, pero ve preparándote para
dar el salto al
ensamblador. Los MSX de la primera generación son
máquinas sorprendentes si
se programan a bajo nivel.
Como te comenté, ahora mismo estoy un poco en blanco.
Mi primer contacto con el ASM fué con ese libro de
traducción malísima que seguro recordarás, de Tim
Hartnell, con el que empecé a hacer los ejemplillos y
acabé haciendo yo mismo un pong con decorados y todo.
Pero aquí está el problema: escribir en un papel y
traducir mnemónicos no es muy cómodo, y por eso me
echa para atrás ahora. Claro que tengo la comodidad
del PC, su inmediatez (¡uy, qué digo, emuladores! ¡qué
blasfemia!) :) No, bromas, aparte, ahora es mucho más
cómodo, pero yo lo que quiero es escribir en
assembler, definir etiquetas, compilar, etc. Tengo el
RSC pero no le he metido mano. ¿Es muy lioso? ¿Me
permitirá crear un ejecutable y grabarlo a disco?
Tal cual, tras ejecutar la orden SCREEN 1 y sin
jugar con las órdenes BASE o
VDP, los patrones de caracteres están a partir de la
dirección &h0000, o lo
que es lo mismo en decimal: 0. Acaba en &h07FF.
Perfecto. En 8192 comienza la asignación de colores,
si no creo mal. Mi duda es: hay una dirección por
grupo de ocho caracteres. Supongo que el color de
fondo/tinta se definirá con los bits
superiores/inferiores, ¿me equivoco mucho?
No hay otro remedio que emplear la instrucción
SOUND.
había una
interrupción en la que se definía el intervalo de
interrupción, y luego se
ponía un ON INTERVAL GOSUB xxx.
Bueno, podría empezar con una línea monofónica, para
probar. Si SOUND no retrasa el programa, ¿es que
funciona mediante interrupciones, y no como PLAY? Si
uso un interval por ejemplo de 10, ¿se retardará el
programa? Y una última duda, si durante la ejecución
de una subrutina en ensamblador se me activa el "ON
INTERVAL GOSUB" ¿hay algún problema? ¿he de salvar los
registros en la subrutina antes por si las moscas?
Desactivar pantalla: rutina DISSCR, dirección &h0041
En BASIC: DEFUSR=&h41:A=USR(0)
Activar pantalla: rutina ENASCR, dirección &h0044
En BASIC: DEFUSR=&h44:A=USR(0)
Bueno, no lo especifiqué, pero me refería sobre todo a
screen 1, que es lo que pienso usar. ¿Sirve esto para
todos los modos?
Aun así, si empiezas a hacer PAINTs enormes el
usuario se aburrirá de ver la
pantalla apagada.
¡No, tranquilo! :) No usaré screen 2.
Por cierto, ¿cómo aprovecho pantallas creadas con el
BMPMSX (no recuerdo ahora el nombre) para screen 2? Es
decir, ¿cómo las cargo y vuelco a la VRAM?
En cualquier caso, si te empeñas en trabajar en
BASIC, emplea rutinas en CM
para todo lo que puedas, pero especialmente para las
rutinas de sonido y
para el movimiento de los sprites: la instrucción
PUTSPRITE es
increíblemente lenta, no conseguirás mover más de 4
sprites simultáneamente
a una buena velocidad. También para la detección de
colisiones, que no se te
ocurra emplear el ON SPRITE GOSUB, porque es
leeeeeeentooooooo...
Esto mismo quería preguntar, pero se me olvidó. ¿Es
mejor vpokear directamente que usar los put sprite?
¿Quizá una rutina en ensamblador? Para la idea que
tengo no requiero mucha velocidad, por eso si los
vpoke son un término medio, podría usarlo para
empezar.
Yo también
soy MSXiano de la primera
generación, el MSX2 me gusta pero no tiene -para mí-
el mismo carisma que el
MSX, con sus cintas, con las dos columnas que se
pierden a la izquierda de
la pantalla, etc.
¡Joder, qué tiempos! No pude disfrutar del 2, ya me
había gastado la pasta años antes. Yo me iba a comprar
un C64, y el mismo día 24 de diciembre pasé con mi
padre junto a una tienda y ví el primer HB-75 que pasó
por mi ciudad, entré y el resto es historia... por
unas horas, podría haber acabado con un Commodore y
mira tú por dónde... ¿pero qué rollo es este??? Perdón
por contar mi vida, jajajajaja :)
Gracias por soportar la tortura y un saludo.
_______________________________________________________________
Do You Yahoo!?
Yahoo! Messenger
Comunicación instantánea gratis con tu gente.
http://messenger.yahoo.es