public void FormatTrdos() { // format empty disk... for (var cyl = 0; cyl < _cylynderList.Count; cyl++) { var cylinder = _cylynderList[cyl]; for (var side = 0; side < cylinder.Length; side++) { var sectorList = new List <Sector>(); for (var sec = 0; sec < 16; sec++) // 16 sectors per track { var sector = new SimpleSector( cyl, 0, il[sec], 1, new byte[256]); for (var i = 0; i < 256; i++) { sector.Data[i] = 0x00; } sector.SetAdCrc(true); sector.SetDataCrc(true); sectorList.Add(sector); } cylinder[side].AssignSectors(sectorList); } } // TRDOS level format: 2544 secs (80 cyls, 2 sides) var trsec = new byte[256]; for (int i = 0; i < trsec.Length; i++) { trsec[i] = 0x00; } trsec[0xE2] = 0x01; trsec[0xE3] = 0x16; trsec[0xE5] = 0xF0; trsec[0xE6] = 0x09; trsec[0xE7] = 0x10; for (int i = 0xEA; i <= 0xF2; i++) { trsec[i] = 0x20; } trsec[0xF5] = 0x5A; // Z trsec[0xF6] = 0x58; // X trsec[0xF7] = 0x4D; // M trsec[0xF8] = 0x41; // A trsec[0xF9] = 0x4B; // K trsec[0xFA] = 0x32; // 2 trsec[0xFB] = 0x20; trsec[0xFC] = 0x20; WriteLogicalSector(0, 0, 9, trsec); _modifyFlag = ModifyFlag.None; }
public void SetPhysics(int cylynderCount, int sideCount) { _cylynderList.Clear(); _sideCount = sideCount; for (var i = 0; i < cylynderCount; i++) { var cyl = new Track[_sideCount]; for (var j = 0; j < cyl.Length; j++) { cyl[j] = new Track(_rotateTime); byte[] rawImage = new byte[6400]; byte[] rawClock = new byte[rawImage.Length / 8 + (((rawImage.Length & 7) != 0) ? 1 : 0)]; cyl[j].AssignImage(rawImage, rawClock); } _cylynderList.Add(cyl); } _modifyFlag = ModifyFlag.None; }
public bool Set(Guid submitorId, XmlNode alertsNode) { Logger.Info(string.Format("PriceAlertManager.Set {0}", alertsNode.OuterXml)); if (this.SaveAlerts(alertsNode.OuterXml, submitorId)) { lock (this.lockObj) { foreach (XmlNode alertNode in alertsNode.ChildNodes) { if (string.Compare(alertNode.Name, "PriceAlert", true) == 0) { ModifyFlag flag = (ModifyFlag)(int.Parse(alertNode.Attributes["ModifyFlag"].Value)); if (flag == ModifyFlag.Add) { Alert alert = Alert.Create(submitorId, alertNode, quotationSetterProvider); Logger.Info(string.Format("PriceAlertManager.Set add alert {0}", alert)); this.Add(alert); } else if (flag == ModifyFlag.Update) { Guid alertId = Guid.Parse(alertNode.Attributes["ID"].Value); Alert alert = null; if (this.alerts.TryGetValue(alertId, out alert)) { Guid oldInstrumentId = alert.InstrumentId; Logger.Info(string.Format("PriceAlertManager.Set update alert {0}", alert)); alert.Update(alertNode, quotationSetterProvider); if (oldInstrumentId != alert.InstrumentId) { // remove from old list ICollection <Alert> oldList; if (this.instrument2Alerts.TryGetValue(oldInstrumentId, out oldList)) { oldList.Remove(alert); } // add to new list List <Alert> newList; if (!this.instrument2Alerts.ContainsKey(alert.InstrumentId)) { newList = new List <Alert>(); newList.Add(alert); this.instrument2Alerts.Add(alert.InstrumentId, newList); } else { newList = this.instrument2Alerts[alert.InstrumentId] as List <Alert>; newList.Add(alert); } } } } else if (flag == ModifyFlag.Remove) { Guid alertId = Guid.Parse(alertNode.Attributes["ID"].Value); this.Remove(alertId); Logger.Info(string.Format("PriceAlertManager.Set remove alert {0}", alertId)); } } } } return(true); } else { return(false); } }
public bool IsModified(ModifyFlag pos) { return(modifyflag.Get((int)pos)); }
void SetModified(ModifyFlag pos) { modifyflag.Set((int)pos, true); }
public void SetPhysics(int cylynderCount, int sideCount) { _cylynderList.Clear(); _sideCount = sideCount; for (int i = 0; i < cylynderCount; i++) { Track[] cyl = new Track[_sideCount]; for (int j = 0; j < cyl.Length; j++) { cyl[j] = new Track(_rotateTime); byte[] rawImage = new byte[6400]; byte[] rawClock = new byte[rawImage.Length / 8 + (((rawImage.Length & 7) != 0) ? 1 : 0)]; cyl[j].AssignImage(rawImage, rawClock); } _cylynderList.Add(cyl); } _modifyFlag = ModifyFlag.None; }
public void format_trdos() { // format empty disk... for (int cyl = 0; cyl < _cylynderList.Count; cyl++) { Track[] cylinder = (Track[])_cylynderList[cyl]; for (int side = 0; side < cylinder.Length; side++) { ArrayList sectorList = new ArrayList(); for (int sec = 0; sec < 16; sec++) // 16 sectors per track { SimpleSector sector = new SimpleSector(cyl, 0, il[sec], 1, new byte[256]); for (int i = 0; i < 256; i++) sector.Data[i] = 0x00; sector.SetAdCrc(true); sector.SetDataCrc(true); sectorList.Add(sector); } cylinder[side].AssignSectors(sectorList); } } // TRDOS level format: 2544 secs (80 cyls, 2 sides) byte[] trsec = new byte[256]; for (int i = 0; i < trsec.Length; i++) trsec[i] = 0x00; trsec[0xE2] = 0x01; trsec[0xE3] = 0x16; trsec[0xE5] = 0xF0; trsec[0xE6] = 0x09; trsec[0xE7] = 0x10; for (int i = 0xEA; i <= 0xF2; i++) trsec[i] = 0x20; trsec[0xF5] = 0x5A; // Z trsec[0xF6] = 0x58; // X trsec[0xF7] = 0x4D; // M trsec[0xF8] = 0x41; // A trsec[0xF9] = 0x4B; // K trsec[0xFA] = 0x32; // 2 trsec[0xFB] = 0x20; trsec[0xFC] = 0x20; writeLogicalSector(0, 0, 9, trsec); _modifyFlag = ModifyFlag.None; }