[hatari-devel] IDE & gemdos HD emulation

Thomas Huth huth at users.berlios.de
Sun Jan 17 23:04:40 CET 2010


On Sun, 17 Jan 2010 01:56:43 +0200
Eero Tamminen <eerot at users.berlios.de> wrote:

> Hi,
> 
> On Saturday 16 January 2010, Thomas H. wrote:
> > > At least although HDDriver claims that driver is installed to the
> > > IDE drive, booting with it doesn't run the IDE driver / you don't
> > > see the whole driver (Tested both with TT & Falcon modes).  I
> > > have no idea whether this is Hatari or TOS issue.
> >
> > Try AHDI 6 or Cecile. With these drivers I was able to boot from IDE
> > drive (at least half a year ago).
> 
> E.g. with Cecile booting from IDE drive works, but not when having
> GEMDOS D & E drives.

I just tried it again, and yes, it works for me. TOS 2.06, IDE
hard disk image with two partitions and AHDI 6 installed, and one
GEMDOS hard disk folder "E". Hatari successfully boots from the IDE
drive and all partitions, C, D and E show up correctly.

> Might be related to ide.c not updating nNumDrives nor nPartitions:

As you can see in gemdos.c, this code is only for old, single-partition
GEMDOS HD mode ("if (!bMultiPartitions) ...."). For multi-GEMDOS-drive
mode, this does not apply.

> Then I also noticed another thing in ide.c while testing Cecile and
> getting a lot of ICE bdrv_read() errors (from too short IDE image?):

Is maybe your IDE hard disk image corrupted?

> ------
> static void ide_sector_read(IDEState *s)
> ...
> 
>                 ret = bdrv_read(s->bs, sector_num, s->io_buffer, n);
>                 ide_transfer_start(s, s->io_buffer, 512 * n, 
> ide_sector_read);
>                 ide_set_irq(s);
>                 ide_set_sector(s, sector_num + n);
>                 s->nsector -= n;
>         }
> }
> -------
> 
> bdrv_read() return value errors (ret < 0) aren't handled?

Looks like bad error handling. Feel free to fix it!

 Thomas



More information about the hatari-devel mailing list