Ejemplo n.º 1
0
LCDScreen::
LCDScreen(RunnableQueue &s, PortConnectionWrapper clk,
          PortConnectionWrapper data, PortConnectionWrapper de,
          PortConnectionWrapper hsync, PortConnectionWrapper vsync,
          unsigned width, unsigned height) :
  screen(width, height, 0x1f, (0x3f << 5), (0x1f << 11)),
  scheduler(s),
  CLKSignal(0),
  CLKProxy(*this, &LCDScreen::seeCLKChange),
  x(0),
  y(0),
  edgeCounter(0),
  lastDEHighEdge(0),
  lastPollForEvents(0)
{
  clk.attach(&CLKProxy);
  data.attach(&DataTracker);
  de.attach(&DETracker);
  hsync.attach(&HSYNCTracker);
  vsync.attach(&VSYNCTracker);
  if (!screen.init()) {
    std::cerr << "Failed to initialize SDL screen\n";
    std::exit(1);
  }
  schedulePollForEvents(minUpdateTicks);
}
Ejemplo n.º 2
0
UartRx::UartRx(RunnableQueue &s, PortConnectionWrapper p, ticks_t bt) :
  scheduler(s),
  currentPinValue(0),
  bitTime(bt),
  numDataBits(8),
  numStopBits(1),
  parity(NONE),
  state(WAIT_FOR_HIGH)
{
  p.attach(this);
}
Ejemplo n.º 3
0
static bool
connectLoopbackPorts(PortConnectionManager &connectionManager,
                     const LoopbackPorts &ports)
{
  for (const auto &entry : ports) {
    PortConnectionWrapper first = connectionManager.get(entry.first);
    if (!first) {
      std::cerr << "Error: Invalid port ";
      entry.first.dump(std::cerr);
      std::cerr << '\n';
      return false;
    }
    PortConnectionWrapper second = connectionManager.get(entry.second);
    if (!second) {
      std::cerr << "Error: Invalid port ";
      entry.second.dump(std::cerr);
      std::cerr << '\n';
      return false;
    }
    first.attach(second.getInterface());
    second.attach(first.getInterface());
  }
  return true;
}
Ejemplo n.º 4
0
 void connectLDQM(PortConnectionWrapper p) { useLDQM = true; p.attach(&LDQM); }
Ejemplo n.º 5
0
 void connectUDQM(PortConnectionWrapper p) { useUDQM = true; p.attach(&UDQM); }
Ejemplo n.º 6
0
 void connectWE(PortConnectionWrapper p) { p.attach(&WE); }
Ejemplo n.º 7
0
 void connectRAS(PortConnectionWrapper p) { p.attach(&RAS); }
Ejemplo n.º 8
0
 void connectDQ(PortConnectionWrapper p) {
   p.attach(&DQ);
   DQPort = p.getInterface();
 }
Ejemplo n.º 9
0
 void connectCLK(PortConnectionWrapper p) { p.attach(&CLKClock); }
Ejemplo n.º 10
0
 void connectBA(PortConnectionWrapper p) { p.attach(&BA); }