[Coco] [COCO] HDBDOS yet another real FDC patch idea

David Ladd davidwladd at gmail.com
Fri Jan 23 17:26:23 EST 2015


​Now my idea for the next HDBDOS real floppy drive patch is related to the
DSKINI command again.  This one I am wanting to add a force track 0 reset
to the floppy drive that was just DSKINI'ed.  This helps to prevent
problems where people do the following examples might get into trouble.
Plus this is using the two double sided floppy drives with DRIVE #2 is back
side of DRIVE 0 and DRIVE #3 is back side of DRIVE 1

Example 1:
DSKINI 0
DIR 2

Example 2:
DSKINI 1
DIR 3

Now what I have found there are times if you do a DSKINI on one side of the
floppy disk and then do a DIR the heads will attempt to move forward and
smack.  This could lead to potential misalignment of the floppy drive
heads.  So I was sitting here thinking and came up with this idea.

So the code that follows is where I want to patch the current verify
routine.

This code is found starting at line# 3324
               jmp       >BEEP
changing it to
               jmp       >FDPAT1

The next part of the code that is needed to force the reset to track 0 is
as follows:
FDPAT1         CLR       DCOPC   RESTORE HEAD TO TRACK ZERO DSKCON OP CODE
               CLR       DCTRK   SET DSKCON TRACK VARIABLE TO TRACK ZERO
               JSR       LD6F2  RESTORE HEAD TO TRACK ZERO
               JMP       BEEP

The problem I am having is finding a workable place to stick it as the last
bit of free space in the 8K ROM is running out.  This added piece of code I
wanted to add right right before ZZLAST which is basically at the end of
HDBDOS.ASM file.  So far the build process stops at HDBDOSDW4CC3.ROM.

So the next thing I am throwing out there is to see what people think of
the patch idea and also what ideas could be done to fit it into HDBDOS
without moving any routines addresses to protect compatibility with those
programs that like to call ROM routines.

​


More information about the Coco mailing list