コード例 #1
0
ファイル: MappedRam.cs プロジェクト: rholdorf/NestorMSX
        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));
        }
コード例 #2
0
ファイル: MsxDos2Rom.cs プロジェクト: rholdorf/NestorMSX
        private void SetBankValueCore(byte value)
        {
            if (value == currentBlock)
            {
                return;
            }

            contentsOffset = value * bankSize;
            currentBlock   = value;

            BankValueChanged?.Invoke(this, new BankValueChangedEventArgs(0, value));
        }
コード例 #3
0
        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));
        }