       if (pq_first) {
         sub_duras(&(c->yn), c->pq);
         sub_duras(&(c->t), c->pq);
-        if (c->runlevel == 2) {
+        if (c->runlevel == C_LO) {
           channel_pin_on(c, ps);
           started_pq = true;
-          c->runlevel = 3;
+          c->runlevel = C_HI;
           c->pq = ps[c->who].q;
           c->e.npuls++;
           // TODO--timing errors here!
         }
         else {
           channel_pin_off(c, ps);
-          c->runlevel = 2;
+          c->runlevel = C_LO;
           c->pq = ps[c->who].q;
           if (started_pq) { started_pq = false; c->e.pmiss++; }
         }
       }
       else if (yn_first) {
         sub_duras(&(c->t), c->pq);
-        if (c->runlevel == 3) channel_pin_off(c, ps);
-        c->runlevel = 1;
+        if (c->runlevel == C_HI) channel_pin_off(c, ps);
+        c->runlevel = C_WAIT;
         c->yn = ps[c->who].z;
         if (started_pq) { started_pq = false; c->e.pmiss++; }
         if (started_yn) { started_yn = false; c->e.nmiss++; }

      goto tail_recurse;
    }
  }
}



        channel_pin_on(c, ps);
        started_yn = true;
        started_pq = true;
        c->runlevel = C_HI;
        c->pq = ps[c->who].q;
        c->yn = ps[c->who].s;
        c->e.nstim++;
