HispaMSX

Más sobre programar ROMs

2002-09-06 01:10:48
Hola,

En relación a la pregunta sobre cómo se "hace" un programa en formato ROM, hace falta bien poca cosa:

-Enchufarle un ORG adecuado, recomiendo empezar en 4000h para disponer de la MSX-BIOS, que facilita mucho la labor de programar en ensamblador para MSX.

-Poner una bonita cabecera de 16 bytes:

identificador      2 bytes "AB"
inicio de programa 2 bytes DIRECCION DE INICIO

Y el resto lo podéis dejar en 00h si el programa está en ensamblador y se trata de un juego.

-Ensamblar lo que sea y lograr que el binario final tenga un tamaño "redondo", idealmente 16 o 32 KB. Algunas ROMs de MSX tenían sólo 8 KB (por ejemplo, el Billiards de Konami, el Juno First, el Crazy Train, etc). Bueno, para los más escrupulosos: 16384 o 32768 bytes.

Con eso y un bizcocho podéis hacer las ROMs que os apetezcan.

Yo, sacrílego de mí, utilizo mi propio ensamblador cruzado, el Rz80, que ensambla en PC código para z80 (y no lo hace mal, aunque esté feo que lo diga). Para editar el código fuente empleo el EDIT del DOS y como documentación básica el "MSX red book" (ahora tengo el original de KUMA gracias a eBay) y la documentación sobre z80 de Sean Young, una de las mejores y más completas.

Y esos son todos mis secretos. Si alguien quiere el Rz80 que me lo pida, que es freeware pero no lo he publicado en ningún lado. Por ejemplo, empleando la sintaxis de este ensamblador, el inicio de una ROM sería algo así:

; Ejemplo de ROM de 16 KB en la página 1 para MSX usando Rz80

; Ajuste de tamaño
.SIZE 16

; Seleccionar página 1
.ORG $4000

; Cabecera ROM (8x2 bytes)
DW "AB",inicio,$0000,$0000,$0000,$0000,$0000,$0000

; Inicio del programa
inicio:

 di
 call DISSCR
 call INIGRP
 call ENASCR
...
...

No parece difícil, ¿verdad?

Para los que tengan algo que decirme por no emplear un MSX para programar para MSX, siento decirlo pero no tengo ningún MSX lo suficientemente poderoso como para editar/ensamblar cómodamente. Además (continuando con la herejía) utilizo un emulador para depurar el código fuente antes de hacer las pruebas con el MSX real. El BrMSX es fantástico para eso y emula los MSX de la primera generación de una forma fantástica si sabes configurarlo bien. El NO$MSX tampoco está mal, pero suena bastante a "lata" el pobre PSG emulado.

Un saludo,

Eduardo R.


_________________________________________________________________
Únase al mayor servicio mundial de correo electrónico: http://www.hotmail.com/es


<Anterior en la conversación] Conversación actual [Siguiente en la conversación>
  • Más sobre programar ROMs, Eduardo Robsy Petrus <=