[Coco] Re: Bit 5 of DSKREG
Robert Gault
robert.gault at worldnet.att.net
Wed Jan 28 16:32:42 EST 2004
Brad Grier wrote:
> tim lindner wrote:
>
>> Brad Grier <bradgrier at cox.net> wrote:
>>
>>
>>> I also found the source for a Dragon emulator. Like Mess, it checks bit
>>> 5 to determine whether to enable NMI. It has some specific comments and
>>> code for OS9 but I haven't had time to look at it closely.
>>
>>
>>
>> The floppy disk controllers are _very_ different for the CoCo and
>> Dragon. I did not make this decision based on the Dragon hardware.
>>
>
> The dragon emulator had CoCo 2 support. It also looks at bit 5 when
> deciding whether to enable NMI. It appears you're not alone in your
> decision.
>
> I think that's right because I have a problem with the OS9 boot process
> reading the data register and triggering an NMI at a time when OS9 has,
> for some reason, overwritten the NMI jump at 0x0109. (It later restores
> the vector before NMIs are enabled again).
>
>
> Brad
>
>
If your observation about the OS-9 boot process is correct, the problem
may not lie with your emulator but with OS-9. Neither Disk Basic nor
OS-9 should perform any disk I/O before indicating the location of the
NMI routine.
There is one exception to the above which could be a fault with your
emulation. The type IV command Forced Interrupt ($D0) as used by the
Coco to kill all disk I/O, is defined to terminate with no interrupt.
That is because the lower 4 bits of the command code are zero.
If your emulation is generating an NMI when a $D0 command is sent to the
FDC command register, then you need to change your emulation.
More information about the Coco
mailing list