"BASIC ROM" type of ROM

By cax

Prophet (3722)

cax's picture

30-09-2003, 17:24

I just discovered that there exists some ROM format I am not familiar with - a so-called BASIC ROM (no, I am not confused with the rom containing MSX-BASIC for use in emulators).
If I understand correctly, it can't be bigger than 16K and maps to 8000-BFFF.
This format is intended for running BASIC programs from cartridges.

On the ExecROM page
www.alsoftware.com.br/adrianpage/index.php?page=msxexec
I saw that this type is supported by ExecROM, and I even started to read the ExecROM source in order to understand the format, but it seems too complicated for me.

1) Can someone point me to some documentation about BASIC ROM format ?
2) How can I convert BASIC program to this type of ROM ?
3) Are there any known ROMs in this format I can look at ?

Login or register to post comments

By anonymous

incognito ergo sum (109)

anonymous's picture

30-09-2003, 18:59

By default, BASIC programs start at &H8000. The first thing you have to do is to set the start address at a higher point in order to make room for the ROM header.

For example, try

POKE &HF676,&H11
POKE &HF677,&H80
POKE &H8010,0
LOAD"MYPROG.BAS
BSAVE "MYPROG.ROM",&H8000,&HBFFF

Now you have to edit the ROM file (with a HEX editor) to set the correct header. First at all, remove the seven 'bsave' bytes from the header (FE 00 80 FF BF 00 80). After that it should be something like this:

00000000: 41 42 00 00 00 00 00 00 10 80 00 00 00 00 00 00
00000010: 00 basic code starts here...............................

After saving changes you should have the ROM you're looking for.

Anyways, I typed this as I remember so I could be wrong.
Take a look at:

http://www.konamiman.com/msx/th-5b.txt

and search 'POKE &HF676,&H21' string.