mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Move to file scoped namespaces.
This commit is contained in:
@@ -33,107 +33,105 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Aaru.Decoders.Floppy
|
||||
namespace Aaru.Decoders.Floppy;
|
||||
// Information from:
|
||||
// National Semiconductor PC87332VLJ datasheet
|
||||
// SMsC FDC37C78 datasheet
|
||||
// Intel 82078 datasheet
|
||||
// Intel 82077AA datasheet
|
||||
// Toshiba TC8566AF datasheet
|
||||
// Fujitsu MB8876A datasheet
|
||||
// ECMA-147
|
||||
// ECMA-100
|
||||
|
||||
/// <summary>Methods and structures for IBM System 34 floppy decoding</summary>
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming"), SuppressMessage("ReSharper", "MemberCanBeInternal"),
|
||||
SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
|
||||
public static class System34
|
||||
{
|
||||
// Information from:
|
||||
// National Semiconductor PC87332VLJ datasheet
|
||||
// SMsC FDC37C78 datasheet
|
||||
// Intel 82078 datasheet
|
||||
// Intel 82077AA datasheet
|
||||
// Toshiba TC8566AF datasheet
|
||||
// Fujitsu MB8876A datasheet
|
||||
// ECMA-147
|
||||
// ECMA-100
|
||||
|
||||
/// <summary>Methods and structures for IBM System 34 floppy decoding</summary>
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming"), SuppressMessage("ReSharper", "MemberCanBeInternal"),
|
||||
SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
|
||||
public static class System34
|
||||
/// <summary>Track format for IBM System 34 floppy Used by IBM PC, Apple Macintosh (high-density only), and a lot others</summary>
|
||||
public struct Track
|
||||
{
|
||||
/// <summary>Track format for IBM System 34 floppy Used by IBM PC, Apple Macintosh (high-density only), and a lot others</summary>
|
||||
public struct Track
|
||||
{
|
||||
/// <summary>Start of track</summary>
|
||||
public TrackPreamble trackStart;
|
||||
/// <summary>Track sectors</summary>
|
||||
public Sector[] sectors;
|
||||
/// <summary>Undefined size</summary>
|
||||
public byte[] gap;
|
||||
}
|
||||
/// <summary>Start of track</summary>
|
||||
public TrackPreamble trackStart;
|
||||
/// <summary>Track sectors</summary>
|
||||
public Sector[] sectors;
|
||||
/// <summary>Undefined size</summary>
|
||||
public byte[] gap;
|
||||
}
|
||||
|
||||
/// <summary>Start of IBM PC MFM floppy track Used by IBM PC, Apple Macintosh (high-density only), and a lot others</summary>
|
||||
public struct TrackPreamble
|
||||
{
|
||||
/// <summary>Gap from index pulse, 80 bytes set to 0x4E</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 80)]
|
||||
public byte[] gap;
|
||||
/// <summary>12 bytes set to 0x00</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
|
||||
public byte[] zero;
|
||||
/// <summary>3 bytes set to 0xC2</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public byte[] ctwo;
|
||||
/// <summary>Set to <see cref="IBMIdType.IndexMark" /></summary>
|
||||
public IBMIdType type;
|
||||
/// <summary>Gap until first sector, 50 bytes to 0x4E</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)]
|
||||
public byte[] gap1;
|
||||
}
|
||||
/// <summary>Start of IBM PC MFM floppy track Used by IBM PC, Apple Macintosh (high-density only), and a lot others</summary>
|
||||
public struct TrackPreamble
|
||||
{
|
||||
/// <summary>Gap from index pulse, 80 bytes set to 0x4E</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 80)]
|
||||
public byte[] gap;
|
||||
/// <summary>12 bytes set to 0x00</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
|
||||
public byte[] zero;
|
||||
/// <summary>3 bytes set to 0xC2</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public byte[] ctwo;
|
||||
/// <summary>Set to <see cref="IBMIdType.IndexMark" /></summary>
|
||||
public IBMIdType type;
|
||||
/// <summary>Gap until first sector, 50 bytes to 0x4E</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 50)]
|
||||
public byte[] gap1;
|
||||
}
|
||||
|
||||
/// <summary>Raw demodulated format for IBM System 34 floppies</summary>
|
||||
public struct Sector
|
||||
{
|
||||
/// <summary>Sector address mark</summary>
|
||||
public AddressMark addressMark;
|
||||
/// <summary>22 bytes set to 0x4E, set to 0x22 on Commodore 1581</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 22)]
|
||||
public byte[] innerGap;
|
||||
/// <summary>Sector data block</summary>
|
||||
public DataBlock dataBlock;
|
||||
/// <summary>Variable bytes set to 0x4E, ECMA defines 54</summary>
|
||||
public byte[] outerGap;
|
||||
}
|
||||
/// <summary>Raw demodulated format for IBM System 34 floppies</summary>
|
||||
public struct Sector
|
||||
{
|
||||
/// <summary>Sector address mark</summary>
|
||||
public AddressMark addressMark;
|
||||
/// <summary>22 bytes set to 0x4E, set to 0x22 on Commodore 1581</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 22)]
|
||||
public byte[] innerGap;
|
||||
/// <summary>Sector data block</summary>
|
||||
public DataBlock dataBlock;
|
||||
/// <summary>Variable bytes set to 0x4E, ECMA defines 54</summary>
|
||||
public byte[] outerGap;
|
||||
}
|
||||
|
||||
/// <summary>Sector address mark for IBM System 34 floppies, contains sync word</summary>
|
||||
public struct AddressMark
|
||||
{
|
||||
/// <summary>12 bytes set to 0</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
|
||||
public byte[] zero;
|
||||
/// <summary>3 bytes set to 0xA1</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public byte[] aone;
|
||||
/// <summary>Set to <see cref="IBMIdType.AddressMark" /></summary>
|
||||
public IBMIdType type;
|
||||
/// <summary>Track number</summary>
|
||||
public byte track;
|
||||
/// <summary>Side number</summary>
|
||||
public byte side;
|
||||
/// <summary>Sector number</summary>
|
||||
public byte sector;
|
||||
/// <summary>
|
||||
/// <see cref="IBMSectorSizeCode" />
|
||||
/// </summary>
|
||||
public IBMSectorSizeCode sectorSize;
|
||||
/// <summary>CRC16 from <see cref="aone" /> to end of <see cref="sectorSize" /></summary>
|
||||
public ushort crc;
|
||||
}
|
||||
/// <summary>Sector address mark for IBM System 34 floppies, contains sync word</summary>
|
||||
public struct AddressMark
|
||||
{
|
||||
/// <summary>12 bytes set to 0</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
|
||||
public byte[] zero;
|
||||
/// <summary>3 bytes set to 0xA1</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public byte[] aone;
|
||||
/// <summary>Set to <see cref="IBMIdType.AddressMark" /></summary>
|
||||
public IBMIdType type;
|
||||
/// <summary>Track number</summary>
|
||||
public byte track;
|
||||
/// <summary>Side number</summary>
|
||||
public byte side;
|
||||
/// <summary>Sector number</summary>
|
||||
public byte sector;
|
||||
/// <summary>
|
||||
/// <see cref="IBMSectorSizeCode" />
|
||||
/// </summary>
|
||||
public IBMSectorSizeCode sectorSize;
|
||||
/// <summary>CRC16 from <see cref="aone" /> to end of <see cref="sectorSize" /></summary>
|
||||
public ushort crc;
|
||||
}
|
||||
|
||||
/// <summary>Sector data block for IBM System 34 floppies</summary>
|
||||
public struct DataBlock
|
||||
{
|
||||
/// <summary>12 bytes set to 0</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
|
||||
public byte[] zero;
|
||||
/// <summary>3 bytes set to 0xA1</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public byte[] aone;
|
||||
/// <summary>Set to <see cref="IBMIdType.DataMark" /> or to <see cref="IBMIdType.DeletedDataMark" /></summary>
|
||||
public IBMIdType type;
|
||||
/// <summary>User data</summary>
|
||||
public byte[] data;
|
||||
/// <summary>CRC16 from <see cref="aone" /> to end of <see cref="data" /></summary>
|
||||
public ushort crc;
|
||||
}
|
||||
/// <summary>Sector data block for IBM System 34 floppies</summary>
|
||||
public struct DataBlock
|
||||
{
|
||||
/// <summary>12 bytes set to 0</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
|
||||
public byte[] zero;
|
||||
/// <summary>3 bytes set to 0xA1</summary>
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
|
||||
public byte[] aone;
|
||||
/// <summary>Set to <see cref="IBMIdType.DataMark" /> or to <see cref="IBMIdType.DeletedDataMark" /></summary>
|
||||
public IBMIdType type;
|
||||
/// <summary>User data</summary>
|
||||
public byte[] data;
|
||||
/// <summary>CRC16 from <see cref="aone" /> to end of <see cref="data" /></summary>
|
||||
public ushort crc;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user