[Coco] HDB-DOS and double sided drives

Arthur Flexser flexser at fiu.edu
Sat Apr 4 23:20:44 EDT 2020


On Sat, Apr 4, 2020 at 11:00 PM Walter Zambotti <zambotti at iinet.net.au>
wrote:

> So what values did you end up patching to the drive select masks in order
> to make it work?
>
> Walter
>
> -----Original Message-----
> From: Coco [mailto:coco-bounces at maltedmedia.com] On Behalf Of David Ladd
> Sent: Friday, 3 April 2020 10:29 PM
> To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
> Subject: Re: [Coco] HDB-DOS and double sided drives
>
> Henry,
>
> Yes you can get access to the back side of the double sided floppy disk
> from HDBDOS if you modify the table that holds the bit patters for the
> drive select lines.
>
>
> https://colorcomputerarchive.com/files/Documents/Books/Unravelled%20Series/disk-basic-unravelled.pdf
> PDF Page # 70
> Table label is:
> LD89D
> The address start is at $D89D
>
> This also works with CoCoSDC-DOS as well. :D I use it often on the SDC :P
> on double sided disk images LOL
>

If it's the same as the Disk Basic numbers, it should be 1,2,$41,$42
(replacing the original 1,2,4,$40 values).
That gives you Drive 2 as the back of Drive 0 and Drive 3 as the back of
Drive 1.

This is not a 100% fix, because RSDOS keeps a 4-byte table of the head
position track number for each drive.
With double-sided drives, this should be changed to a 2-byte table, since
the track numbers for drives 0 and 2, and for 1 and 3, are the same.
Having the wrong track number for the head position can cause FS (file
structure) errors, IO errors and other weirdness, but it is usually an
occasional thing without disastrous results.  Better to patch this aspect
as well.  Don't know the patch offhand, but it is embedded in ADOS-3, just
an instruction or two that changes the index in the track table so that 2
becomes 0 and 3 becomes 1.  ANDing with #1 to grab bit 0 ought to do it.

Art


More information about the Coco mailing list