anchor.diff:  	    3: rv = {b8,truncate(offset.value)};
   	    4: rv = {b12,truncate(offset.value)};
   	 endcase
  -	 pageResponseFifos[i].enq(AddrTransResponse { error: DmaErrorNone, physAddr: truncate(rv) });
  +	 pageResponseFifos[i].enq(AddrTransResponse { error: offset.error, physAddr: truncate(rv) });
         endrule
      end
   
  
positive.code: 	 if (off.pageSize == 0) begin
  	    if (verbose) $display("mkMMU::addr[%d].request.put: ERROR   ptr=%h off=%h\n", i, ptr, off);
  	    dmaErrorFifos[1].enq(DmaError { errorType: DmaErrorOffsetOutOfRange, pref: extend(ptr), off:extend(off.value) });
  	 end
  	 else begin
  	    if (verbose) $display("mkMMU::translationTable[%d].read %h", i, {ptr,p});
  	    portsel(translationTable, i).request.put(BRAMRequest{write:False, responseOnWrite:False,
  						      address:{ptr,p}, datain:?});
  	    offs1[i].enq(off);
  	 end
        endrule
        rule stage5; // Concatenate page base address from sglist entry with LSB offset bits from request and return
  	 Page0 page <- portsel(translationTable, i).response.get;
  
negative.code:       rule stage3; // Based on results of comparision, select a region, putting it into 'o.pageSize'.  idxOffset holds offset in sglist table of relevant entry
  	 let params <- toGet(stage3Params[i]).get();
  	 AddrTransRequest req = params.req;
  	 Offset o = Offset { error: DmaErrorNone, pageSize: 0, value: truncate(req.off)};
  	 Bit#(IndexWidth) pbase = 0;
  	 Bit#(IndexWidth) idxOffset = 0;
  
  