public void Clock()
 {
     if (!_addressMode.IsComplete)
     {
         _addressMode.Clock();
         return;
     }
     if (!_instructionTypeReader.IsComplete)
     {
         _instructionTypeReader.Clock();
         if (_instructionTypeReader.IsComplete)
         {
             _underlyingInstruction = GetInstructionFromByte(_instructionTypeReader.AddressedValue);
         }
         return;
     }
     if (!_underlyingInstruction.IsComplete)
     {
         _underlyingInstruction.Clock();
     }
 }