public void _2nnn_CALL() { var instructions = new byte[] { 0x21, 0xEF }; var expectedAddress = (ushort)(0x21EF & 0x0FFF); var stackModule = new StackModule(); var chip = CHIP8Factory.GetChip8(stack: stackModule); chip.LoadProgram(instructions); chip.Tick += (c, e) => { chip.Stop(); }; chip.Start(); var programCounter = GetProgramCounter(chip); Assert.Equal(expectedAddress, programCounter); var itemOnStack = stackModule.Pop(); // Stack should have the program counter which has only moved up one past the start at 512 Assert.Equal(514, itemOnStack); }