====== 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:]]