anchor.diff:     method Action set(Bit#(1) cmd, Bit#(3) regist, Bit#(64) addr);
      method Action get(Bit#(1) cmd, Bit#(3) regist);
      method Action hwenable(Bit#(1) en);
  -   method Action doCommandIndirect(Bit#(64) addr);
  +   method Action doCommandIndirect(Bit#(64) pointer, Bit#(64) addr);
      method Action doCommandImmediate(Bit#(64) data);
   endinterface
   
  
positive.code: 	    seq
  	       //$display("responseArbiter echoEngine completion");
  	       //$display("status write handle=%d address=%h burst=%h tag=%h",
  	//	  statusRing.memhandle, statusRing.bufferfirst, 8, statusTag);
  	       status_write_chan.writeReq.put(
  		  DmaRequest{handle: statusRing.memhandle, 
  		     address: statusRing.bufferfirst, burstLen: 8, tag: statusTag});
  	       for (respCtr <= 0; respCtr < 8; respCtr <= respCtr + 1)
  		  action
  		     let rv <- echoEngine.response.get();
  
negative.code: 	       seq
  	       if (cmdRing.bufferfirst != cmdRing.bufferlast) 
  		  seq
  		     //$display ("cmdFetch handle=%h address=%h burst=%h tag=%h", cmdRing.mempointer, cmdRing.bufferlast, 8, cmdFetchTag);
  		     cmd_read_chan.readReq.put(
  			DmaRequest{pointer: cmdRing.mempointer,
  			   offset: cmdRing.bufferlast, burstLen: 8, tag: cmdFetchTag});
  		     cmdRing.pop(64);
  		     cmdFetchTag <= cmdFetchTag + 1;
  		  endseq
  