public Gpu(IDisplay display, InterruptManager interruptManager, Dma dma, Ram oamRam, bool gbc) { _r = new MemoryRegisters(GpuRegister.Values().ToArray()); _lcdc = new Lcdc(); _interruptManager = interruptManager; _gbc = gbc; _videoRam0 = new Ram(0x8000, 0x2000); _videoRam1 = gbc ? new Ram(0x8000, 0x2000) : null; _oamRam = oamRam; _dma = dma; _bgPalette = new ColorPalette(0xff68); _oamPalette = new ColorPalette(0xff6a); _oamPalette.FillWithFf(); _oamSearchPhase = new OamSearch(oamRam, _lcdc, _r); _pixelTransferPhase = new PixelTransfer(_videoRam0, _videoRam1, oamRam, display, _lcdc, _r, gbc, _bgPalette, _oamPalette); _hBlankPhase = new HBlankPhase(); _vBlankPhase = new VBlankPhase(); _mode = Mode.OamSearch; _phase = _oamSearchPhase.Start(); _display = display; }
public DmcSoundChannel(Apu apu, Dma dma, Memory memory) { this.apu = apu; this.dma = dma; this.memory = memory; this.dma.DmcDma += this.OnDmcDma; }
public Gameboy( GameboyOptions options, Cartridge rom, IDisplay display, IController controller, ISoundOutput soundOutput, SerialEndpoint serialEndpoint) { _display = display; _gbc = rom.Gbc; SpeedMode = new SpeedMode(); var interruptManager = new InterruptManager(_gbc); _timer = new Timer(interruptManager, SpeedMode); Mmu = new Mmu(); var oamRam = new Ram(0xfe00, 0x00a0); _dma = new Dma(Mmu, oamRam, SpeedMode); _gpu = new Gpu(display, interruptManager, _dma, oamRam, _gbc); _hdma = new Hdma(Mmu); _sound = new Sound(soundOutput, _gbc); _serialPort = new SerialPort(interruptManager, serialEndpoint, SpeedMode); Mmu.AddAddressSpace(rom); Mmu.AddAddressSpace(_gpu); Mmu.AddAddressSpace(new Joypad(interruptManager, controller)); Mmu.AddAddressSpace(interruptManager); Mmu.AddAddressSpace(_serialPort); Mmu.AddAddressSpace(_timer); Mmu.AddAddressSpace(_dma); Mmu.AddAddressSpace(_sound); Mmu.AddAddressSpace(new Ram(0xc000, 0x1000)); if (_gbc) { Mmu.AddAddressSpace(SpeedMode); Mmu.AddAddressSpace(_hdma); Mmu.AddAddressSpace(new GbcRam()); Mmu.AddAddressSpace(new UndocumentedGbcRegisters()); } else { Mmu.AddAddressSpace(new Ram(0xd000, 0x1000)); } Mmu.AddAddressSpace(new Ram(0xff80, 0x7f)); Mmu.AddAddressSpace(new ShadowAddressSpace(Mmu, 0xe000, 0xc000, 0x1e00)); Cpu = new Cpu(Mmu, interruptManager, _gpu, display, SpeedMode); interruptManager.DisableInterrupts(false); if (!options.UseBootstrap) { InitiliseRegisters(); } }
public void Reset(bool inBios = false, Cartridge cartridge = null) { CyclesCount = 0; Cpu.Reset(inBios, cartridge); Mmu.Reset(); Ppu.Reset(); Apu.Reset(); Input.Reset(); Timer.Reset(); Dma.Reset(); LinkCable.Reset(); IsAlive = true; frameQueue = new FrameQueue(); }
public void ExecuteFrame() { while (CyclesCount < CPU_CYCLES) { int cycles = Cpu.ExecuteCycle(); int divisorAmount = Cpu.DoubleSpeed ? 2 : 1; int dmaCycles = Dma.CopyData(); cycles *= 4; Timer.Tick(cycles + dmaCycles); Input.Tick(); Ppu.Tick((cycles + dmaCycles) / divisorAmount); Apu.Tick((cycles + dmaCycles) / divisorAmount); CyclesCount += cycles / divisorAmount; } CyclesCount -= CPU_CYCLES; }
public void Transfer(Dma.Direction Direction, int Size, DmaEnum Address, ref uint Value) { }
public void ProcessData() { try { string[] _logfilePath = ConfigurationManager.AppSettings["timeToLoadData"].Split(','); string[] _updateDMADataNow = ConfigurationManager.AppSettings["UpdateDMADataNow"].Split(','); string[] _loadDataNow = ConfigurationManager.AppSettings["LoadDataNow"].Split(','); string _masterDatapathBasic = ConfigurationManager.AppSettings["MasterDatapathBasic"]; string _masterDMAExcelSource = ConfigurationManager.AppSettings["MasterDMAExcelSource"]; string _masterDatapathDMA = ConfigurationManager.AppSettings["MasterDatapathDMA"]; string _defaultDate = "0"; TimeSpan now = DateTime.Now.TimeOfDay; foreach (string item in _logfilePath) { int h = Convert.ToInt32(item.Split('.')[0]); int s = Convert.ToInt32(item.Split('.')[1]); TimeSpan start = new TimeSpan(h, s, 0); TimeSpan end = new TimeSpan(h, s + 3, 0); if ((now > start) && (now < end)) { //Service processing the request in Market time IntermediateClass obj = new IntermediateClass(); MessageContext.MessageLog(obj.ProcessRequest("BasicData,OI")); MessageContext.MessageLog(obj.LoadMCData()); } if (_loadDataNow.ToString().ToUpper() == "TRUE") { //Service processing the request in Market time IntermediateClass obj = new IntermediateClass(); MessageContext.MessageLog(obj.ProcessRequest("BasicData,OI-Using Loaded now option.")); MessageContext.MessageLog(obj.LoadMCData()); } } //post market time service updating the Master data excel files TimeSpan startPost = new TimeSpan(17, 0, 0); TimeSpan endPost = new TimeSpan(20, 0, 0); if ((now > startPost) && (now < endPost)) { IntermediateClass obj = new IntermediateClass(); string message = obj.RefreshData(_defaultDate); if (message.Contains("Updated sucussfully")) { try { BasicDataLogic objList = new BasicDataLogic(); Dma objDma = new Dma(); OBJtoXML xmltoObj = new OBJtoXML(); List <CompanyDetails> basicData = objList.UpdateDMAMasterSource(_masterDatapathBasic, _defaultDate); List <KeyValue> objLtpPrices = GeneratePrices(basicData); List <Rank> dMADataRank = objDma.GetDmaData(_masterDMAExcelSource, objLtpPrices, ""); message = message + " DMA,"; xmltoObj.CreateXML(dMADataRank, _masterDatapathDMA, "DMAData", false); } catch (Exception ex) { ErrorContext.ErrorLog("Error in PostRefresh DMA Data" + ex.Message); } } MessageContext.MessageLog(message); } if (_updateDMADataNow.ToString().ToUpper() == "TRUE") { IntermediateClass obj = new IntermediateClass(); MessageContext.MessageLog(obj.RefreshData(_defaultDate)); MessageContext.MessageLog("DMA data updated using updateDMADataNow option."); } } catch (Exception ex) { EventLog.WriteEntry(ex.Message, EventLogEntryType.Error); ErrorContext.ErrorLog("Problem when Gettign the files " + ex.Message.ToString()); } }
private void Calculate(IndexDefinitionInfo define, TechCycle cycle) { IIndex indexGener = new Dma();// CodeHelper.GetIEvaluator(define.server_algorithm_code); IList <stockcategory> cateList = cateService.GetCategoryList("tencent"); int tatol = 0; foreach (var category in cateList) { IList <stock> stockList = stockService.GetStockByCategory(category.code); foreach (stock stock in stockList) { IList <PriceInfo> list = stockService.GetStockPriceDayInfo(stock); IList <IndexData> listIndexData = GetLastIndexData(stock, define); var result = indexGener.GetState(listIndexData); this.Log().Info(stock.name + "_" + result); using (StockManDBEntities entity = new StockManDBEntities()) { var cate = "1"; var code = cate + "_" + stock.code + "_" + define.code; var objectState = entity.objectstate.FirstOrDefault(p => p.code == code); if (objectState == null) { var temp = new objectstate() { code = code, category_code = cate, object_code = stock.code, index_code = define.code, date = DateTime.Now }; switch (cycle) { case TechCycle.day: temp.day = (int)result; break; case TechCycle.week: temp.week = (int)result; break; default: temp.month = (int)result; break; } entity.objectstate.Add(temp); } else { switch (cycle) { case TechCycle.day: objectState.last_day = objectState.day; objectState.day = (int)result; break; case TechCycle.week: objectState.last_week = objectState.week; objectState.week = (int)result; break; default: objectState.last_month = objectState.month; objectState.month = (int)result; break; } } entity.SaveChanges(); } if (++tatol > 3) { break; } } if (tatol > 3) { break; } } }
public bool Deserialize(BinaryStream stream, AssetManager assetManager) { // Header string magic = stream.ReadString(4); Assert.AreEqual(MAGIC, magic, "Model File header does not match magic value!"); Version = stream.ReadUInt32(); if (!Enum.IsDefined(typeof(ModelType), (int)Version)) { Debug.LogWarning("Could not decode model " + Name + ". Unknown DME version " + Version); return(false); } ModelType = (ModelType)Version; ModelHeaderOffset = stream.ReadUInt32(); // DMA Dma.LoadFromStream(stream, TextureStrings, Materials); // Bounding Box Min = stream.ReadVector3(); Max = stream.ReadVector3(); // Meshes uint meshCount = stream.ReadUInt32(); for (int i = 0; i < meshCount; ++i) { Mesh mesh = Mesh.LoadFromStream(stream, Materials); if (mesh == null) { continue; } Material material = Materials[(int)mesh.MaterialIndex]; foreach (Material.Parameter parameter in material.Parameters) { LookupTextures(mesh, parameter, TextureStrings); if (mesh.BaseDiffuse != null && mesh.BumpMap != null && mesh.SpecMap != null) { break; } } Meshes.Add(mesh); } // Bone Maps uint boneMapCount = stream.ReadUInt32(); for (int i = 0; i < boneMapCount; ++i) { BoneMap boneMap = BoneMap.LoadFromStream(stream); if (boneMap != null) { BoneMaps.Add(boneMap); } } // Bone Map Entries uint boneMapEntryCount = stream.ReadUInt32(); for (int i = 0; i < boneMapEntryCount; ++i) { BoneMapEntry boneMapEntry = BoneMapEntry.LoadFromStream(stream); if (boneMapEntry != null) { BoneMapEntries.Add(boneMapEntry); } } return(true); }
public static Model LoadFromStream(string name, string displayName, Stream stream) { BinaryReader binaryReader = new BinaryReader(stream); //Header byte[] magic = binaryReader.ReadBytes(4); if (magic[0] != 'D' || magic[1] != 'M' || magic[2] != 'O' || magic[3] != 'D') { return(null); } Model model = new Model(); model.Version = binaryReader.ReadUInt32(); if (!Enum.IsDefined(typeof(ModelType), (int)model.Version)) { Debug.LogWarning("Could not decode model " + name + ". Unknown DME version " + model.Version); return(null); } model.ModelType = (ModelType)model.Version; model.Name = name; model.DisplayName = displayName; model.ModelHeaderOffset = binaryReader.ReadUInt32(); //DMA model.TextureStrings = new List <string>(); model.Materials = new List <Material>(); Dma.LoadFromStream(binaryReader.BaseStream, model.TextureStrings, model.Materials); //Bounding Box model.Min = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); model.Max = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); //Meshes uint meshCount = binaryReader.ReadUInt32(); model.Meshes = new List <Mesh>((int)meshCount); for (int i = 0; i < meshCount; ++i) { Mesh mesh = Mesh.LoadFromStream(binaryReader.BaseStream, model.Materials); if (mesh == null) { continue; } Material material = model.Materials[(int)mesh.MaterialIndex]; foreach (Material.Parameter parameter in material.Parameters) { LookupTextures(mesh, parameter, model.TextureStrings); if (mesh.BaseDiffuse != null && mesh.BumpMap != null && mesh.SpecMap != null) { break; } } model.Meshes.Add(mesh); } //Bone Maps uint boneMapCount = binaryReader.ReadUInt32(); model.BoneMaps = new List <BoneMap>((int)boneMapCount); for (int i = 0; i < boneMapCount; ++i) { BoneMap boneMap = BoneMap.LoadFromStream(binaryReader.BaseStream); if (boneMap != null) { model.BoneMaps.Add(boneMap); } } //Bone Map Entries uint boneMapEntryCount = binaryReader.ReadUInt32(); model.BoneMapEntries = new List <BoneMapEntry>((int)boneMapEntryCount); for (int i = 0; i < boneMapEntryCount; ++i) { BoneMapEntry boneMapEntry = BoneMapEntry.LoadFromStream(binaryReader.BaseStream); if (boneMapEntry != null) { model.BoneMapEntries.Add(boneMapEntry); } } return(model); }
public bool InitializeFromStream(string name, string displayName, Stream stream) { using (BinaryReader binaryReader = new BinaryReader(stream)) { //Header byte[] magic = binaryReader.ReadBytes(4); if (magic[0] != 'D' || magic[1] != 'M' || magic[2] != 'O' || magic[3] != 'D') { return(false); } Version = binaryReader.ReadUInt32(); if (!Enum.IsDefined(typeof(ModelType), (int)Version)) { Debug.LogWarning("Could not decode model " + name + ". Unknown DME version " + Version); return(false); } ModelType = (ModelType)Version; Name = name; DisplayName = displayName; ModelHeaderOffset = binaryReader.ReadUInt32(); //DMA Dma.LoadFromStream(binaryReader.BaseStream, TextureStrings, Materials); //Bounding Box Min = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); Max = new Vector3(binaryReader.ReadSingle(), binaryReader.ReadSingle(), binaryReader.ReadSingle()); //Meshes uint meshCount = binaryReader.ReadUInt32(); for (int i = 0; i < meshCount; ++i) { Mesh mesh = Mesh.LoadFromStream(binaryReader.BaseStream, Materials); if (mesh == null) { continue; } Material material = Materials[(int)mesh.MaterialIndex]; foreach (Material.Parameter parameter in material.Parameters) { LookupTextures(mesh, parameter, TextureStrings); if (mesh.BaseDiffuse != null && mesh.BumpMap != null && mesh.SpecMap != null) { break; } } Meshes.Add(mesh); } //Bone Maps uint boneMapCount = binaryReader.ReadUInt32(); for (int i = 0; i < boneMapCount; ++i) { BoneMap boneMap = BoneMap.LoadFromStream(binaryReader.BaseStream); if (boneMap != null) { BoneMaps.Add(boneMap); } } //Bone Map Entries uint boneMapEntryCount = binaryReader.ReadUInt32(); for (int i = 0; i < boneMapEntryCount; ++i) { BoneMapEntry boneMapEntry = BoneMapEntry.LoadFromStream(binaryReader.BaseStream); if (boneMapEntry != null) { BoneMapEntries.Add(boneMapEntry); } } return(true); } }
public string ProcessRequest(string id) { string message = "Sucussfully loaded data for "; string _nseUrlIo = ConfigurationManager.AppSettings["NseUrlIO"].Replace("&", "&"); string _nseUrlBasic = ConfigurationManager.AppSettings["NseUrlBasic"].Replace("&", "&"); string _nifty50 = ConfigurationManager.AppSettings["nifty50"].Replace("&", "&"); string _allFO = ConfigurationManager.AppSettings["AllFO"].Replace("&", "&"); string _indexOnly = ConfigurationManager.AppSettings["IndexOnly"].Replace("&", "&"); string _banknifty = ConfigurationManager.AppSettings["Banknifty"].Replace("&", "&"); string _expiryDate = ConfigurationManager.AppSettings["ExpiryDate"]; string _masterDMAExcelSource = ConfigurationManager.AppSettings["MasterDMAExcelSource"]; string _TodayCSVFile = ConfigurationManager.AppSettings["TodayCSVFile"]; string _masterDatapathOI = ConfigurationManager.AppSettings["MasterDatapathOI"]; string _masterDatapathBasic = ConfigurationManager.AppSettings["MasterDatapathBasic"]; string _masterDatapathDMA = ConfigurationManager.AppSettings["MasterDatapathDMA"]; BulkEntity objData = new BulkEntity(); Dma objDma = new Dma(); OBJtoXML xmltoObj = new OBJtoXML(); try { string _list = ""; if (id.Contains("IndexOnly")) { _list = _indexOnly; message = message + " IndexOnly,"; } else if (id.Contains("Banknifty")) { _list = _banknifty; message = message + " Banknifty,"; } else if (id.Contains("nifty50")) { _list = _nifty50; message = message + " nifty50,"; } else { _list = _allFO; message = message + " All listed items.,"; } foreach (string item in id.Split(',')) { if (item == "BasicData") { objData.BasicData = BasicData.ColletData(_nseUrlBasic, _list); message = message + " BasicData,"; xmltoObj.CreateXML(objData.BasicData, _masterDatapathBasic, "BasicData", false); List <KeyValue> objLtpPrices = GenerateLastPrices(objData.BasicData); objData.DMAData = objDma.GetDmaData(_masterDMAExcelSource, objLtpPrices, ""); message = message + " DMA,"; xmltoObj.CreateXML(objData.DMAData, _masterDatapathDMA, "DMAData", false); } if (item == "DMA") { //DMA moved to Basic data refresh, when you click referesh request for the //basic data then system refresh DMA data also //So, no need to saparate request for the DMA. //Presently signing off the DMA refresh option based on the data.csv file objData.DMAData = objDma.GetDmaData(_masterDMAExcelSource, _TodayCSVFile, ""); message = message + " DMA,"; xmltoObj.CreateXML(objData.DMAData, _masterDatapathDMA, "DMAData", false); } if (item == "OI") { IOData objOI = new IOData(); objData.OIData = objOI.LoadOIData(_nseUrlIo, _expiryDate, _list); message = message + " OI,"; xmltoObj.CreateXML(objData.OIData, _masterDatapathOI, "OIData", false); } } } catch (Exception ex) { message = ex.Message; } return(message); }
public static string LoadBasicData(string id) { string message = "Sucussfully loaded data for "; string _nseUrlIo = ConfigurationManager.AppSettings["NseUrlIO"].Replace("&", "&"); string _nseUrlBasic = ConfigurationManager.AppSettings["NseUrlBasic"].Replace("&", "&"); string _nifty50 = ConfigurationManager.AppSettings["nifty50"].Replace("&", "&"); string _allFO = ConfigurationManager.AppSettings["AllFO"].Replace("&", "&"); string _indexOnly = ConfigurationManager.AppSettings["IndexOnly"].Replace("&", "&"); string _banknifty = ConfigurationManager.AppSettings["Banknifty"].Replace("&", "&"); string _expiryDate = ConfigurationManager.AppSettings["ExpiryDate"]; string _masterDMAExcelSource = ConfigurationManager.AppSettings["MasterDMAExcelSource"]; string _TodayCSVFile = ConfigurationManager.AppSettings["TodayCSVFile"]; string _masterDatapathOI = ConfigurationManager.AppSettings["MasterDatapathOI"]; string _masterDatapathBasic = ConfigurationManager.AppSettings["MasterDatapathBasic"]; string _masterDatapathDMA = ConfigurationManager.AppSettings["MasterDatapathDMA"]; BulkEntity objData = new BulkEntity(); Dma objDma = new Dma(); OBJtoXML xmltoObj = new OBJtoXML(); try { string _list = ""; if (id.Contains("IndexOnly")) { _list = _indexOnly; message = message + " IndexOnly,"; } else if (id.Contains("Banknifty")) { _list = _banknifty; message = message + " Banknifty,"; } else if (id.Contains("nifty50")) { _list = _nifty50; message = message + " nifty50,"; } else { _list = _allFO; message = message + " All listed items.,"; } foreach (string item in id.Split(',')) { if (item == "BasicData") { objData.BasicData = BasicData.ColletData(_nseUrlBasic, _list); message = message + " BasicData,"; xmltoObj.CreateXML(objData.BasicData, _masterDatapathBasic, "basicdata", true); //Need to implement this one when master data been ready //List<KeyValue> objLtpPrices = GenerateLastPrices(objData.BasicData); //objData.DMAData = objDma.GetDmaData(_masterDMAExcelSource, objLtpPrices, ""); //message = message + " DMA,"; //xmltoObj.CreateXML(objData.DMAData, _masterDatapathDMA, "dmadata", true); } if (item == "OI") { IOData objOI = new IOData(); objData.OIData = objOI.LoadOIData(_nseUrlIo, _expiryDate, _list); message = message + " OI,"; xmltoObj.CreateXML(objData.OIData, _masterDatapathOI, "openinterest", true); } } } catch (Exception ex) { message = ex.Message; } return(message); }