示例#1
0
        private void FixSectorData(CdromSector sector)
        {
            for (var i = 1; i < 11; i++)
            {
                sector.Data[i] = 0xff;
            }

            var sectorAddress = new CdromSectorAddress((uint)sector.PhysicalAddress);

            sector.Data[0x0c] = sectorAddress.Minute;
            sector.Data[0x0d] = sectorAddress.Second;
            sector.Data[0x0e] = sectorAddress.Frame;
            sector.Data[0x0f] = (byte)CdromSectorMode.Mode1;

            ErrorCorrectionModel.FixSector(sector);
        }
示例#2
0
        public IEnumerable <string> ValidateImage(CdromImage cdromImage)
        {
            var result = new List <string>();

            foreach (CdromSector sector in cdromImage.Sectors)
            {
                if (sector.Data[0x15] == (byte)CdromSectorMode.Mode1)
                {
                    var edc = ErrorCorrectionModel.CalculateEdc(sector.Data, 0, 0x810);
                    if (edc != sector.GetEdc())
                    {
                        result.Add("error");
                    }
                }
            }

            return(result);
        }