Ejemplo n.º 1
0
            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);
            }
Ejemplo n.º 2
0
        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);
        }