--- /dev/null
+/*
+ * arranges for the declarations of
+ * enco_pic_WHATEVER
+ * onrecv_pic_WHATEVER
+ * and the tables
+ */
+
+#ifndef PROTOCOL_H
+#define PROTOCOL_H
+
+#define HOST2PIC_0(n,o,a) HOST2PIC_1(n,o,a)
+#define PIC2HOST_0(n,o,a) PIC2HOST_1(n,o,a)
+
+#if 0
+static void pe(PicInsn *out, );
+#define EP(objnum) { ep(out,o,a,objnum); }
+#define HOST2PIC_0(n,o,a) void enco_pic_##n(PicInsn *out) EP(0)
+#define HOST2PIC_1(n,o,a) void enco_pic_##n(PicInsn *out, int oj) EP(oj)
+#define PIC2HOST_0(n,o,a) /**/
+#define PIC2HOST_1(n,o,a) /**/
+#include "proto-spec.h"
+#undef HOST2PIC_0
+#undef HOST2PIC_1
+#undef PIC2HOST_0
+#undef PIC2HOST_1
+#endif
+
+extern void enco_pic_polarity_begin(PicInsn *out);
+extern void enco_pic_polarity_setbit(PicInsn *out, int objnum);
+extern void on_pic_debug(int ch);
+
+const PicInsnInfo pic_command_infos[]= {
+#define HOST2PIC_1(n,o,a) { #n, o, a },
+#define PIC2HOST_1(n,o,a) /**/
+#undef PIC2HOST_1
+#include "proto-spec.h"
+#undef HOST2PIC_1
+#undef PIC2HOST_1
+};
+
+const PicInsnInfo pic_reply_infos[]= {
+#define HOST2PIC_1(n,o,a) /**/
+#define PIC2HOST_1(n,o,a) { #n, o, a },
+#undef PIC2HOST_1
+#include "proto-spec.h"
+#undef HOST2PIC_1
+#undef PIC2HOST_1
+};
+
+
+#undef HOST2PIC_1
+#undef HOST2PIC_0
+
+static void pe(PicInsn *out, );
+#define EP(objnum) { ep(out,o,a,objnum); }
+#define PIC2HOST_0(n,o,a) /**/
+#define PIC2HOST_1(n,o,a) /**/
+#include "proto-spec.h"
+#undef PIC2HOST_0
+
+#endif /*NMRA_H*/