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 */