trennfix/sw: Some cleanup
[eisenbahn.git] / trennfix / sw / mm_lookup.h
1 #ifndef __MM_LOOKUP_H
2 #define __MM_LOOKUP_H
3
4 /*
5 * Lookup decoder number.
6 *
7 */
8 static uint8_t lookup_decoder(uint8_t mm_byte)
9 {
10 switch(mm_byte) {
11 /* 0x00 is invalid */
12 case 0xc0: return 1;
13 case 0x80: return 2;
14 case 0x30: return 3;
15 case 0xf0: return 4;
16 case 0xb0: return 5;
17 case 0x20: return 6;
18 case 0xe0: return 7;
19 case 0xa0: return 8;
20
21 case 0x0c: return 9;
22 case 0xcc: return 10;
23 case 0x8c: return 11;
24 case 0x3c: return 12;
25 case 0xfc: return 13;
26 case 0xbc: return 14;
27 case 0x2c: return 15;
28 case 0xec: return 16;
29 case 0xac: return 17;
30
31 case 0x08: return 18;
32 case 0xc8: return 19;
33 case 0x88: return 20;
34 case 0x38: return 21;
35 case 0xf8: return 22;
36 case 0xb8: return 23;
37 case 0x28: return 24;
38 case 0xe8: return 25;
39
40 default:
41 return 0;
42 }
43 }
44
45 static uint8_t lookup_command(uint8_t mm_byte)
46 {
47 switch(mm_byte) {
48 case 0xc3: return 1;
49 case 0x03: return 2;
50 case 0xf3: return 3;
51 case 0x33: return 4;
52 case 0xcf: return 5;
53 case 0x0f: return 6;
54 case 0xff: return 7;
55 case 0x3f: return 8;
56 default:
57 return 0;
58 }
59 }
60
61
62 #endif