コード例 #1
0
        public void NoiseCEnableWorks(int value, bool result)
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);

            // --- Act
            psg.Register7 = (byte)value;

            // --- Assert
            psg.NoiseCEnabled.ShouldBe(result);
        }
コード例 #2
0
        public void Register11And12Works(int reg11, int reg12, int result)
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);

            // --- Act
            psg.Register11 = (byte)reg11;
            psg.Register12 = (byte)reg12;

            // --- Assert
            psg.EnvelopePeriod.ShouldBe((ushort)result);
        }
コード例 #3
0
        public void Register7Works(int value, int result)
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);

            // --- Act
            psg.Register7 = (byte)value;

            // --- Assert
            psg.Register7.ShouldBe((byte)result);
            psg.MixerModified.ShouldBe(47);
        }
コード例 #4
0
        public void Register10Works(int value, int result, bool envelope)
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);

            // --- Act
            psg.Register10 = (byte)value;

            // --- Assert
            psg.Register10.ShouldBe((byte)result);
            psg.AmplitudeCModified.ShouldBe(47);
            psg.UseEnvelopeC.ShouldBe(envelope);
        }
コード例 #5
0
        public void ChannelALastModificationWithMsbFirstWorks(int orig, int value, int result, int channel)
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            // --- Act
            hostVm.SetCurrentCpuTact(47);
            psg.Register1 = (byte)(orig >> 8);
            psg.Register1 = (byte)value;
            hostVm.SetCurrentCpuTact(48);
            psg.Register0 = (byte)orig;

            // --- Assert
            psg.Register1.ShouldBe((byte)result);
            psg.ChannelA.ShouldBe((ushort)channel);
            psg.ChannelAModified.ShouldBe(48);
        }
コード例 #6
0
        public void ChannelCCoarseTuneWorks(int orig, int value, int result, int channel)
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);

            // --- Act
            psg.Register4 = (byte)orig;
            psg.Register5 = (byte)(orig >> 8);
            psg.Register5 = (byte)value;

            // --- Assert
            psg.Register5.ShouldBe((byte)result);
            psg.ChannelC.ShouldBe((ushort)channel);
            psg.ChannelCModified.ShouldBe(47);
        }
コード例 #7
0
        public void Register13Works(int value, int result, bool cont, bool attack, bool alternate, bool hold)
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);

            // --- Act
            psg.Register13 = (byte)value;

            // --- Assert
            psg.Register13.ShouldBe((byte)result);
            psg.EnvelopeShapeModified.ShouldBe(47);
            psg.HoldFlag.ShouldBe(hold);
            psg.AlternateFlag.ShouldBe(alternate);
            psg.AttackFlag.ShouldBe(attack);
            psg.ContinueFlag.ShouldBe(cont);
        }
コード例 #8
0
        public void RegisterIndexerSetsValueProperly()
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);

            // --- Act
            psg[0]  = 0;
            psg[1]  = 1;
            psg[2]  = 2;
            psg[3]  = 3;
            psg[4]  = 4;
            psg[5]  = 5;
            psg[6]  = 6;
            psg[7]  = 7;
            psg[8]  = 8;
            psg[9]  = 9;
            psg[10] = 10;
            psg[11] = 11;
            psg[12] = 12;
            psg[13] = 13;
            psg[14] = 14;

            // --- Assert
            psg.Register0.ShouldBe((byte)0);
            psg.Register1.ShouldBe((byte)1);
            psg.Register2.ShouldBe((byte)2);
            psg.Register3.ShouldBe((byte)3);
            psg.Register4.ShouldBe((byte)4);
            psg.Register5.ShouldBe((byte)5);
            psg.Register6.ShouldBe((byte)6);
            psg.Register7.ShouldBe((byte)7);
            psg.Register8.ShouldBe((byte)8);
            psg.Register9.ShouldBe((byte)9);
            psg.Register10.ShouldBe((byte)10);
            psg.Register11.ShouldBe((byte)11);
            psg.Register12.ShouldBe((byte)12);
            psg.Register13.ShouldBe((byte)13);
            psg.Register14.ShouldBe((byte)14);
        }
コード例 #9
0
        public void RegisterIndexerGetsValueProperly()
        {
            // --- Arrange
            var hostVm = new SpectrumSoundTestMachine();
            var psg    = new PsgState(hostVm);

            hostVm.SetCurrentCpuTact(47);
            psg.Register0  = 0;
            psg.Register1  = 1;
            psg.Register2  = 2;
            psg.Register3  = 3;
            psg.Register4  = 4;
            psg.Register5  = 5;
            psg.Register6  = 6;
            psg.Register7  = 7;
            psg.Register8  = 8;
            psg.Register9  = 9;
            psg.Register10 = 10;
            psg.Register11 = 11;
            psg.Register12 = 12;
            psg.Register13 = 13;
            psg.Register14 = 14;

            // --- Act/Assert
            psg[0].ShouldBe((byte)0);
            psg[1].ShouldBe((byte)1);
            psg[2].ShouldBe((byte)2);
            psg[3].ShouldBe((byte)3);
            psg[4].ShouldBe((byte)4);
            psg[5].ShouldBe((byte)5);
            psg[6].ShouldBe((byte)6);
            psg[7].ShouldBe((byte)7);
            psg[8].ShouldBe((byte)8);
            psg[9].ShouldBe((byte)9);
            psg[10].ShouldBe((byte)10);
            psg[11].ShouldBe((byte)11);
            psg[12].ShouldBe((byte)12);
            psg[13].ShouldBe((byte)13);
            psg[14].ShouldBe((byte)14);
        }