public void WriteToSegmentSelectionRegister(Z80Page page, byte segmentNumber) { segmentNumber &= segmentMask; if (segmentsInEachPage[page] == segmentNumber) { return; } addressOffsetsPerEachPage[page.AddressMask] = segmentNumber * segmentSize; segmentsInEachPage[page] = segmentNumber; BankValueChanged?.Invoke(this, new BankValueChangedEventArgs(page, segmentNumber)); }
private void SetBankValueCore(byte value) { if (value == currentBlock) { return; } contentsOffset = value * bankSize; currentBlock = value; BankValueChanged?.Invoke(this, new BankValueChangedEventArgs(0, value)); }
private void SetBankValueCore(int bankNumber, byte value) { var oldValue = blockNumbersInEachBank[bankNumber]; if (oldValue == value) { return; } var bankStartAddress = bankStartAddresses[bankNumber]; var contentsOffset = value * bankSize; contentsOffsetsPerEachBank[bankStartAddress] = contentsOffset; blockNumbersInEachBank[bankNumber] = value; BankValueChanged?.Invoke(this, new BankValueChangedEventArgs(bankNumber, value)); }