*c++= value;
})
+/*
+ * Service mode.
+ */
+NMRA(svc_cvwrite, Aint(cv,0) Abyte(value,1), {
+ /* Service Mode Instruction for Direct Mode, Write Byte
+ * RP 9.2.3 E l.107-
+ */
+ int adj;
+ nmra_errchk(cn, cv, cv>=1 && cv<=1024);
+ adj= cv - 1;
+ *c++= 0x7c | (adj >> 8);
+ *c++= adj;
+ *c++= value;
+})
+NMRA(svc_factoryreset, Anone, {
+ /* Service Mode Instruction for Decoder Factory Reset
+ * RP 9.2.3 E l.279-
+ * (See also Packet Sequence for Physical Register Addressing
+ * RP 9.2.3 E l.166-)
+ */
+ CONST(0x7f, 0x40);
+})
+NMRA(svc_pagepreset, Anone, {
+ /* Service Mode Page Preset Instruction
+ * RP 9.2.3 E l.90-91
+ * used in various packet sequences.
+ */
+ CONST(0x7d, 0x01);
+})
+
#undef Aint
#undef Abitmap
#undef Abyte