/*---------- serial port output (not via liboop) ----------*/
void serial_transmit(const PicInsn *pi) {
+ serial_transmit_maybenosim(pi, 0);
+}
+
+void serial_transmit_maybenosim(const PicInsn *pi, int nosim) {
const PicInsnInfo *pii;
int obj, v, suppress=0;
else if (pii->noiselevel > picio_send_noise)
suppress= 1;
else
- oupicio("out",pii,obj,v,ouprintf);
+ oupicio("out",pii,obj,v, nosim ? ouprintf_only : ouprintf);
}
if (!suppress && picio_send_noise >= 2)
- ouhex("picioh out", pi->d, pi->l);
+ (nosim ? ouhex_nosim : ouhex)("picioh out", pi->d, pi->l);
/* note that the serial port is still in nonblocking mode. if
* we ever buffer up far enough that the kernel wants to make us
void ouhex_nosim(const char *word, const Byte *command, int length);
void serial_transmit(const PicInsn *pi);
+void serial_transmit_maybenosim(const PicInsn *pi, int nosim);
void command_doline(ParseState *ps, CommandInput *cmdi_arg);
const CmdInfo *current_cmd;
static void timefor_ping(TimeoutEvent *toev) {
enco_pic_ping(&piob, pong_seq ^ PING_PONG_PATTERN);
- serial_transmit(&piob);
+ serial_transmit_maybenosim(&piob, toev->pclass == toev_fast_pclass);
ping_toev.callback= timedout_ping;
ping_toev.pclass= "startup";
toev_start(&ping_toev);