Beispiel #1
0
        public void RunMoveCommand()
        {
            var ram = new Mock<IRam>();
            ram.Setup( x => x.Read( 0x0000 ) )
                .Returns( 0x0103 );

            ProcessorE97 processor = new ProcessorE97( ram.Object );

            processor.R0 = 10;
            processor.Step();

            Assert.AreEqual( 10, processor.R0 );
            Assert.AreEqual( processor.R0, processor.R3 );
        }
Beispiel #2
0
        public void RunMultiplyCommand()
        {
            var ram = new Mock<IRam>();
            ram.Setup( x => x.Read( 0x0000 ) )
                .Returns( 0x0501 );

            ProcessorE97 processor = new ProcessorE97( ram.Object );

            processor.R0 = 10;
            processor.R1 = 2;
            processor.Step();

            Assert.AreEqual( 10, processor.R0 );
            Assert.AreEqual( 20, processor.R1 );
        }
Beispiel #3
0
        public void RunDivideCommand()
        {
            var ram = new Mock<IRam>();
            ram.Setup( x => x.Read( 0x0000 ) )
                .Returns( 0x0601 );

            ProcessorE97 processor = new ProcessorE97( ram.Object );

            processor.R0 = 2;
            processor.R1 = 10;
            processor.Step();

            Assert.AreEqual( 2, processor.R0 );
            Assert.AreEqual( 5, processor.R1 );
        }
Beispiel #4
0
        public void RunNopCommand()
        {
            var ram = new Mock<IRam>();
            ram.Setup( x => x.Read( 0x0000 ) )
                .Returns( 0x0000 );

            ProcessorE97 processor = new ProcessorE97( ram.Object );

            processor.Step();
        }
Beispiel #5
0
        public void CreateProcessor()
        {
            ProcessorE97 processor = new ProcessorE97( new Ram() );

            Assert.AreEqual( 0, processor.PC );
        }
Beispiel #6
0
        public void RunStopCommand()
        {
            var ram = new Mock<IRam>();
            ram.Setup( x => x.Read( 0x0000 ) )
                .Returns( 0x0F00 );

            ProcessorE97 processor = new ProcessorE97( ram.Object );

            processor.Step();

            Assert.AreEqual( 0x0000, processor.PC );
        }
Beispiel #7
0
        public void RunSingleWordCommand()
        {
            var ram = new Mock<IRam>();
            ram.Setup( x => x.Read( 0x0000 ) )
                .Returns( 0x0123 );

            ProcessorE97 processor = new ProcessorE97( ram.Object );

            int programCounter = processor.PC;

            processor.Step();

            Assert.AreEqual( 0x0123, processor.PK );
            Assert.AreEqual( programCounter + 2, processor.PC );
        }
Beispiel #8
0
        public void RunProgram()
        {
            var ram = new Mock<IRam>();
            ram.Setup( x => x.Read( 0x0000 ) ).Returns( 0x0103 );
            ram.Setup( x => x.Read( 0x0002 ) ).Returns( 0x0213 );
            ram.Setup( x => x.Read( 0x0004 ) ).Returns( 0x0F00 );

            ProcessorE97 processor = new ProcessorE97( ram.Object );

            processor.R0 = -2;
            processor.R1 = 5;
            processor.Run();

            Assert.AreEqual( -2, processor.R0 );
            Assert.AreEqual( 5, processor.R1 );
            Assert.AreEqual( 3, processor.R3 );
        }