```ruby
#!/usr/bin/env ruby

templateCs = %{namespace Mos6510.Instructions
{
  public class <class> : Instruction
  {
  }
}
}

templateTest = %{using NUnit.Framework;

namespace Mos6510.Tests.Instructions
{
  [TestFixture]
  public class <class>Tests
  {
    [Test]
    public void TheTruth()
    {
      Assert.That(true, Is.True);
    }
  }
}
}

def replaceClass(klass, template)
  template.gsub("<class>", klass)
end

if (ARGV.length != 1)
  puts "Usage: newi.rb instruction\n"
  exit
end

klass = ARGV[0]

codeDirectory = "Mos6510/Instructions"
testDirectory = "Mos6510.Tests/Instructions"

codeFile = "#{codeDirectory}/#{klass}.cs"

if (File.exists?(codeFile))
  puts "Error: The file '#{codeFile}' already exists.\n"
  exit
end

testFile = "#{testDirectory}/#{klass}Tests.cs"

if (File.exists?(testFile))
  puts "Error: The file '#{testFile}' already exists.\n"
  exit
end

File.open(codeFile, 'w') { |file|
  file.write(replaceClass(klass, templateCs))
}

File.open(testFile, 'w') { |file|
  file.write(replaceClass(klass, templateTest))
}
```

Add empty implementations of the abstract methods
user
```ruby
#!/usr/bin/env ruby

templateCs = %{namespace Mos6510.Instructions
{
  public class <class> : Instruction
  {
    public void Execute(ProgrammingModel model, Memory memory, byte argument)
    {
      throw new System.NotImplementedException();
    }

    public int CyclesFor(AddressingMode mode)
    {
      throw new System.NotImplementedException();
    }
  }
}
}

templateTest = %{using NUnit.Framework;

namespace Mos6510.Tests.Instructions
{
  [TestFixture]
  public class <class>Tests
  {
    [Test]
    public void TheTruth()
    {
      Assert.That(true, Is.True);
    }
  }
}
}

def replaceClass(klass, template)
  template.gsub("<class>", klass)
end

if (ARGV.length != 1)
  puts "Usage: newi.rb instruction\n"
  exit
end

klass = ARGV[0]

codeDirectory = "Mos6510/Instructions"
testDirectory = "Mos6510.Tests/Instructions"

codeFile = "#{codeDirectory}/#{klass}.cs"

if (File.exists?(codeFile))
  puts "Error: The file '#{codeFile}' already exists.\n"
  exit
end

testFile = "#{testDirectory}/#{klass}Tests.cs"

if (File.exists?(testFile))
  puts "Error: The file '#{testFile}' already exists.\n"
  exit
end

File.open(codeFile, 'w') { |file|
  file.write(replaceClass(klass, templateCs))
}

File.open(testFile, 'w') { |file|
  file.write(replaceClass(klass, templateTest))
}
```
assistant