public static FdiSectorHeader Deserialize( Stream stream, int dataOffset) { var buf = new byte[7]; stream.Read(buf, 0, 7); var sh = new FdiSectorHeader(); sh.C = buf[0]; sh.H = buf[1]; sh.R = buf[2]; sh.N = buf[3]; sh.Flags = buf[4]; sh.DataOffset = dataOffset + (buf[5] | (buf[6] << 8)); return(sh); }
private List <FdiSectorHeader> readTrackHeader(Stream f) { var buf = new byte[7]; var sectorHeaderList = new List <FdiSectorHeader>(); f.Read(buf, 0, 4); // data offset in data block var dataOffset = buf[0] | (buf[1] << 8) | (buf[2] << 16) | (buf[3] << 24); f.Read(buf, 0, 2); // reserved f.Read(buf, 0, 1); // sector count var sectorCount = buf[0]; for (var i = 0; i < sectorCount; i++) { var sh = FdiSectorHeader.Deserialize(f, dataOffset); sectorHeaderList.Add(sh); } return(sectorHeaderList); }