0
|
1 ;=============================================================================
|
|
2 ;
|
634
|
3 ; File text_multilang.asm * combined next generation V3.09.4k
|
0
|
4 ;
|
|
5 ; Implementation text in various selectable languages.
|
|
6 ;
|
|
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved.
|
|
8 ;=============================================================================
|
|
9 ; HISTORY
|
604
|
10 ; 2011-06-12 : [jDG] Creation
|
0
|
11
|
604
|
12 #include "hwos.inc"
|
0
|
13 #include "text_multilang.inc"
|
|
14
|
634
|
15
|
|
16 ; Because multi-lingual texts are indexed using a FSR register and a FSR
|
|
17 ; register only holds 12 bit, the texts need to be aligned to a 4 kB block
|
|
18 ; in program memory. That is, they need to start at an address 0xXX000.
|
|
19
|
|
20
|
|
21
|
|
22 ; fast hack **ONLY** for **CHANGING** languages ( en / de / fr / it )
|
|
23
|
648
|
24 ;#undefine _language_1
|
650
|
25 ;#define _language_1 it
|
640
|
26
|
648
|
27 ;#undefine _language_2
|
|
28 ;#define _language_2 it
|
634
|
29
|
|
30
|
|
31 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
32 ; LANGUAGE 1
|
|
33 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
34
|
0
|
35
|
|
36 ;=============================================================================
|
634
|
37 text_1_base CODE 0x09000 ; ! DO NOT CHANGE ! *** Index Table ***
|
|
38 ;=============================================================================
|
|
39
|
604
|
40 global text_1_base
|
448
|
41 text_1_base:
|
634
|
42
|
604
|
43 tcode_idx set 0
|
|
44 LANG set 0
|
|
45 #define TCODE TCODE_1
|
0
|
46
|
604
|
47 IF _language_1==en
|
613
|
48 MESSG "1st Language: English"
|
604
|
49 #include "text_english.inc"
|
|
50 ELSE
|
|
51 IF _language_1==de
|
613
|
52 MESSG "1st Language: German"
|
604
|
53 #include "text_german.inc"
|
|
54 ELSE
|
|
55 IF _language_1==fr
|
613
|
56 MESSG "1st Language: French"
|
604
|
57 #include "text_french.inc"
|
|
58 ELSE
|
|
59 IF _language_1==it
|
613
|
60 MESSG "1st Language: Italian"
|
|
61 #include "text_italian.inc"
|
604
|
62 ELSE
|
613
|
63 MESSG "1st Language: Default (English)"
|
604
|
64 #include "text_english.inc"
|
|
65 ENDIF
|
|
66 ENDIF
|
|
67 ENDIF
|
|
68 ENDIF
|
|
69
|
|
70 #undefine TCODE
|
|
71
|
634
|
72
|
|
73 ;=============================================================================
|
|
74 text_1_text CODE_PACK ; *** Text Table ***
|
|
75 ;=============================================================================
|
|
76
|
|
77 global text_1_text
|
|
78 text_1_text:
|
|
79
|
604
|
80 tcode_idx set 0
|
|
81 #define TCODE TCODE_2
|
|
82
|
|
83 IF _language_1==en
|
|
84 #include "text_english.inc"
|
|
85 ELSE
|
|
86 IF _language_1==de
|
|
87 #include "text_german.inc"
|
|
88 ELSE
|
|
89 IF _language_1==fr
|
|
90 #include "text_french.inc"
|
|
91 ELSE
|
|
92 IF _language_1==it
|
613
|
93 #include "text_italian.inc"
|
604
|
94 ELSE
|
|
95 #include "text_english.inc"
|
|
96 ENDIF
|
|
97 ENDIF
|
|
98 ENDIF
|
|
99 ENDIF
|
|
100
|
|
101 #undefine TCODE
|
0
|
102
|
634
|
103
|
|
104
|
|
105 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
106 ; LANGUAGE 2
|
|
107 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
560
|
108
|
634
|
109 IF _language_2 != none
|
|
110
|
|
111
|
|
112 ;=============================================================================
|
|
113 text_2_base CODE 0x09400 ; ! DO NOT CHANGE ! *** Index Table ***
|
|
114 ;=============================================================================
|
560
|
115
|
604
|
116 global text_2_base
|
448
|
117 text_2_base:
|
634
|
118
|
604
|
119 tcode_idx set 0
|
|
120 LANG set 1
|
|
121 #define TCODE TCODE_1
|
0
|
122
|
604
|
123 IF _language_2==en
|
613
|
124 MESSG "2nd Language: English"
|
604
|
125 #include "text_english.inc"
|
|
126 ELSE
|
|
127 IF _language_2==de
|
613
|
128 MESSG "2nd Language: German"
|
604
|
129 #include "text_german.inc"
|
|
130 ELSE
|
|
131 IF _language_2==fr
|
613
|
132 MESSG "2nd Language: French"
|
604
|
133 #include "text_french.inc"
|
|
134 ELSE
|
|
135 IF _language_2==it
|
613
|
136 MESSG "2nd Language: Italian"
|
|
137 #include "text_italian.inc"
|
604
|
138 ELSE
|
613
|
139 MESSG "2nd Language: Default (English)"
|
604
|
140 #include "text_english.inc"
|
|
141 ENDIF
|
|
142 ENDIF
|
|
143 ENDIF
|
|
144 ENDIF
|
|
145
|
|
146 #undefine TCODE
|
0
|
147
|
634
|
148
|
|
149 ;=============================================================================
|
|
150 text_2_text CODE_PACK ; *** Text Table ***
|
|
151 ;=============================================================================
|
|
152
|
|
153 global text_2_text
|
|
154 text_2_text:
|
|
155
|
604
|
156 tcode_idx set 0
|
|
157 #define TCODE TCODE_2
|
0
|
158
|
604
|
159 IF _language_2==en
|
|
160 #include "text_english.inc"
|
|
161 ELSE
|
|
162 IF _language_2==de
|
|
163 #include "text_german.inc"
|
|
164 ELSE
|
|
165 IF _language_2==fr
|
|
166 #include "text_french.inc"
|
|
167 ELSE
|
|
168 IF _language_2==it
|
613
|
169 #include "text_italian.inc"
|
604
|
170 ELSE
|
|
171 #include "text_english.inc"
|
|
172 ENDIF
|
|
173 ENDIF
|
|
174 ENDIF
|
|
175 ENDIF
|
|
176
|
|
177 #undefine TCODE
|
|
178
|
634
|
179 ENDIF ; _language_2
|
0
|
180
|
634
|
181 ;-----------------------------------------------------------------------------
|
0
|
182
|
604
|
183 END
|