1 | /* |
---|
2 | * mapping_table.h |
---|
3 | * $Id$ |
---|
4 | * |
---|
5 | * Created: 26.01.2013 18:32:56 |
---|
6 | * Updated: 29.01.2013, als Word-Dokument |
---|
7 | * Aktualisiert: 17.2. Author: Heribert |
---|
8 | * Aktualisiert: 23.2. Heribert |
---|
9 | * Author: Sven |
---|
10 | */ |
---|
11 | |
---|
12 | |
---|
13 | #ifndef _MAPPING_TABLE_H_ |
---|
14 | #define _MAPPING_TABLE_H_ |
---|
15 | |
---|
16 | // Default-Zeichen fuer Zeichen, die auf Codeurscheibe nicht definiert sind. |
---|
17 | // Nach Mail vom 17.02. soll das das "*" (Asteriks) sein. |
---|
18 | // Der * entspricht dez44 im H-Code (Zielcode) |
---|
19 | #define UNDEFINED_CHARACTER 44 |
---|
20 | |
---|
21 | // Letztes Zeichen (Ausgangscode = Index), welches uebersetzt wird. Da der Code |
---|
22 | // nur 6bit breit ist und unser Arraydatentyp 8bit, ist dies 63 = 3f = 0b00111111. |
---|
23 | // Alle Zeichen > 63 (also 64-255) werden automatisch mit UNDEFINED_CHARACTER uebersetzt. |
---|
24 | #define LAST_DEFINED_CHARACTER 63 |
---|
25 | |
---|
26 | uint8_t translation_table[] = { |
---|
27 | // generiert mit gentable.py |
---|
28 | |
---|
29 | // Bedeutung der Zahlen in C: |
---|
30 | // 1,2,3,4,12,13 ohne Praefix sind Dezimalzahlen |
---|
31 | // a,b,c,d,ef,dd sind Hexadezimalzahlen, normalerweise 0xa, 0xb, 0xc, 0xef |
---|
32 | // 01, 02, ... 082 sind Oktalzahlen |
---|
33 | // 0b00101001, 0b1010000 ... sind Binaerzahlen |
---|
34 | // Sie lesen sich so: |
---|
35 | // 0b00110101 = dez: 128*0 + 64*0 + 32*1 + 16*1 + 8*0 + 4*1 + 2*0 + 1*1 = 53 |
---|
36 | |
---|
37 | |
---|
38 | // Spalten A,B,C: Code von der Urscheibe ("Ausgangscode"), entspricht |
---|
39 | // dem Index in diesem Array |
---|
40 | // Spalte B: Zielcode (Code vom BULL Gamma 10). Ist hier dezimal angegeben |
---|
41 | // Spalte C: Zeichenbedeutung, gemaess Urscheibe und Zielcode |
---|
42 | // Spalte D: Ggf. weiterer Kommentar |
---|
43 | |
---|
44 | // A = B = C // D, // E // F |
---|
45 | /* 0 = 0 = 0b00000000 */ 28, // < (nicht sicher!) |
---|
46 | /* 1 = 1 = 0b00000001 */ 1, // 1 |
---|
47 | /* 2 = 2 = 0b00000010 */ 2, // 2 |
---|
48 | /* 3 = 3 = 0b00000011 */ 3, // 3 |
---|
49 | /* 4 = 4 = 0b00000100 */ 4, // 4 |
---|
50 | /* 5 = 5 = 0b00000101 */ 5, // 5 |
---|
51 | /* 6 = 6 = 0b00000110 */ 6, // 6 |
---|
52 | /* 7 = 7 = 0b00000111 */ 7, // 7 |
---|
53 | /* 8 = 8 = 0b00001000 */ 8, // 8 |
---|
54 | /* 9 = 9 = 0b00001001 */ 9, // 9 |
---|
55 | /* 10 = a = 0b00001010 */ 36, // M |
---|
56 | /* 11 = b = 0b00001011 */ 37, // N |
---|
57 | /* 12 = c = 0b00001100 */ 39, // P |
---|
58 | /* 13 = d = 0b00001101 */ 40, // Q |
---|
59 | /* 14 = e = 0b00001110 */ 41, // R |
---|
60 | /* 15 = f = 0b00001111 */ 34, // k |
---|
61 | /* 16 = 10 = 0b00010000 */ 16, // Zahl 0 |
---|
62 | /* 17 = 11 = 0b00010001 */ 19, // c |
---|
63 | /* 18 = 12 = 0b00010010 */ 20, // d |
---|
64 | /* 19 = 13 = 0b00010011 */ 21, // e |
---|
65 | /* 20 = 14 = 0b00010100 */ 22, // f |
---|
66 | /* 21 = 15 = 0b00010101 */ 23, // g |
---|
67 | /* 22 = 16 = 0b00010110 */ 24, // h |
---|
68 | /* 23 = 17 = 0b00010111 */ 18, // b |
---|
69 | /* 24 = 18 = 0b00011000 */ 61, // Punkt |
---|
70 | /* 25 = 19 = 0b00011001 */ 33, // j |
---|
71 | /* 26 = 1a = 0b00011010 */ 17, // a |
---|
72 | /* 27 = 1b = 0b00011011 */ UNDEFINED_CHARACTER, // undef |
---|
73 | /* 28 = 1c = 0b00011100 */ 50, // S |
---|
74 | /* 29 = 1d = 0b00011101 */ 58, // , (Komma) |
---|
75 | /* 30 = 1e = 0b00011110 */ 42, // ! |
---|
76 | /* 31 = 1f = 0b00011111 */ UNDEFINED_CHARACTER, // undef |
---|
77 | /* 32 = 20 = 0b00100000 */ 35, // L |
---|
78 | /* 33 = 21 = 0b00100001 */ 52, // U |
---|
79 | /* 34 = 22 = 0b00100010 */ 53, // V |
---|
80 | /* 35 = 23 = 0b00100011 */ 54, // W |
---|
81 | /* 36 = 24 = 0b00100100 */ 55, // X |
---|
82 | /* 37 = 25 = 0b00100101 */ 56, // Y |
---|
83 | /* 38 = 26 = 0b00100110 */ 57, // Z |
---|
84 | /* 39 = 27 = 0b00100111 */ 51, // T |
---|
85 | /* 40 = 28 = 0b00101000 */ 14, // = |
---|
86 | /* 41 = 29 = 0b00101001 */ 45, // ) |
---|
87 | /* 42 = 2a = 0b00101010 */ 32, // - Minus |
---|
88 | /* 43 = 2b = 0b00101011 */ 30, // + |
---|
89 | /* 44 = 2c = 0b00101100 */ 13, // ] muss mit Dreieck über H gestanzt werden |
---|
90 | /* 45 = 2d = 0b00101101 */ 26, // ? muss mit C-Strich gestanzt werden! |
---|
91 | /* 46 = 2e = 0b00101110 */ 12, // @ |
---|
92 | /* 47 = 2f = 0b00101111 */ 29, // ( |
---|
93 | /* 48 = 30 = 0b00110000 */ 49, // / (irgendeine art slash) |
---|
94 | /* 49 = 31 = 0b00110001 */ 10, // : |
---|
95 | /* 50 = 32 = 0b00110010 */ 47, // Pfeil nach links, muss mit nicht gestanzt werden |
---|
96 | /* 51 = 33 = 0b00110011 */ 15, // |
---|
97 | /* 52 = 34 = 0b00110100 */ 60, // % |
---|
98 | /* 53 = 35 = 0b00110101 */ 48, // & |
---|
99 | /* 54 = 36 = 0b00110110 */ 46, // ; |
---|
100 | /* 55 = 37 = 0b00110111 */ 11, // # |
---|
101 | /* 56 = 38 = 0b00111000 */ 44, // * (Stern), wird z.Z. als Apostroph gedruckt |
---|
102 | /* 57 = 39 = 0b00111001 */ 25, // I |
---|
103 | /* 58 = 3a = 0b00111010 */ 38, // Buchstabe O |
---|
104 | /* 59 = 3b = 0b00111011 */ UNDEFINED_CHARACTER, // undef |
---|
105 | /* 60 = 3c = 0b00111100 */ 13, // Apostroph |
---|
106 | /* 61 = 3d = 0b00111101 */ 62, // > |
---|
107 | /* 62 = 3e = 0b00111110 */ 43, // $ |
---|
108 | /* 63 = 3f = 0b00111111 */ 28, // < |
---|
109 | |
---|
110 | // Alle Werte > 63 werden automatisch auf UNDEFINED_CHARACTER abgebildet, |
---|
111 | // siehe LAST_DEFINED_CHARACTER oben. |
---|
112 | }; |
---|
113 | |
---|
114 | |
---|
115 | #endif // _MAPPING_TABLE_H_ |
---|
116 | |
---|