[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