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/)
****