Table of Contents

CoCo 3 Boot Patch

OS-9 Level I v1.0 and v1.1 will crash / hang if you boot a CoCo 3 with them.

The OS9 BOOT screen appears, and then you're stuck until power down.

This happens when the RELocate code overwrites the CoCo 3's extra IRQ vectors stored by Super Extended BASIC in $FE00 - $FEFF

Since OS-9 is Position Independent Code (PIC), all we need to do is patch the RELocate code to move the loaded kernel modules down one page from $F000 to $EF00 to avoid overwriting the CoCo 3 vectors.

This is how OS-9 Level I v2.0 avoids locking up on boot on a CoCo3.

HOW-TO

Open the OS9L1V1M.DSK with a hex editor

Go to offset 0x26400 which is the first sector of the track 34 boot track.

Patch 1: Patch the REL relocation destination address from $F000 to $EF00

Look for F0 00 around offset 0x26441

Change the F0 to EF

Patch 2: Patch REL's jump into the relocated OS9 kernel after it's moved to $EF00.

Look for F0 56 around offset 0x26455

Change the F0 to EF

Patch 3: Patch the COLD10 routine's CMPX $F000 to $EF00

Look for F0 00 around offset 0x2651A

Change the F0 to EF

Save and boot!

O9L1PAT.BAS

Alternatively you could put Robert Gault's O9L1PAT.BAS on a floppy and use a dual floppy system to let it run and make the changes above to the OS9L1V1M.DSK system master disk loaded as a second floppy.

See http://aaronwolfe.com/robert.gault/Coco/Downloads/O9L1PAT.BAS

RTS

Return OS-9 or Top