[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