On 7/21/2012 4:08 AM, Patrick Schaefer wrote:
If now a disk is archived, the DOS interleave is resolved and the sectors are stored in their correct logical order. However, some tools follow the DOS scheme and produce *.dsk/*.do images, other expect the source to be ProDOS interleaved and produce *.po images.
Thanks for all the answers. Now I understand *how* .do and .po work if not *why*.
So it appears that the .do is correct for making a physical OS9 floppy. And it still doesn't work. From the boot sector disassembly it is clear that 52 (consecutive logic) sectors are loaded at boot. The first 4 go to $C00-$FFF. This is 6502 code and it kind of works - at least it prints a message and turns the 6809 on. The rest of the boot image - 12K of presumably 6809 code is loaded to $9000. Makes sense - goes all the way to $BFFF. So far so good.
Due to address translation this block of memory becomes $8000 to $AFFF in 6809 memory space. AT the same time the last 2 bytes of the first 1K chunk loaded at $FFE-$FFF look to the 6809 as if they were at $FFFE so that is the reset vecor. Neat! The problem is that these 2 bytes in the OS9 images I got from all the sources - probably all the same image - have $41 $44 there which causes the 6809 to jump to the uninitialized memory. So either the image is corrupted or some 6502 code was supposed to patch these 2 locations but didn't? I'm out of ideas. Let the future owners of the Mill reincarnation find better OS9 images.
-Alex.