Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
        /// <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);
            }
        }