[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