From: ian Date: Wed, 12 Jan 2005 00:20:15 +0000 (+0000) Subject: speed28 was broken X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=06bea4727f09cd826cef3177d9df9daa89fb2731;p=trains.git speed28 was broken --- diff --git a/hostside/nmra-packets.h b/hostside/nmra-packets.h index 6686819..c0dfb07 100644 --- a/hostside/nmra-packets.h +++ b/hostside/nmra-packets.h @@ -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 */