/// <summary> /// Commits modified sector data back to the emulated disk. /// Intended to be called at the end of the sector / beginning of the next. /// </summary> private void CommitSector() { if (_pack == null) { return; } DiskSector sector = _pack.GetSector(_cylinder, _head, _sector); // Header (2 words data, 1 word cksum) for (int i = HeaderOffset + 1, j = 1; i < HeaderOffset + 3; i++, j--) { // actual data to be loaded from disk / cksum calculated sector.WriteHeader(j, _sectorData[i].Data); } // Label (8 words data, 1 word cksum) for (int i = LabelOffset + 1, j = 7; i < LabelOffset + 9; i++, j--) { // actual data to be loaded from disk / cksum calculated sector.WriteLabel(j, _sectorData[i].Data); } // sector data (256 words data, 1 word cksum) for (int i = DataOffset + 1, j = 255; i < DataOffset + 257; i++, j--) { // actual data to be loaded from disk / cksum calculated sector.WriteData(j, _sectorData[i].Data); } // // Commit it back to the pack. // _pack.CommitSector(sector); }