1 ;;; thai-xtis.el --- Thai support for pre-composed font (for XTIS).
3 ;; Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
4 ;; Licensed to the Free Software Foundation.
6 ;; Author: TAKAHASHI Naoto <ntakahas@etl.go.jp>
7 ;; MORIOKA Tomohiko <tomo@etl.go.jp>
8 ;; Created: 1998-03-27 for Emacs-20.3 by TAKAHASHI Naoto
9 ;; 1999-03-29 imported and modified for XEmacs by MORIOKA Tomohiko
11 ;; Keywords: mule, multilingual, Thai, XTIS
13 ;; This file is part of XEmacs.
15 ;; XEmacs is free software; you can redistribute it and/or modify it
16 ;; under the terms of the GNU General Public License as published by
17 ;; the Free Software Foundation; either version 2, or (at your option)
20 ;; XEmacs is distributed in the hope that it will be useful, but
21 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 ;; General Public License for more details.
25 ;; You should have received a copy of the GNU General Public License
26 ;; along with XEmacs; see the file COPYING. If not, write to the Free
27 ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
32 ;; For Thai, the pre-composed character set proposed by
33 ;; Virach Sornlertlamvanich <virach@links.nectec.or.th> is supported.
37 (when (featurep 'xemacs)
38 (make-charset 'thai-xtis "Precomposed Thai (XTIS by Virach)."
39 '(registry "Thai94x94-0$"
45 (modify-syntax-entry 'thai-xtis "w")
47 (define-category ?T "Precomposed Thai character.")
48 (modify-category-entry 'thai-xtis ?T)
52 (defvar leading-code-private-21 #x9F)
54 (defconst thai-xtis-leading-code
55 (concat (char-to-string leading-code-private-21)
56 (char-to-string (charset-id 'thai-xtis))))
58 (define-ccl-program ccl-thai-xtis-consonant
61 ((write ,thai-xtis-leading-code)
66 (write ,thai-xtis-leading-code)
69 (write ,thai-xtis-leading-code)
73 (define-ccl-program ccl-thai-xtis-vowel-d1
76 ((write ,thai-xtis-leading-code)
81 (write ,thai-xtis-leading-code)
85 (define-ccl-program ccl-thai-xtis-vowel
88 ((write ,thai-xtis-leading-code)
91 (r1 = ((r0 - 188) << 3))
93 (write ,thai-xtis-leading-code)
97 (define-ccl-program ccl-thai-xtis-vowel-ee
100 ((write ,thai-xtis-leading-code)
105 (write ,thai-xtis-leading-code)
109 (define-ccl-program ccl-thai-xtis-tone
112 ((write ,thai-xtis-leading-code)
118 ((r1 += (r0 - ?\xe6))
122 (define-ccl-program ccl-thai-xtis-symbol
125 ((write ,thai-xtis-leading-code)
129 (write ,thai-xtis-leading-code)
133 (write ,thai-xtis-leading-code)
137 (define-ccl-program ccl-decode-thai-xtis
152 (call ccl-thai-xtis-consonant)
153 (call ccl-thai-xtis-consonant)
154 (call ccl-thai-xtis-consonant)
155 (call ccl-thai-xtis-consonant)
156 (call ccl-thai-xtis-consonant)
157 (call ccl-thai-xtis-consonant)
158 (call ccl-thai-xtis-consonant)
159 (call ccl-thai-xtis-consonant)
160 (call ccl-thai-xtis-consonant)
161 (call ccl-thai-xtis-consonant)
162 (call ccl-thai-xtis-consonant)
163 (call ccl-thai-xtis-consonant)
164 (call ccl-thai-xtis-consonant)
165 (call ccl-thai-xtis-consonant)
166 (call ccl-thai-xtis-consonant)
167 (call ccl-thai-xtis-consonant)
168 (call ccl-thai-xtis-consonant)
169 (call ccl-thai-xtis-consonant)
170 (call ccl-thai-xtis-consonant)
171 (call ccl-thai-xtis-consonant)
172 (call ccl-thai-xtis-consonant)
173 (call ccl-thai-xtis-consonant)
174 (call ccl-thai-xtis-consonant)
175 (call ccl-thai-xtis-consonant)
176 (call ccl-thai-xtis-consonant)
177 (call ccl-thai-xtis-consonant)
178 (call ccl-thai-xtis-consonant)
179 (call ccl-thai-xtis-consonant)
180 (call ccl-thai-xtis-consonant)
181 (call ccl-thai-xtis-consonant)
182 (call ccl-thai-xtis-consonant)
183 (call ccl-thai-xtis-consonant)
184 (call ccl-thai-xtis-consonant)
185 (call ccl-thai-xtis-consonant)
186 (call ccl-thai-xtis-consonant)
187 (call ccl-thai-xtis-symbol)
188 (call ccl-thai-xtis-consonant)
189 (call ccl-thai-xtis-symbol)
190 (call ccl-thai-xtis-consonant)
191 (call ccl-thai-xtis-consonant)
192 (call ccl-thai-xtis-consonant)
193 (call ccl-thai-xtis-consonant)
194 (call ccl-thai-xtis-consonant)
195 (call ccl-thai-xtis-consonant)
196 (call ccl-thai-xtis-consonant)
197 (call ccl-thai-xtis-consonant)
198 (call ccl-thai-xtis-symbol)
199 (call ccl-thai-xtis-symbol)
200 (call ccl-thai-xtis-vowel-d1)
201 (call ccl-thai-xtis-symbol)
202 (call ccl-thai-xtis-symbol)
203 (call ccl-thai-xtis-vowel)
204 (call ccl-thai-xtis-vowel)
205 (call ccl-thai-xtis-vowel)
206 (call ccl-thai-xtis-vowel)
207 (call ccl-thai-xtis-vowel)
208 (call ccl-thai-xtis-vowel)
209 (call ccl-thai-xtis-vowel)
214 (call ccl-thai-xtis-symbol)
215 (call ccl-thai-xtis-symbol)
216 (call ccl-thai-xtis-symbol)
217 (call ccl-thai-xtis-symbol)
218 (call ccl-thai-xtis-symbol)
219 (call ccl-thai-xtis-symbol)
220 (call ccl-thai-xtis-symbol)
221 (call ccl-thai-xtis-symbol)
222 (call ccl-thai-xtis-tone)
223 (call ccl-thai-xtis-tone)
224 (call ccl-thai-xtis-tone)
225 (call ccl-thai-xtis-tone)
226 (call ccl-thai-xtis-tone)
227 (call ccl-thai-xtis-tone)
228 (call ccl-thai-xtis-tone)
229 (call ccl-thai-xtis-vowel-ee)
230 (call ccl-thai-xtis-symbol)
231 (call ccl-thai-xtis-symbol)
232 (call ccl-thai-xtis-symbol)
233 (call ccl-thai-xtis-symbol)
234 (call ccl-thai-xtis-symbol)
235 (call ccl-thai-xtis-symbol)
236 (call ccl-thai-xtis-symbol)
237 (call ccl-thai-xtis-symbol)
238 (call ccl-thai-xtis-symbol)
239 (call ccl-thai-xtis-symbol)
240 (call ccl-thai-xtis-symbol)
241 (call ccl-thai-xtis-symbol)
242 (call ccl-thai-xtis-symbol)
253 (define-ccl-program ccl-encode-thai-xtis
257 (if (r0 == ,leading-code-private-21)
259 (if (r1 == ,(charset-id 'thai-xtis))
264 (r0 = ((r0 - ?\xb0) >> 3))
266 (write r0 [0 209 212 213 214 215 216 217 218 238]))
268 (write r1 [0 231 232 233 234 235 236 237]))
274 (write-read-repeat r0))))))
276 (if (featurep 'xemacs)
279 "external=tis620, internal=thai-xtis"
280 `(mnemonic "Thai-XTIS"
281 decode ,ccl-decode-thai-xtis
282 encode ,ccl-encode-thai-xtis))
284 'tis-620 4 ?T "external=tis620, internal=thai-xtis"
285 '(ccl-decode-thai-xtis . ccl-encode-thai-xtis)
286 '((safe-charsets . t)))
290 (set-language-info-alist
292 '((setup-function . setup-thai-xtis-environment)
293 (exit-function . exit-thai-xtis-environment)
295 (coding-system tis-620 iso-2022-7bit)
296 (coding-priority tis-620 iso-2022-7bit)
297 (sample-text . "
\e$(?!:
\e(B")
298 (documentation . t)))
300 ;; thai-xtis.el ends here.