Mercurial > public > hwos_code
comparison src/strings.inc @ 604:ca4556fb60b9
bump to 2.99beta, work on 3.00 stable
author | heinrichsweikamp |
---|---|
date | Thu, 22 Nov 2018 19:47:26 +0100 |
parents | e79bc535ef9e |
children | c40025d8e750 |
comparison
equal
deleted
inserted
replaced
603:00b24fb4324d | 604:ca4556fb60b9 |
---|---|
1 ;============================================================================= | 1 ;============================================================================= |
2 ; | 2 ; |
3 ; File strings.asm | 3 ; File strings.asm |
4 ; | 4 ; |
5 ; Implementation code various string functions. | 5 ; Implementation code various string functions |
6 ; | 6 ; |
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. |
8 ;============================================================================= | 8 ;============================================================================= |
9 ; HISTORY | 9 ; HISTORY |
10 ; 2010-12-02 : [jDG] Creation... | 10 ; 2010-12-02 : [jDG] Creation |
11 ; | 11 ; |
12 | 12 |
13 ;============================================================================= | 13 ;============================================================================= |
14 ; Copy a short embebed string at start of the string buffer (letter) | 14 ; Copy a short embedded string to the start of the string buffer |
15 ; Input: (nothing) | 15 ; Input : string after macro name |
16 ; Output: chars are copied into letter, starting at the beginning. | 16 ; Output : chars are copied to the start of the string buffer |
17 ; FSR2 point to the first unused char (the NULL termination). | 17 ; FSR2 points to the first unused char containing the NULL termination |
18 ; | 18 ; Trashed: WREG, TBLPTR, TABLAT, PRODL |
19 ; Trashed: WREG, TBLPTR, TABLAT, PRODL | 19 ; Note : uses bank-safe calls only |
20 ; Note: This are all bank-safe call. | |
21 ; | 20 ; |
22 extern strcpy_block | 21 extern strcpy_block |
23 STRCPY macro string | 22 STRCPY macro string |
24 call strcpy_block | 23 call strcpy_block |
25 DB string, 0 | 24 DB string, 0 |
26 endm | 25 endm |
27 | 26 |
28 ;============================================================================= | 27 ;============================================================================= |
29 ; A variant of STRCPY that appends chars to the current FSR2 pointer. | 28 ; A variant of STRCPY that appends chars in the string buffer at the current |
30 ; Input/Output/Trashed : see STRCPY. | 29 ; FSR2 pointer position |
31 extern strcat_block | 30 ; Input/Output/Trashed: see STRCPY |
32 STRCAT macro string | 31 ; |
33 call strcat_block | 32 extern strcat_block |
34 DB string, 0 | 33 STRCAT macro string |
35 endm | 34 call strcat_block |
35 DB string, 0 | |
36 endm | |
36 | 37 |
37 ;============================================================================= | 38 ;============================================================================= |
38 ; A variant of STRCAT when there is just on char to output | 39 ; A variant of STRCAT when there is just on char to output |
39 ; Input/Output/Trashed : none. | 40 ; Input/Output/Trashed: see STRCPY |
40 PUTC macro char | 41 ; |
41 movlw char | 42 PUTC macro char |
42 movwf POSTINC2 | 43 movlw char |
43 endm | 44 movwf POSTINC2 |
45 endm | |
44 | 46 |
45 ;============================================================================= | 47 ;============================================================================= |
46 ; A variant of STRCPY that send the string to the word processor afterwards. | 48 ; A variant of STRCPY that sends the string to the word processor afterwards |
47 ; Input/Output: see STRCPY. | 49 ; Input/Output: see STRCPY |
48 ; Trashed: See STRCPY + word_processor. In particular, switch RAM to Bank1 | 50 ; Trashed : see STRCPY + word_processor. In particular, switches RAM to Bank1 |
49 ; | 51 ; |
50 extern strcpy_block_print | 52 extern strcpy_block_print |
51 STRCPY_PRINT macro string | 53 STRCPY_PRINT macro string |
52 call strcpy_block_print | 54 call strcpy_block_print |
53 DB string, 0 | 55 DB string, 0 |
54 endm | 56 endm |
55 | 57 |
56 ; Trashed: See STRCPY + word_processor. In particular, switch RAM to Bank1 | 58 ;============================================================================= |
57 extern strcat_block_print | 59 ; A variant of STRCAT that sends the string to the word processor afterwards |
58 STRCAT_PRINT macro string | 60 ; Input/Output: see STRCAT |
59 call strcat_block_print | 61 ; Trashed : see STRCPY + word_processor. In particular, switches RAM to Bank1 |
60 DB string, 0 | 62 ; |
61 endm | 63 extern strcat_block_print |
64 STRCAT_PRINT macro string | |
65 call strcat_block_print | |
66 DB string, 0 | |
67 endm | |
62 | 68 |
63 ;============================================================================= | 69 ;============================================================================= |
64 ; Subroutines to operate on strings from PROM code | 70 ; Subroutines to operate on strings from PROM code |
65 ; | 71 ; |
66 ; Input: TBLPTR : string pointer into PROM. | 72 ; Input : TBLPTR : string pointer into PROM |
67 ; Output: string in buffer, FSR2 pointer on the closing null byte. | 73 ; Trashed: FSR1 |
74 ; Output : string in buffer, FSR2 pointer on the closing null byte | |
68 | 75 |
69 extern strcpy_prom, strcat_prom | 76 extern strcpy_prom, strcat_prom |
70 extern strcpy_prom_print, strcat_prom_print | 77 extern strcpy_prom_print, strcat_prom_print |
71 | 78 |
72 ;============================================================================= | 79 ;============================================================================= |
73 ; Subroutines and macros to operate on multilingual text | 80 ; Subroutines and macros to operate on multilingual text |
74 ; | 81 ; |
75 extern strcpy_text | 82 extern strcpy_text |
76 STRCPY_TEXT macro txt | 83 STRCPY_TEXT macro txt |
77 extern txt | 84 extern txt |
78 lfsr FSR1, txt | 85 lfsr FSR1, txt |
79 call strcpy_text | 86 call strcpy_text |
80 endm | 87 endm |
81 | 88 |
82 extern strcpy_text_print | 89 extern strcpy_text_print |
83 STRCPY_TEXT_PRINT macro txt | 90 STRCPY_TEXT_PRINT macro txt |
84 extern txt | 91 extern txt |
85 lfsr FSR1, txt | 92 lfsr FSR1, txt |
86 call strcpy_text_print | 93 call strcpy_text_print |
87 endm | 94 endm |
88 | 95 |
89 extern strcat_text | 96 extern strcat_text |
90 STRCAT_TEXT macro txt | 97 STRCAT_TEXT macro txt |
91 extern txt | 98 extern txt |
92 lfsr FSR1, txt | 99 lfsr FSR1, txt |
93 call strcat_text | 100 call strcat_text |
94 endm | 101 endm |
95 | 102 |
96 extern strcat_text_print | 103 extern strcat_text_print |
97 STRCAT_TEXT_PRINT macro txt | 104 STRCAT_TEXT_PRINT macro txt |
98 extern txt | 105 extern txt |
99 lfsr FSR1, txt | 106 lfsr FSR1, txt |
100 call strcat_text_print | 107 call strcat_text_print |
101 endm | 108 endm |
102 | 109 |
103 ;============================================================================= | 110 ;============================================================================= |
104 ; A shortcut for the macros WIN_TOP + WIN_LEFT + WIN_FONT. | 111 ; A shortcut for the macros WIN_TOP + WIN_LEFT + WIN_FONT |
105 ; The idea is to replace a 4x6=24 bytes sequence by a more compact 6bytes one. | 112 ; The idea is to replace a 4x6=24 bytes sequence by a more compact 6 bytes one. |
106 ; | 113 ; |
107 ; Trashed: TBLPTR, TABLAT, WREG. | 114 ; Trashed: TBLPTR, TABLAT, WREG. |
108 ; Note: This are all bank-safe call. | 115 ; Note : uses bank-safe calls only |
109 extern start_tiny_block | 116 ; |
117 extern start_tiny_block | |
110 WIN_TINY macro x, y | 118 WIN_TINY macro x, y |
111 call start_tiny_block | 119 call start_tiny_block |
112 DB x, y | 120 DB x, y |
113 endm | 121 endm |
114 | 122 |
115 extern start_small_block | 123 extern start_small_block |
116 WIN_SMALL macro x, y | 124 WIN_SMALL macro x, y |
117 call start_small_block | 125 call start_small_block |
118 DB x, y | 126 DB x, y |
119 endm | 127 endm |
120 | 128 |
121 extern start_std_block | 129 extern start_std_block |
122 WIN_STD macro x, y | 130 WIN_STD macro x, y |
123 call start_std_block | 131 call start_std_block |
124 DB x, y | 132 DB x, y |
125 endm | 133 endm |
126 | 134 |
127 extern start_medium_block | 135 extern start_medium_block |
128 WIN_MEDIUM macro x, y | 136 WIN_MEDIUM macro x, y |
129 call start_medium_block | 137 call start_medium_block |
130 DB x, y | 138 DB x, y |
131 endm | 139 endm |
132 | 140 |
133 extern start_large_block | 141 extern start_large_block |
134 WIN_LARGE macro x, y | 142 WIN_LARGE macro x, y |
135 call start_large_block | 143 call start_large_block |
136 DB x, y | 144 DB x, y |
137 endm | 145 endm |
138 | 146 |
139 ;============================================================================= | 147 ;============================================================================= |
140 ; Shortcuts for compact display programmings. | 148 ; Shortcuts for compact display programmings |
141 TEXT_TINY macro x, y, txt | 149 ; |
142 WIN_TINY x,y | 150 TEXT_TINY macro x, y, txt |
143 STRCPY_TEXT_PRINT txt | 151 WIN_TINY x,y |
144 endm | 152 STRCPY_TEXT_PRINT txt |
153 endm | |
145 | 154 |
146 TEXT_SMALL macro x, y, txt | 155 TEXT_SMALL macro x, y, txt |
147 WIN_SMALL x,y | 156 WIN_SMALL x,y |
148 STRCPY_TEXT_PRINT txt | 157 STRCPY_TEXT_PRINT txt |
149 endm | 158 endm |
150 | 159 |
151 TEXT_SMALL_INVERT macro x, y, txt | 160 TEXT_SMALL_INVERT macro x, y, txt |
152 WIN_SMALL_INVERT x,y | 161 WIN_SMALL_INVERT x,y |
153 STRCPY_TEXT_PRINT txt | 162 STRCPY_TEXT_PRINT txt |
154 endm | 163 endm |
155 | 164 |
156 TEXT_MEDIUM macro x, y, txt | 165 TEXT_MEDIUM macro x, y, txt |
157 WIN_MEDIUM x,y | 166 WIN_MEDIUM x,y |
158 STRCPY_TEXT_PRINT txt | 167 STRCPY_TEXT_PRINT txt |
159 endm | 168 endm |
160 | 169 |
161 TEXT_LARGE macro x, y, txt | 170 TEXT_LARGE macro x, y, txt |
162 WIN_LARGE x,y | 171 WIN_LARGE x,y |
163 STRCPY_TEXT_PRINT txt | 172 STRCPY_TEXT_PRINT txt |
164 endm | 173 endm |
165 | 174 |
166 STRING_TINY macro x, y, string | 175 STRING_TINY macro x, y, string |
167 WIN_SMALL x,y | 176 WIN_SMALL x,y |
168 STRCPY_PRINT string | 177 STRCPY_PRINT string |
169 endm | 178 endm |
170 | 179 |
171 STRING_SMALL macro x, y, string | 180 STRING_SMALL macro x, y, string |
172 WIN_SMALL x,y | 181 WIN_SMALL x,y |
173 STRCPY_PRINT string | 182 STRCPY_PRINT string |
174 endm | 183 endm |
175 | 184 |
176 STRING_MEDIUM macro x, y, string | 185 STRING_MEDIUM macro x, y, string |
177 WIN_MEDIUM x,y | 186 WIN_MEDIUM x,y |
178 STRCPY_PRINT string | 187 STRCPY_PRINT string |
179 endm | 188 endm |
180 | 189 |
181 STRING_LARGE macro x, y, string | 190 STRING_LARGE macro x, y, string |
182 WIN_LARGE x,y | 191 WIN_LARGE x,y |
183 STRCPY_PRINT string | 192 STRCPY_PRINT string |
184 endm | 193 endm |
185 |