At 01:21 PM 7/19/99 +0200, you wrote:

>Standard MSX-DOS bootsectors seem to set stack pointer at #F51F. Is that a
>safe address to keep using Disk BASIC calls within a bootstrapped program?

I think so. I never had problem with it, anyway.

>Do MSX-DOS or Disk BASIC ROM reserve alternate (EXX) or index registers for
>its own use? Can I trash them all?

You can change any register you like. BIOS and similar routines may use
alternate registers, but they don't depend on values being preserved
between calls.

>Talking about this, I'd like to know how to build the image of an
>executable videogame cartridge (headers, etc.).

At #4000, put "AB", that is #41 #42.
At #4002, put a pointer to the routine that should be executed at boot time.
There are more entries, but those only matter for expansion cartridges that
add for example BASIC commands.

>I suppose testing it in an ESE-RAM should be pretty straightforward.

It is.

>Mapper info on that device would also be appreciated.

The mapper is accessed like this:

address space     page register    page selected after reset
 #4000-#5FFF       #6000            0
 #6000-#7FFF       #6800            1
 #8000-#9FFF       #7000            2
 #A000-#BFFF       #7800            3

This is called ASCII8 in fMSX terms.

About write protect, it uses bit7 of the page number (0=protected,
1=writeable). I think this works on a per-page basis.

If I remember correctly, a write to a page register never ends up in RAM.
If that is true, make sure you never write data to #6000-#7FFF and
everything will work out just fine.

Bye,
                Maarten


****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****

Reply via email to