Microworld BASIC Ver 5.29e (MWB) is a larger version that occupies a 16K and 8K ROM.
Its increased size is to accommodate the true 512 x 256 HIRES2 graphics mode that the Alpha Plus and later models support.
Even though it uses 24K of ROM, it only still occupies the standard 16K of Z80 memory space (%8000-%BFFF).
It is accomplished using BIT 5 of the APLUS soft switch (I/O port %1C) to select which of the ROMs occupies memory address (%8000-%9FFF).
The default (resetted) setting for the 8K ROM to be active.
So, what's in the extra ROM?
The normal MWB binaries for %B000-%CFFF slightly modified to accommodate the new HIRES2 mode.
If that's the case then what's in the 2nd half of the 16K ROM?
It's the logic that switches between new HIRES2 and existing graphics mode routines, Alpha Plus cursor movement key combination scanning routines and tonnes empty space that are located at %8000-9FFF.
So, how do you access these new routines and are there any caveats?
Well the most obvious caveat is that the calling code must not reside within the %8000-%9FFF memory space otherwise it'd be switched out (unless some special conditions are met).
Someone has no idea whether the HIRES2 API was ever officially published. With that being the case, HIRES2 functions would be accessed in the usual way through the MWB Jump table.
Its increased size is to accommodate the true 512 x 256 HIRES2 graphics mode that the Alpha Plus and later models support.
Even though it uses 24K of ROM, it only still occupies the standard 16K of Z80 memory space (%8000-%BFFF).
It is accomplished using BIT 5 of the APLUS soft switch (I/O port %1C) to select which of the ROMs occupies memory address (%8000-%9FFF).
The default (resetted) setting for the 8K ROM to be active.
So, what's in the extra ROM?
The normal MWB binaries for %B000-%CFFF slightly modified to accommodate the new HIRES2 mode.
If that's the case then what's in the 2nd half of the 16K ROM?
It's the logic that switches between new HIRES2 and existing graphics mode routines, Alpha Plus cursor movement key combination scanning routines and tonnes empty space that are located at %8000-9FFF.
So, how do you access these new routines and are there any caveats?
Well the most obvious caveat is that the calling code must not reside within the %8000-%9FFF memory space otherwise it'd be switched out (unless some special conditions are met).
Someone has no idea whether the HIRES2 API was ever officially published. With that being the case, HIRES2 functions would be accessed in the usual way through the MWB Jump table.
