Pues hombre, si ya eres programador, conoces C y te apetece experimentar con ensamblador como dices, ¡lo tienes a huevo!.
La programación del Z80 es muy sencilla, si no tienes ni idea te recomiendo leer alguna página como esta:
Tutorial ensamblador Z80 para Spectrum, que aunque es para otra máquina presenta conceptos muy similares, además te enlaza con tutoriales (en inglés) tan prácticos como
este.
Una vez que creas que entiendes el Z80, ya puedes probar a ensamblar algo, bien ajeno o bien que hayas hecho tu. Ensambladores los tienes a patadas, para no comerte mucho la cabeza puedes empezar con el
asMSX, que ya te viene orientado al MSX y con sencillos ejemplos. La principal ventaja es que con el asMSX puedes generar archivos distribuibles ROM nativos del MSX y que podrás ejecutar con emuladores como el BlueMSX simplemente con un doble click. Para más detalles échale un vistazo rápido a la sintaxis del asMSX.
Yo te diría que empezaras con el clásico "Hola mundo", conseguir que funcione suele dar bastante confianza; así que una vez llegados al propio hardware de la máquina lo mejor es empezar por el VDP, en la Wikipedia tienes una lectura muy interesante
aquí. Los primeros experimentos gráficos te recomiendo que los hagas desde el BASIC, así te romperás menos la cabeza (Hint:VPOKE es tu amigo).
La BIOS (o la API
) para acceder al hardware la tienes detallada en el MSX Red Book, ese y otros documentos los puedes encontrar por ejemplo en esta página :
JJC Software. También es muy recomendable leerse los artículos del
MSX Assembly page, encontrarás información en cantidad.
Y ya sabes, ante cualquier duda pregunta; pero recuerda, antes de preguntar ¡RTFM!