chiark / gitweb /
speed28 was broken
authorian <ian>
Wed, 12 Jan 2005 00:20:15 +0000 (00:20 +0000)
committerian <ian>
Wed, 12 Jan 2005 00:20:15 +0000 (00:20 +0000)
hostside/nmra-packets.h

index 6686819f4f1b2ef3ecccfbe55facc8c7f295930f..c0dfb070d6874dd23cf362ccb4afa11a2d385837 100644 (file)
@@ -5,15 +5,16 @@
 NMRA(speed28, Aint(addr,0) Aint(speed,1) Aint(reverse,2), {
   /* 0<=speed<=28 or <=126; reverse: 0 forwards, non-0 backwards */
   int adj;
+  Byte cmd;
   ADDR;
   nmra_errchk(cn, speed, speed>=0 && speed<=28);
-  *c++= 0x40 | (reverse ? 0 : 0x20);
+  cmd= 0x40 | (reverse ? 0 : 0x20);
   if (speed) {
     adj= speed + 3;
-    *c |= adj & 1 ? 0x10 : 0;
-    *c |= adj >> 1;
+    cmd |= adj & 1 ? 0x10 : 0;
+    cmd |= adj >> 1;
   }
-  c++;
+  *c++= cmd;
 })
 NMRA(estop1, Aint(addr,0), {
   /* Baseline Speed and direction Forwards E-Stop(I) S9.2 B table l.56 */