IECHost errors and WinVICE 3.1

It appears that WinVICE 3.1 has good support for DOS errors on disks. In fact, it can write the error information to a D64, while true drive emulation is enabled, even at the time an error is actually created: this is quite remarkable if you ask me! Therefore I shall be using WinVICE 3.1 for testing the process of dumping to D64 while including the error information with a disk image.

For testing purposes I had created DOS error 23 on tracks 1 and 3 in VICE:

D64 Editor: showing the error information added to a D64 by VICE by Luigi Di Fraia

D64 Editor: showing the error information added to a D64 by VICE

The thing I was able to confirm is that the error information consists of FDC codes and not IP codes!

Here’s the mapping according to D64 Editor:

D64 Editor: mapping of FDC codes to IP codes by Luigi Di Fraia

D64 Editor: mapping of FDC codes to IP codes

As the above screenshot shows, errors can only be detected by performing a R/W/SEEK operation. What this means for me is that to produce a D64 with error information I would have to go for a slow disk dumping process, querying each sector in turn and consulting the error channel after each read attempt.
Upon detecting certain errors when invoking the standard block read command, U1, a head bump would occur as well, which not only slows the process down dramatically, but also puts some stress on the drive’s mechanics!

I’d have to write some custom drive code to make the process faster and less stressful.
If you know of an existing implementation that meets such requirements, just let me know!

This entry was posted in Retrocomputing, Technical and tagged , , , , , , , , . Bookmark the permalink.

3 Responses to IECHost errors and WinVICE 3.1

  1. silverdrs says:

    VICE has some good support for most things. Yet – if I may suggest – I wouldn’t put life back into the D64+errormap format. It was created as a kind of workaround until a better (G64) format was devised. I would suggest using D64 for what it was, and still is, good at, namely “clean” disk images. For everything beyond it, use G64. This way you can work with virtually all possible, nuanced schemes that can appear on a CBM floppy.

  2. luigidifraia says:

    I don’t disagree with you on the G64 format, but in my opinion the D64+error map format does still have some useful purpose: for research/testing and for supporting early protection schemes that use the DOS errors I’ve been discussing lately. I even received requests in that sense from IECHost users who do mass dumping during demo-scene parties.
    I myself look forward to making G64 files out of disks, including the ones on which I create errors, again for research purposes.

  3. silverdrs says:

    I had similar requests for my “sdpard64” (a speed record holding d64 imager on a real hardware) but my response was always as above. Actually only the very primitive, early protection schemes can be fooled with the d64+errormap format, but OTOH they (and much more) are covered perfectly by the G64. I simply didn’t want to revive the kludgey format when there is one that does all such things better and is more worth pushing for wider adoption. As for the error detection without going through the native, slow and “bumpy” process, you can do the error detection yourself by dumping the raw data and decoding it yourself. For research and digitalised floppy images that should be fine. Without hardware extension it will be limited to sector-referring errors though. When using real, analogue floppies, the head-bumping procedure has its place as the last resort of trying to re-align head to the track.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s