Line 1... |
Line 1... |
// $Id: Rw11CntlRL11.cpp 669 2015-04-26 21:20:32Z mueller $
|
// $Id: Rw11CntlRL11.cpp 686 2015-06-04 21:08:08Z mueller $
|
//
|
//
|
// Copyright 2014-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
// Copyright 2014-2015 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
|
// Other credits:
|
// Other credits:
|
// the boot code is from the simh project and Copyright Robert M Supnik
|
// the boot code is from the simh project and Copyright Robert M Supnik
|
// CalcCrc() is adopted from the simh project and Copyright Robert M Supnik
|
// CalcCrc() is adopted from the simh project and Copyright Robert M Supnik
|
Line 14... |
Line 14... |
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
// for complete details.
|
// for complete details.
|
//
|
//
|
// Revision History:
|
// Revision History:
|
// Date Rev Version Comment
|
// Date Rev Version Comment
|
|
// 2015-06-04 686 1.0.2 check for spurious lams
|
// 2015-03-04 655 1.0.1 use original boot code again
|
// 2015-03-04 655 1.0.1 use original boot code again
|
// 2015-03-01 653 1.0 Initial version
|
// 2015-03-01 653 1.0 Initial version
|
// 2014-06-08 561 0.1 First draft
|
// 2014-06-08 561 0.1 First draft
|
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
|
|
/*!
|
/*!
|
\file
|
\file
|
\version $Id: Rw11CntlRL11.cpp 669 2015-04-26 21:20:32Z mueller $
|
\version $Id: Rw11CntlRL11.cpp 686 2015-06-04 21:08:08Z mueller $
|
\brief Implemenation of Rw11CntlRL11.
|
\brief Implemenation of Rw11CntlRL11.
|
*/
|
*/
|
|
|
#include "boost/bind.hpp"
|
#include "boost/bind.hpp"
|
#include "boost/foreach.hpp"
|
#include "boost/foreach.hpp"
|
Line 438... |
Line 439... |
<< ",";
|
<< ",";
|
if (nwrd==65536) lmsg << " (0)"; else lmsg << RosPrintf(nwrd,"d",4);
|
if (nwrd==65536) lmsg << " (0)"; else lmsg << RosPrintf(nwrd,"d",4);
|
if (ovr) lmsg << "!";
|
if (ovr) lmsg << "!";
|
}
|
}
|
|
|
|
// check for spurious interrupts (either RDY=1 or RDY=0 and rdma busy)
|
|
if ((rlcs & kRLCS_M_CRDY) || fRdma.IsActive()) {
|
|
RlogMsg lmsg(LogFile());
|
|
lmsg << "-E RL11 err "
|
|
<< " cr=" << RosPrintBvi(rlcs,8)
|
|
<< " spurious lam: "
|
|
<< (fRdma.IsActive() ? "RDY=0 and Rdma busy" : "RDY=1");
|
|
return 0;
|
|
}
|
|
|
// remember request parameters for call back and error exit handling
|
// remember request parameters for call back and error exit handling
|
fRd_rlcs = rlcs;
|
fRd_rlcs = rlcs;
|
fRd_rlda = rlda;
|
fRd_rlda = rlda;
|
fRd_rlmp = wc;
|
fRd_rlmp = wc;
|
fRd_sta = sta;
|
fRd_sta = sta;
|