/// <summary> /// Refreshes the specified memory line /// </summary> /// <param name="addr">Address of the memory line</param> public override void RefreshItem(int addr) { var memory = GetMemoryBuffer(); var length = GetMemoryLength(); if (memory == null || length == null) { return; } if (addr < 0 || addr >= length) { return; } Z80Registers regs = null; if (MachineState != VmState.None && MachineState != VmState.Stopped) { regs = SpectrumVm.Cpu.Registers; } var memLine = new MemoryLineViewModel(regs, addr); memLine.BindTo(memory, this); var lineNo = addr >> 4; if (lineNo < MemoryLines.Count) { MemoryLines[lineNo] = memLine; } }
/// <summary> /// Initializes the memory lines with empty values /// </summary> public override void InitViewMode() { var memory = GetMemoryBuffer(); var length = GetMemoryLength(); if (memory == null || length == null) { return; } MemoryLines.Clear(); Z80Registers regs = null; if (MachineState != VmState.None && MachineState != VmState.Stopped) { regs = SpectrumVm.Cpu.Registers; } for (var i = 0; i < length; i += 16) { var line = new MemoryLineViewModel(regs, (ushort)i); line.BindTo(memory, this); MemoryLines.Add(line); } }