[Coco] CoCo 3 POKEs to go to "CoCo 1/2" mode?
William Astle
lost at l-w.ca
Sun Jan 29 22:05:16 EST 2023
On 2023-01-29 19:20, RETRO Innovations via Coco wrote:
> On 1/29/2023 8:07 PM, Arthur Flexser via Coco wrote:
>> Perhaps they obtained permission from Microsoft to make specific and
>> very very minor changes to the original ROM code.
> Patching a BASIC command to go to RESET/etc. would not require a call to
> MS.
The "patch in RAM after startup" stuff turns out to be necessary to
maintain compatibility with ROM paks since those would overlay the upper
16K of the internal ROM. So you couldn't use the regular RAM hooks or
burned in ROM patches without having problems.
The burned in ROM changes are mostly related to hardware initialization.
The bits of DLOAD that get overwritten handle the initial RESET button
by forcing internal 32K ROM mode (and forcing ROM mapping), then jumping
to $C000 in the internal ROM.
It also includes a couple of bits related to FIRQ and non-autostarting
ROMs, and some stuff related to CLS and character output presumably for
compatibility with some ROMs.
The actual hardware initialization at A027 changes some, notably to
remove the RAM size check.
There's also a change to unconditionally jump to ECB and a patch to the
cursor blinking routine.
It also patches out the "check if any key is down at all" check in POLCAT.
The rest is related to the copyright message.
By the look of it, they needed a bit more code space for stuff that had
to be below the 16K line (for compatibility with external ROMs, for
instance) than they could get by massaging the initialization sequence
at A02A.
--
William Astle
More information about the Coco
mailing list