コード例 #1
0
        public void GetSelectedRomIndexWorksAsExpected()
        {
            // --- Arrange
            var dev = new SpectrumP3MemoryDevice();

            dev.OnAttachedToVm(null);

            // --- Act
            dev.SelectRom(0);
            var index1 = dev.GetSelectedRomIndex();

            dev.SelectRom(1);
            var index2 = dev.GetSelectedRomIndex();

            dev.SelectRom(2);
            var index3 = dev.GetSelectedRomIndex();

            dev.SelectRom(3);
            var index4 = dev.GetSelectedRomIndex();

            // -- Assert
            index1.ShouldBe(0);
            index2.ShouldBe(1);
            index3.ShouldBe(2);
            index4.ShouldBe(3);
        }
コード例 #2
0
        public void ResetWorksAsExpected()
        {
            // --- Arrange
            var dev = new SpectrumP3MemoryDevice();

            dev.OnAttachedToVm(null);

            // --- Act
            dev.Reset();

            // -- Assert
            dev.IsInAllRamMode.ShouldBeFalse();
            dev.GetSelectedRomIndex().ShouldBe(0);
            dev.GetSelectedBankIndex(1).ShouldBe(5);
            dev.GetSelectedBankIndex(2).ShouldBe(2);
            dev.GetSelectedBankIndex(3).ShouldBe(0);

            for (var i = 0; i <= 0x3FFF; i++)
            {
                dev.Read((ushort)i).ShouldBe((byte)0x00);
            }
            for (var i = 0x4000; i <= 0xFFFF; i++)
            {
                dev.Read((ushort)i).ShouldBe((byte)0xFF);
            }

            for (var b = 0; b < 8; b++)
            {
                dev.PageIn(3, b);
                for (var i = 0xC000; i <= 0xFFFF; i++)
                {
                    dev.Read((ushort)i).ShouldBe((byte)0xFF);
                }
            }
        }