From 1d3d696a08635cef4c0ea38c3e85fe2b2254e1d6 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 19 Jul 2017 06:02:15 +0100 Subject: [PATCH] AROS i386 boot floppies start with a PC boot sector before the Amiga BootBlock (that is unused). --- DiscImageChef.Filesystems/AmigaDOS.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/DiscImageChef.Filesystems/AmigaDOS.cs b/DiscImageChef.Filesystems/AmigaDOS.cs index f2797a9e9..f54714be6 100644 --- a/DiscImageChef.Filesystems/AmigaDOS.cs +++ b/DiscImageChef.Filesystems/AmigaDOS.cs @@ -219,6 +219,14 @@ namespace DiscImageChef.Filesystems byte[] sector = imagePlugin.ReadSectors(0 + partitionStart, 2); BootBlock bblk = BigEndianMarshal.ByteArrayToStructureBigEndian(sector); + // AROS boot floppies... + if(sector.Length >= 512 && sector[510] == 0x55 && sector[511] == 0xAA && + (bblk.diskType & FFS_Mask) != FFS_Mask && (bblk.diskType & MuFS_Mask) != MuFS_Mask) + { + sector = imagePlugin.ReadSectors(1 + partitionStart, 2); + bblk = BigEndianMarshal.ByteArrayToStructureBigEndian(sector); + } + // Not FFS or MuFS? if((bblk.diskType & FFS_Mask) != FFS_Mask && (bblk.diskType & MuFS_Mask) != MuFS_Mask)