[Coco] Nitros9 & Mess
Nathan Woods
npwoods at cybercom.net
Mon Feb 2 10:57:40 EST 2004
Bill Nobel wrote:
> I discovered this. I overlayed them as a test to see if it did need
> Mame and yes it compiled. I jumped the gun a little by saying it
> wasn't complete sorry.
No problem; it is a somewhat weird situation and you are not the first
person to get confused by that.
> So far I have found a couple of things that could be a possible bug.
> There is no way the JVC drivers can function correctly with a virtual
> disk that is NOT an exact size of the disk (even 256 byte boundry).
> If it is out by 1 byte it will use the very fist byte as a sector size
> and will scramble disks. if it is not of the same value for the
> original drive.
This is an interesting issue that has been somewhat confusing for a good
amount of time. MESS supports the JVC file format as described here:
http://home.netcom.com/~tlindner/JVC.html
The problem is that the JVC file format is somewhat fragmented. At
first the file format was a simply a straight dump of 256 byte sectors.
When Jeff introduced his CoCo 3 emulator, he added support for headers
that could be used to specify the disk geometry. The size of these
headers are determined by examining the file size modulo 256. The
problem is that other tools such as PORT.EXE do not support these
headers and will create disk images with lengths that are not modulo 256.
So the net result is that we have what are effectively different disk
image formats and some tools and emulators will generate disk images
that are incompatable with each other, and it isn't clear how these
weird disk images should be handled. When coding MESS, it was not my
intention at all to fragment the JVC format, but it is unavoidable when
there isn't a clear standard that all tools follow.
> I also discovered on a reset the FIRQ lines aren't reset to null as
> they should be, the code resets IRQ twice. I don't think this is a
> problem but it should be addressed.
Can you elaborate on this? To my knowledge, the call to pia_reset() in
generic_init_machine() should invoke the callbacks that reset both FIRQ
and IRQ.
More information about the Coco
mailing list