comparison src/text_multilang.inc @ 0:11d4fc797f74

init
author heinrichsweikamp
date Wed, 24 Apr 2013 19:22:45 +0200
parents
children ca4556fb60b9
comparison
equal deleted inserted replaced
-1:000000000000 0:11d4fc797f74
1 ;=============================================================================
2 ;
3 ; File text_multilang.inc
4 ;
5 ; Implementation text in various selectable languages.
6 ;
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved.
8 ;=============================================================================
9 ; HISTORY
10 ; 2011-06-12 : [jDG] Creation...
11 ;
12 ; Text definitions (text_french.asm example):
13 ; TCODE tYes, "Oui" ; Yes
14 ; TCODE tNo, "Non" ; No
15 ; TCODE tLogbk, "Carnet de plongées" ; Logbook
16 ;
17 ; Text direct usage:
18 ; lfsr FSR1,tYes ; Load a 12bit text index
19 ; call strcpy_text ; Copy to string buffer.
20 ; PUTC '/'
21 ; lfsr FSR1,tNo
22 ; call strcat_text_print ; Append, and call word processor.
23 ;
24 ; RATIONALS:
25 ; - The macro should define a label so that text files can be reordered
26 ; to keep consistency while adding more option (and make translator life easier).
27 ;
28 ; - The text positions is keept in menu blocks for the menu processor.
29 ;
30 ; - library function take text number from the FSR1 register, because a
31 ; lfsr instruction loads a 12bits constant at once.
32 ;
33 ;=============================================================================
34 ;
35
36 ; Pass 1: generate jump table, and define labels.
37 TCODE_1 macro label, text
38 tcode_idx set tcode_idx+1
39 If LANG == 0
40 global label
41 label:
42 Endif
43 dw t#v(LANG)_#v(tcode_idx)
44 endm
45 ;
46 ; Pass 2: generates string table.
47 TCODE_2 macro label, text
48 tcode_idx set tcode_idx+1
49 t#v(LANG)_#v(tcode_idx):
50 db text, 0
51 endm
52 ;
53 ;=============================================================================
54 ; strcpy_text : copy a multiling text into string buffer.
55 ;
56 ; Input: FSR1 : text index
57 ; Output: Buffer: filled with the text.
58 ; FSR2: pointer to end of copied text (the null char).
59 ; Trashed: WREG.
60 extern strcpy_text
61
62 ;=============================================================================
63 ; strcpy_text_print : Same as above, but calls word processor afterward.
64 ;
65 ; Input: FSR1 : text index
66 ; Output: Buffer: filled with the text.
67 ; FSR2: pointer to end of copied text (the null char).
68 ; Trashed: WREG.
69 extern strcpy_text_print
70
71 ;=============================================================================
72 ; strcat_text : Append a multiling text to FSR2 pointer.
73 ;
74 ; Input: FSR1 : text index
75 ; FSR2 : Current position (in Buffer)
76 ; Output: FSR2: pointer to end of copied text (the null char).
77 ; Trashed: WREG.
78 extern strcat_text
79
80 ;=============================================================================
81 ; strcat_text_print : Same as above, but calls word processor afterward.
82 ;
83 ; Input: FSR1 : text index
84 ; FSR2 : Current position (in Buffer)
85 ; Output: FSR2: pointer to end of copied text (the null char).
86 ; Trashed: WREG.
87 extern strcat_text_print
88