     }
 };
 
-class ReadTextWordControl : public Command {
-  public:
-    virtual bool match(const String& name) const {
-      return name.startsWith("read");
-    }
-    
+class ReadWordControlBase : public Command {
+  private:
+    bool readStopBits;
+  protected:
+    virtual void printWord(long location, int w) = 0;
+
+    ReadWordControlBase(bool rsb) : readStopBits(rsb) {}
+  public:
     virtual void execute(const String& commandString) {
       if (!programmer->inProgrammingMode()) {
         Serial.println("ERROR: Programmer not in programming mode");

class PowerControl : public Command {
  public:
    virtual bool match(const String& name) const {
      return name.startsWith("power");
    }
    
    virtual void execute(const String& commandString) {

class RewriteChipCommand : public Command {
  public:
    virtual bool match(const String& name) const {
      return name == "rewrite";
    }
    
    virtual void execute(const String& commandString) {
