CharacterEncoderImplementations__JIS0201.st
changeset 8081 b468050174a9
child 8114 05274a80fcc4
equal deleted inserted replaced
8080:db22e5dcf518 8081:b468050174a9
       
     1 "{ Encoding: utf8 }"
       
     2 
       
     3 "{ Package: 'stx:libbasic' }"
       
     4 
       
     5 "{ NameSpace: CharacterEncoderImplementations }"
       
     6 
       
     7 SingleByteEncoder subclass:#JIS0201
       
     8 	instanceVariableNames:''
       
     9 	classVariableNames:''
       
    10 	poolDictionaries:''
       
    11 	category:'Collections-Text-Encodings'
       
    12 !
       
    13 
       
    14 
       
    15 !JIS0201 class methodsFor:'mapping'!
       
    16 
       
    17 mapFileURL1_relativePathName
       
    18     ^ 'OBSOLETE/EASTASIA/JIS/JIS0201.TXT'
       
    19 !
       
    20 
       
    21 mapping
       
    22 "
       
    23 # From: http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/JIS0201.TXT
       
    24 
       
    25 #
       
    26 #       Name:             JIS X 0201 (1976) to Unicode 1.1 Table
       
    27 #       Unicode version:  1.1
       
    28 #       Table version:    0.9
       
    29 #       Table format:     Format A
       
    30 #       Date:             8 March 1994
       
    31 #
       
    32 #       Copyright (c) 1991-1994 Unicode, Inc.  All Rights reserved.
       
    33 #
       
    34 #       This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
       
    35 #       No claims are made as to fitness for any particular purpose.  No
       
    36 #       warranties of any kind are expressed or implied.  The recipient
       
    37 #       agrees to determine applicability of information provided.  If this
       
    38 #       file has been provided on magnetic media by Unicode, Inc., the sole
       
    39 #       remedy for any claim will be exchange of defective media within 90
       
    40 #       days of receipt.
       
    41 #
       
    42 #       Recipient is granted the right to make copies in any form for
       
    43 #       internal distribution and to freely use the information supplied
       
    44 #       in the creation of products supporting Unicode.  Unicode, Inc.
       
    45 #       specifically excludes the right to re-distribute this file directly
       
    46 #       to third parties or other organizations whether for profit or not.
       
    47 #
       
    48 #       General notes:
       
    49 #
       
    50 #
       
    51 # This table contains one set of mappings from JIS X 0201 into Unicode.
       
    52 # Note that these data are *possible* mappings only and may not be the
       
    53 # same as those used by actual products, nor may they be the best suited
       
    54 # for all uses.  For more information on the mappings between various code
       
    55 # pages incorporating the repertoire of JIS X 0201 and Unicode, consult the
       
    56 # VENDORS mapping data.  Normative information on the mapping between
       
    57 # JIS X 0201 and Unicode may be found in the Unihan.txt file in the
       
    58 # latest Unicode Character Database.
       
    59 #
       
    60 # If you have carefully considered the fact that the mappings in
       
    61 # this table are only one possible set of mappings between JIS X 0201 and
       
    62 # Unicode and have no normative status, but still feel that you
       
    63 # have located an error in the table that requires fixing, you may
       
    64 # report any such error to errata@unicode.org.
       
    65 #
       
    66 #
       
    67 #       Format:  Three tab-separated columns
       
    68 #               Column #1 is the shift JIS code (in hex as 0xXX)
       
    69 #               Column #2 is the Unicode (in hex as 0xXXXX)
       
    70 #               Column #3 the Unicode (ISO 10646) name (follows a comment sign)
       
    71 #
       
    72 #       The entries are in JIS order
       
    73 #
       
    74 #
       
    75 0x20    0x0020  # SPACE
       
    76 0x21    0x0021  # EXCLAMATION MARK
       
    77 0x22    0x0022  # QUOTATION MARK
       
    78 0x23    0x0023  # NUMBER SIGN
       
    79 0x24    0x0024  # DOLLAR SIGN
       
    80 0x25    0x0025  # PERCENT SIGN
       
    81 0x26    0x0026  # AMPERSAND
       
    82 0x27    0x0027  # APOSTROPHE
       
    83 0x28    0x0028  # LEFT PARENTHESIS
       
    84 0x29    0x0029  # RIGHT PARENTHESIS
       
    85 0x2A    0x002A  # ASTERISK
       
    86 0x2B    0x002B  # PLUS SIGN
       
    87 0x2C    0x002C  # COMMA
       
    88 0x2D    0x002D  # HYPHEN-MINUS
       
    89 0x2E    0x002E  # FULL STOP
       
    90 0x2F    0x002F  # SOLIDUS
       
    91 0x30    0x0030  # DIGIT ZERO
       
    92 0x31    0x0031  # DIGIT ONE
       
    93 0x32    0x0032  # DIGIT TWO
       
    94 0x33    0x0033  # DIGIT THREE
       
    95 0x34    0x0034  # DIGIT FOUR
       
    96 0x35    0x0035  # DIGIT FIVE
       
    97 0x36    0x0036  # DIGIT SIX
       
    98 0x37    0x0037  # DIGIT SEVEN
       
    99 0x38    0x0038  # DIGIT EIGHT
       
   100 0x39    0x0039  # DIGIT NINE
       
   101 0x3A    0x003A  # COLON
       
   102 0x3B    0x003B  # SEMICOLON
       
   103 0x3C    0x003C  # LESS-THAN SIGN
       
   104 0x3D    0x003D  # EQUALS SIGN
       
   105 0x3E    0x003E  # GREATER-THAN SIGN
       
   106 0x3F    0x003F  # QUESTION MARK
       
   107 0x40    0x0040  # COMMERCIAL AT
       
   108 0x41    0x0041  # LATIN CAPITAL LETTER A
       
   109 0x42    0x0042  # LATIN CAPITAL LETTER B
       
   110 0x43    0x0043  # LATIN CAPITAL LETTER C
       
   111 0x44    0x0044  # LATIN CAPITAL LETTER D
       
   112 0x45    0x0045  # LATIN CAPITAL LETTER E
       
   113 0x46    0x0046  # LATIN CAPITAL LETTER F
       
   114 0x47    0x0047  # LATIN CAPITAL LETTER G
       
   115 0x48    0x0048  # LATIN CAPITAL LETTER H
       
   116 0x49    0x0049  # LATIN CAPITAL LETTER I
       
   117 0x4A    0x004A  # LATIN CAPITAL LETTER J
       
   118 0x4B    0x004B  # LATIN CAPITAL LETTER K
       
   119 0x4C    0x004C  # LATIN CAPITAL LETTER L
       
   120 0x4D    0x004D  # LATIN CAPITAL LETTER M
       
   121 0x4E    0x004E  # LATIN CAPITAL LETTER N
       
   122 0x4F    0x004F  # LATIN CAPITAL LETTER O
       
   123 0x50    0x0050  # LATIN CAPITAL LETTER P
       
   124 0x51    0x0051  # LATIN CAPITAL LETTER Q
       
   125 0x52    0x0052  # LATIN CAPITAL LETTER R
       
   126 0x53    0x0053  # LATIN CAPITAL LETTER S
       
   127 0x54    0x0054  # LATIN CAPITAL LETTER T
       
   128 0x55    0x0055  # LATIN CAPITAL LETTER U
       
   129 0x56    0x0056  # LATIN CAPITAL LETTER V
       
   130 0x57    0x0057  # LATIN CAPITAL LETTER W
       
   131 0x58    0x0058  # LATIN CAPITAL LETTER X
       
   132 0x59    0x0059  # LATIN CAPITAL LETTER Y
       
   133 0x5A    0x005A  # LATIN CAPITAL LETTER Z
       
   134 0x5B    0x005B  # LEFT SQUARE BRACKET
       
   135 0x5C    0x00A5  # YEN SIGN
       
   136 0x5D    0x005D  # RIGHT SQUARE BRACKET
       
   137 0x5E    0x005E  # CIRCUMFLEX ACCENT
       
   138 0x5F    0x005F  # LOW LINE
       
   139 0x60    0x0060  # GRAVE ACCENT
       
   140 0x61    0x0061  # LATIN SMALL LETTER A
       
   141 0x62    0x0062  # LATIN SMALL LETTER B
       
   142 0x63    0x0063  # LATIN SMALL LETTER C
       
   143 0x64    0x0064  # LATIN SMALL LETTER D
       
   144 0x65    0x0065  # LATIN SMALL LETTER E
       
   145 0x66    0x0066  # LATIN SMALL LETTER F
       
   146 0x67    0x0067  # LATIN SMALL LETTER G
       
   147 0x68    0x0068  # LATIN SMALL LETTER H
       
   148 0x69    0x0069  # LATIN SMALL LETTER I
       
   149 0x6A    0x006A  # LATIN SMALL LETTER J
       
   150 0x6B    0x006B  # LATIN SMALL LETTER K
       
   151 0x6C    0x006C  # LATIN SMALL LETTER L
       
   152 0x6D    0x006D  # LATIN SMALL LETTER M
       
   153 0x6E    0x006E  # LATIN SMALL LETTER N
       
   154 0x6F    0x006F  # LATIN SMALL LETTER O
       
   155 0x70    0x0070  # LATIN SMALL LETTER P
       
   156 0x71    0x0071  # LATIN SMALL LETTER Q
       
   157 0x72    0x0072  # LATIN SMALL LETTER R
       
   158 0x73    0x0073  # LATIN SMALL LETTER S
       
   159 0x74    0x0074  # LATIN SMALL LETTER T
       
   160 0x75    0x0075  # LATIN SMALL LETTER U
       
   161 0x76    0x0076  # LATIN SMALL LETTER V
       
   162 0x77    0x0077  # LATIN SMALL LETTER W
       
   163 0x78    0x0078  # LATIN SMALL LETTER X
       
   164 0x79    0x0079  # LATIN SMALL LETTER Y
       
   165 0x7A    0x007A  # LATIN SMALL LETTER Z
       
   166 0x7B    0x007B  # LEFT CURLY BRACKET
       
   167 0x7C    0x007C  # VERTICAL LINE
       
   168 0x7D    0x007D  # RIGHT CURLY BRACKET
       
   169 0x7E    0x203E  # OVERLINE
       
   170 0xA1    0xFF61  # HALFWIDTH IDEOGRAPHIC FULL STOP
       
   171 0xA2    0xFF62  # HALFWIDTH LEFT CORNER BRACKET
       
   172 0xA3    0xFF63  # HALFWIDTH RIGHT CORNER BRACKET
       
   173 0xA4    0xFF64  # HALFWIDTH IDEOGRAPHIC COMMA
       
   174 0xA5    0xFF65  # HALFWIDTH KATAKANA MIDDLE DOT
       
   175 0xA6    0xFF66  # HALFWIDTH KATAKANA LETTER WO
       
   176 0xA7    0xFF67  # HALFWIDTH KATAKANA LETTER SMALL A
       
   177 0xA8    0xFF68  # HALFWIDTH KATAKANA LETTER SMALL I
       
   178 0xA9    0xFF69  # HALFWIDTH KATAKANA LETTER SMALL U
       
   179 0xAA    0xFF6A  # HALFWIDTH KATAKANA LETTER SMALL E
       
   180 0xAB    0xFF6B  # HALFWIDTH KATAKANA LETTER SMALL O
       
   181 0xAC    0xFF6C  # HALFWIDTH KATAKANA LETTER SMALL YA
       
   182 0xAD    0xFF6D  # HALFWIDTH KATAKANA LETTER SMALL YU
       
   183 0xAE    0xFF6E  # HALFWIDTH KATAKANA LETTER SMALL YO
       
   184 0xAF    0xFF6F  # HALFWIDTH KATAKANA LETTER SMALL TU
       
   185 0xB0    0xFF70  # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
       
   186 0xB1    0xFF71  # HALFWIDTH KATAKANA LETTER A
       
   187 0xB2    0xFF72  # HALFWIDTH KATAKANA LETTER I
       
   188 0xB3    0xFF73  # HALFWIDTH KATAKANA LETTER U
       
   189 0xB4    0xFF74  # HALFWIDTH KATAKANA LETTER E
       
   190 0xB5    0xFF75  # HALFWIDTH KATAKANA LETTER O
       
   191 0xB6    0xFF76  # HALFWIDTH KATAKANA LETTER KA
       
   192 0xB7    0xFF77  # HALFWIDTH KATAKANA LETTER KI
       
   193 0xB8    0xFF78  # HALFWIDTH KATAKANA LETTER KU
       
   194 0xB9    0xFF79  # HALFWIDTH KATAKANA LETTER KE
       
   195 0xBA    0xFF7A  # HALFWIDTH KATAKANA LETTER KO
       
   196 0xBB    0xFF7B  # HALFWIDTH KATAKANA LETTER SA
       
   197 0xBC    0xFF7C  # HALFWIDTH KATAKANA LETTER SI
       
   198 0xBD    0xFF7D  # HALFWIDTH KATAKANA LETTER SU
       
   199 0xBE    0xFF7E  # HALFWIDTH KATAKANA LETTER SE
       
   200 0xBF    0xFF7F  # HALFWIDTH KATAKANA LETTER SO
       
   201 0xC0    0xFF80  # HALFWIDTH KATAKANA LETTER TA
       
   202 0xC1    0xFF81  # HALFWIDTH KATAKANA LETTER TI
       
   203 0xC2    0xFF82  # HALFWIDTH KATAKANA LETTER TU
       
   204 0xC3    0xFF83  # HALFWIDTH KATAKANA LETTER TE
       
   205 0xC4    0xFF84  # HALFWIDTH KATAKANA LETTER TO
       
   206 0xC5    0xFF85  # HALFWIDTH KATAKANA LETTER NA
       
   207 0xC6    0xFF86  # HALFWIDTH KATAKANA LETTER NI
       
   208 0xC7    0xFF87  # HALFWIDTH KATAKANA LETTER NU
       
   209 0xC8    0xFF88  # HALFWIDTH KATAKANA LETTER NE
       
   210 0xC9    0xFF89  # HALFWIDTH KATAKANA LETTER NO
       
   211 0xCA    0xFF8A  # HALFWIDTH KATAKANA LETTER HA
       
   212 0xCB    0xFF8B  # HALFWIDTH KATAKANA LETTER HI
       
   213 0xCC    0xFF8C  # HALFWIDTH KATAKANA LETTER HU
       
   214 0xCD    0xFF8D  # HALFWIDTH KATAKANA LETTER HE
       
   215 0xCE    0xFF8E  # HALFWIDTH KATAKANA LETTER HO
       
   216 0xCF    0xFF8F  # HALFWIDTH KATAKANA LETTER MA
       
   217 0xD0    0xFF90  # HALFWIDTH KATAKANA LETTER MI
       
   218 0xD1    0xFF91  # HALFWIDTH KATAKANA LETTER MU
       
   219 0xD2    0xFF92  # HALFWIDTH KATAKANA LETTER ME
       
   220 0xD3    0xFF93  # HALFWIDTH KATAKANA LETTER MO
       
   221 0xD4    0xFF94  # HALFWIDTH KATAKANA LETTER YA
       
   222 0xD5    0xFF95  # HALFWIDTH KATAKANA LETTER YU
       
   223 0xD6    0xFF96  # HALFWIDTH KATAKANA LETTER YO
       
   224 0xD7    0xFF97  # HALFWIDTH KATAKANA LETTER RA
       
   225 0xD8    0xFF98  # HALFWIDTH KATAKANA LETTER RI
       
   226 0xD9    0xFF99  # HALFWIDTH KATAKANA LETTER RU
       
   227 0xDA    0xFF9A  # HALFWIDTH KATAKANA LETTER RE
       
   228 0xDB    0xFF9B  # HALFWIDTH KATAKANA LETTER RO
       
   229 0xDC    0xFF9C  # HALFWIDTH KATAKANA LETTER WA
       
   230 0xDD    0xFF9D  # HALFWIDTH KATAKANA LETTER N
       
   231 0xDE    0xFF9E  # HALFWIDTH KATAKANA VOICED SOUND MARK
       
   232 0xDF    0xFF9F  # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
       
   233 
       
   234 "
       
   235 ! !
       
   236 
       
   237 !JIS0201 class methodsFor:'queries'!
       
   238 
       
   239 namesOfEncoding
       
   240     ^ #( 'jis0201' )
       
   241 ! !
       
   242 
       
   243 !JIS0201 methodsFor:'encoding & decoding'!
       
   244 
       
   245 decode:codeArg
       
   246     "Automagically generated by generateCode - do not modify.
       
   247      Decode from my encoding into unicode."
       
   248 
       
   249     |code "{ Class: SmallInteger }"|
       
   250 
       
   251     code := codeArg.
       
   252     code <= 16r1F ifTrue:[
       
   253 	^ self decodingError.
       
   254     ].
       
   255     code <= 16r5B ifTrue:[ ^ code ].
       
   256     code > 16rDF ifTrue:[
       
   257 	^ self decodingError.
       
   258     ].
       
   259     [
       
   260 	|t|
       
   261 	t := #(
       
   262 	   "16r005C"    16r00A5 " YEN SIGN " 
       
   263 	   "16r005D"    16r005D " RIGHT SQUARE BRACKET " 
       
   264 	   "16r005E"    16r005E " CIRCUMFLEX ACCENT " 
       
   265 	   "16r005F"    16r005F " LOW LINE " 
       
   266 	   "16r0060"    16r0060 " GRAVE ACCENT " 
       
   267 	   "16r0061"    16r0061 " LATIN SMALL LETTER A " 
       
   268 	   "16r0062"    16r0062 " LATIN SMALL LETTER B " 
       
   269 	   "16r0063"    16r0063 " LATIN SMALL LETTER C " 
       
   270 	   "16r0064"    16r0064 " LATIN SMALL LETTER D " 
       
   271 	   "16r0065"    16r0065 " LATIN SMALL LETTER E " 
       
   272 	   "16r0066"    16r0066 " LATIN SMALL LETTER F " 
       
   273 	   "16r0067"    16r0067 " LATIN SMALL LETTER G " 
       
   274 	   "16r0068"    16r0068 " LATIN SMALL LETTER H " 
       
   275 	   "16r0069"    16r0069 " LATIN SMALL LETTER I " 
       
   276 	   "16r006A"    16r006A " LATIN SMALL LETTER J " 
       
   277 	   "16r006B"    16r006B " LATIN SMALL LETTER K " 
       
   278 	   "16r006C"    16r006C " LATIN SMALL LETTER L " 
       
   279 	   "16r006D"    16r006D " LATIN SMALL LETTER M " 
       
   280 	   "16r006E"    16r006E " LATIN SMALL LETTER N " 
       
   281 	   "16r006F"    16r006F " LATIN SMALL LETTER O " 
       
   282 	   "16r0070"    16r0070 " LATIN SMALL LETTER P " 
       
   283 	   "16r0071"    16r0071 " LATIN SMALL LETTER Q " 
       
   284 	   "16r0072"    16r0072 " LATIN SMALL LETTER R " 
       
   285 	   "16r0073"    16r0073 " LATIN SMALL LETTER S " 
       
   286 	   "16r0074"    16r0074 " LATIN SMALL LETTER T " 
       
   287 	   "16r0075"    16r0075 " LATIN SMALL LETTER U " 
       
   288 	   "16r0076"    16r0076 " LATIN SMALL LETTER V " 
       
   289 	   "16r0077"    16r0077 " LATIN SMALL LETTER W " 
       
   290 	   "16r0078"    16r0078 " LATIN SMALL LETTER X " 
       
   291 	   "16r0079"    16r0079 " LATIN SMALL LETTER Y " 
       
   292 	   "16r007A"    16r007A " LATIN SMALL LETTER Z " 
       
   293 	   "16r007B"    16r007B " LEFT CURLY BRACKET " 
       
   294 	   "16r007C"    16r007C " VERTICAL LINE " 
       
   295 	   "16r007D"    16r007D " RIGHT CURLY BRACKET " 
       
   296 	   "16r007E"    16r203E " OVERLINE " 
       
   297 	   "16r007F"    16r0000 " invalid " 
       
   298 	   "16r0080"    16r0000 " invalid " 
       
   299 	   "16r0081"    16r0000 " invalid " 
       
   300 	   "16r0082"    16r0000 " invalid " 
       
   301 	   "16r0083"    16r0000 " invalid " 
       
   302 	   "16r0084"    16r0000 " invalid " 
       
   303 	   "16r0085"    16r0000 " invalid " 
       
   304 	   "16r0086"    16r0000 " invalid " 
       
   305 	   "16r0087"    16r0000 " invalid " 
       
   306 	   "16r0088"    16r0000 " invalid " 
       
   307 	   "16r0089"    16r0000 " invalid " 
       
   308 	   "16r008A"    16r0000 " invalid " 
       
   309 	   "16r008B"    16r0000 " invalid " 
       
   310 	   "16r008C"    16r0000 " invalid " 
       
   311 	   "16r008D"    16r0000 " invalid " 
       
   312 	   "16r008E"    16r0000 " invalid " 
       
   313 	   "16r008F"    16r0000 " invalid " 
       
   314 	   "16r0090"    16r0000 " invalid " 
       
   315 	   "16r0091"    16r0000 " invalid " 
       
   316 	   "16r0092"    16r0000 " invalid " 
       
   317 	   "16r0093"    16r0000 " invalid " 
       
   318 	   "16r0094"    16r0000 " invalid " 
       
   319 	   "16r0095"    16r0000 " invalid " 
       
   320 	   "16r0096"    16r0000 " invalid " 
       
   321 	   "16r0097"    16r0000 " invalid " 
       
   322 	   "16r0098"    16r0000 " invalid " 
       
   323 	   "16r0099"    16r0000 " invalid " 
       
   324 	   "16r009A"    16r0000 " invalid " 
       
   325 	   "16r009B"    16r0000 " invalid " 
       
   326 	   "16r009C"    16r0000 " invalid " 
       
   327 	   "16r009D"    16r0000 " invalid " 
       
   328 	   "16r009E"    16r0000 " invalid " 
       
   329 	   "16r009F"    16r0000 " invalid " 
       
   330 	   "16r00A0"    16r0000 " invalid " 
       
   331 	   "16r00A1"    16rFF61 " HALFWIDTH IDEOGRAPHIC FULL STOP " 
       
   332 	   "16r00A2"    16rFF62 " HALFWIDTH LEFT CORNER BRACKET " 
       
   333 	   "16r00A3"    16rFF63 " HALFWIDTH RIGHT CORNER BRACKET " 
       
   334 	   "16r00A4"    16rFF64 " HALFWIDTH IDEOGRAPHIC COMMA " 
       
   335 	   "16r00A5"    16rFF65 " HALFWIDTH KATAKANA MIDDLE DOT " 
       
   336 	   "16r00A6"    16rFF66 " HALFWIDTH KATAKANA LETTER WO " 
       
   337 	   "16r00A7"    16rFF67 " HALFWIDTH KATAKANA LETTER SMALL A " 
       
   338 	   "16r00A8"    16rFF68 " HALFWIDTH KATAKANA LETTER SMALL I " 
       
   339 	   "16r00A9"    16rFF69 " HALFWIDTH KATAKANA LETTER SMALL U " 
       
   340 	   "16r00AA"    16rFF6A " HALFWIDTH KATAKANA LETTER SMALL E " 
       
   341 	   "16r00AB"    16rFF6B " HALFWIDTH KATAKANA LETTER SMALL O " 
       
   342 	   "16r00AC"    16rFF6C " HALFWIDTH KATAKANA LETTER SMALL YA " 
       
   343 	   "16r00AD"    16rFF6D " HALFWIDTH KATAKANA LETTER SMALL YU " 
       
   344 	   "16r00AE"    16rFF6E " HALFWIDTH KATAKANA LETTER SMALL YO " 
       
   345 	   "16r00AF"    16rFF6F " HALFWIDTH KATAKANA LETTER SMALL TU " 
       
   346 	   "16r00B0"    16rFF70 " HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK " 
       
   347 	   "16r00B1"    16rFF71 " HALFWIDTH KATAKANA LETTER A " 
       
   348 	   "16r00B2"    16rFF72 " HALFWIDTH KATAKANA LETTER I " 
       
   349 	   "16r00B3"    16rFF73 " HALFWIDTH KATAKANA LETTER U " 
       
   350 	   "16r00B4"    16rFF74 " HALFWIDTH KATAKANA LETTER E " 
       
   351 	   "16r00B5"    16rFF75 " HALFWIDTH KATAKANA LETTER O " 
       
   352 	   "16r00B6"    16rFF76 " HALFWIDTH KATAKANA LETTER KA " 
       
   353 	   "16r00B7"    16rFF77 " HALFWIDTH KATAKANA LETTER KI " 
       
   354 	   "16r00B8"    16rFF78 " HALFWIDTH KATAKANA LETTER KU " 
       
   355 	   "16r00B9"    16rFF79 " HALFWIDTH KATAKANA LETTER KE " 
       
   356 	   "16r00BA"    16rFF7A " HALFWIDTH KATAKANA LETTER KO " 
       
   357 	   "16r00BB"    16rFF7B " HALFWIDTH KATAKANA LETTER SA " 
       
   358 	   "16r00BC"    16rFF7C " HALFWIDTH KATAKANA LETTER SI " 
       
   359 	   "16r00BD"    16rFF7D " HALFWIDTH KATAKANA LETTER SU " 
       
   360 	   "16r00BE"    16rFF7E " HALFWIDTH KATAKANA LETTER SE " 
       
   361 	   "16r00BF"    16rFF7F " HALFWIDTH KATAKANA LETTER SO " 
       
   362 	   "16r00C0"    16rFF80 " HALFWIDTH KATAKANA LETTER TA " 
       
   363 	   "16r00C1"    16rFF81 " HALFWIDTH KATAKANA LETTER TI " 
       
   364 	   "16r00C2"    16rFF82 " HALFWIDTH KATAKANA LETTER TU " 
       
   365 	   "16r00C3"    16rFF83 " HALFWIDTH KATAKANA LETTER TE " 
       
   366 	   "16r00C4"    16rFF84 " HALFWIDTH KATAKANA LETTER TO " 
       
   367 	   "16r00C5"    16rFF85 " HALFWIDTH KATAKANA LETTER NA " 
       
   368 	   "16r00C6"    16rFF86 " HALFWIDTH KATAKANA LETTER NI " 
       
   369 	   "16r00C7"    16rFF87 " HALFWIDTH KATAKANA LETTER NU " 
       
   370 	   "16r00C8"    16rFF88 " HALFWIDTH KATAKANA LETTER NE " 
       
   371 	   "16r00C9"    16rFF89 " HALFWIDTH KATAKANA LETTER NO " 
       
   372 	   "16r00CA"    16rFF8A " HALFWIDTH KATAKANA LETTER HA " 
       
   373 	   "16r00CB"    16rFF8B " HALFWIDTH KATAKANA LETTER HI " 
       
   374 	   "16r00CC"    16rFF8C " HALFWIDTH KATAKANA LETTER HU " 
       
   375 	   "16r00CD"    16rFF8D " HALFWIDTH KATAKANA LETTER HE " 
       
   376 	   "16r00CE"    16rFF8E " HALFWIDTH KATAKANA LETTER HO " 
       
   377 	   "16r00CF"    16rFF8F " HALFWIDTH KATAKANA LETTER MA " 
       
   378 	   "16r00D0"    16rFF90 " HALFWIDTH KATAKANA LETTER MI " 
       
   379 	   "16r00D1"    16rFF91 " HALFWIDTH KATAKANA LETTER MU " 
       
   380 	   "16r00D2"    16rFF92 " HALFWIDTH KATAKANA LETTER ME " 
       
   381 	   "16r00D3"    16rFF93 " HALFWIDTH KATAKANA LETTER MO " 
       
   382 	   "16r00D4"    16rFF94 " HALFWIDTH KATAKANA LETTER YA " 
       
   383 	   "16r00D5"    16rFF95 " HALFWIDTH KATAKANA LETTER YU " 
       
   384 	   "16r00D6"    16rFF96 " HALFWIDTH KATAKANA LETTER YO " 
       
   385 	   "16r00D7"    16rFF97 " HALFWIDTH KATAKANA LETTER RA " 
       
   386 	   "16r00D8"    16rFF98 " HALFWIDTH KATAKANA LETTER RI " 
       
   387 	   "16r00D9"    16rFF99 " HALFWIDTH KATAKANA LETTER RU " 
       
   388 	   "16r00DA"    16rFF9A " HALFWIDTH KATAKANA LETTER RE " 
       
   389 	   "16r00DB"    16rFF9B " HALFWIDTH KATAKANA LETTER RO " 
       
   390 	   "16r00DC"    16rFF9C " HALFWIDTH KATAKANA LETTER WA " 
       
   391 	   "16r00DD"    16rFF9D " HALFWIDTH KATAKANA LETTER N " 
       
   392 	   "16r00DE"    16rFF9E " HALFWIDTH KATAKANA VOICED SOUND MARK " 
       
   393 	   "16r00DF"    16rFF9F " HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK " 
       
   394 	   ) at:(code - 16r5B).
       
   395 	t == 0 ifFalse:[^ t].
       
   396 	^ self decodingError.
       
   397     ] value.
       
   398 !
       
   399 
       
   400 encode:unicodeArg
       
   401     "Automagically generated by generateCode - do not modify.
       
   402      Encode from unicode into my encoding."
       
   403 
       
   404     |unicode "{ Class: SmallInteger }"|
       
   405 
       
   406     unicode := unicodeArg.
       
   407     unicode <= 16r1F ifTrue:[
       
   408 	^ self decodingError.
       
   409     ].
       
   410     unicode <= 16r5B ifTrue:[ ^ unicode ].
       
   411     unicode > 16rFF9F ifTrue:[
       
   412 	^ self encodingError.
       
   413     ].
       
   414     unicode <= 16r203E ifTrue:[
       
   415 	unicode <= 16rA5 ifTrue:[
       
   416 	    unicode <= 16r7D ifTrue:[
       
   417 		[
       
   418 		    |t|
       
   419 		    t := #[
       
   420 		       "16r005C"    16r00 " invalid " 
       
   421 		       "16r005D"    16r5D " RIGHT SQUARE BRACKET " 
       
   422 		       "16r005E"    16r5E " CIRCUMFLEX ACCENT " 
       
   423 		       "16r005F"    16r5F " LOW LINE " 
       
   424 		       "16r0060"    16r60 " GRAVE ACCENT " 
       
   425 		       "16r0061"    16r61 " LATIN SMALL LETTER A " 
       
   426 		       "16r0062"    16r62 " LATIN SMALL LETTER B " 
       
   427 		       "16r0063"    16r63 " LATIN SMALL LETTER C " 
       
   428 		       "16r0064"    16r64 " LATIN SMALL LETTER D " 
       
   429 		       "16r0065"    16r65 " LATIN SMALL LETTER E " 
       
   430 		       "16r0066"    16r66 " LATIN SMALL LETTER F " 
       
   431 		       "16r0067"    16r67 " LATIN SMALL LETTER G " 
       
   432 		       "16r0068"    16r68 " LATIN SMALL LETTER H " 
       
   433 		       "16r0069"    16r69 " LATIN SMALL LETTER I " 
       
   434 		       "16r006A"    16r6A " LATIN SMALL LETTER J " 
       
   435 		       "16r006B"    16r6B " LATIN SMALL LETTER K " 
       
   436 		       "16r006C"    16r6C " LATIN SMALL LETTER L " 
       
   437 		       "16r006D"    16r6D " LATIN SMALL LETTER M " 
       
   438 		       "16r006E"    16r6E " LATIN SMALL LETTER N " 
       
   439 		       "16r006F"    16r6F " LATIN SMALL LETTER O " 
       
   440 		       "16r0070"    16r70 " LATIN SMALL LETTER P " 
       
   441 		       "16r0071"    16r71 " LATIN SMALL LETTER Q " 
       
   442 		       "16r0072"    16r72 " LATIN SMALL LETTER R " 
       
   443 		       "16r0073"    16r73 " LATIN SMALL LETTER S " 
       
   444 		       "16r0074"    16r74 " LATIN SMALL LETTER T " 
       
   445 		       "16r0075"    16r75 " LATIN SMALL LETTER U " 
       
   446 		       "16r0076"    16r76 " LATIN SMALL LETTER V " 
       
   447 		       "16r0077"    16r77 " LATIN SMALL LETTER W " 
       
   448 		       "16r0078"    16r78 " LATIN SMALL LETTER X " 
       
   449 		       "16r0079"    16r79 " LATIN SMALL LETTER Y " 
       
   450 		       "16r007A"    16r7A " LATIN SMALL LETTER Z " 
       
   451 		       "16r007B"    16r7B " LEFT CURLY BRACKET " 
       
   452 		       "16r007C"    16r7C " VERTICAL LINE " 
       
   453 		       "16r007D"    16r7D " RIGHT CURLY BRACKET " 
       
   454 		       ] at:(unicode - 16r5B).
       
   455 		    t == 0 ifFalse:[^ t].
       
   456 		    ^ self encodingError
       
   457 		] value.
       
   458 	    ].
       
   459 	    unicode <= 16rA4 ifTrue:[
       
   460 		^ self encodingError.
       
   461 	    ].
       
   462 	    ^  "16r00A5" 16r005C " YEN SIGN " 
       
   463 	].
       
   464 	unicode <= 16r203D ifTrue:[
       
   465 	    ^ self encodingError.
       
   466 	].
       
   467 	^  "16r203E" 16r007E " OVERLINE " 
       
   468     ].
       
   469     unicode <= 16rFF60 ifTrue:[
       
   470 	^ self encodingError.
       
   471     ].
       
   472     ^ #[
       
   473        "16rFF61"    16rA1 " HALFWIDTH IDEOGRAPHIC FULL STOP " 
       
   474        "16rFF62"    16rA2 " HALFWIDTH LEFT CORNER BRACKET " 
       
   475        "16rFF63"    16rA3 " HALFWIDTH RIGHT CORNER BRACKET " 
       
   476        "16rFF64"    16rA4 " HALFWIDTH IDEOGRAPHIC COMMA " 
       
   477        "16rFF65"    16rA5 " HALFWIDTH KATAKANA MIDDLE DOT " 
       
   478        "16rFF66"    16rA6 " HALFWIDTH KATAKANA LETTER WO " 
       
   479        "16rFF67"    16rA7 " HALFWIDTH KATAKANA LETTER SMALL A " 
       
   480        "16rFF68"    16rA8 " HALFWIDTH KATAKANA LETTER SMALL I " 
       
   481        "16rFF69"    16rA9 " HALFWIDTH KATAKANA LETTER SMALL U " 
       
   482        "16rFF6A"    16rAA " HALFWIDTH KATAKANA LETTER SMALL E " 
       
   483        "16rFF6B"    16rAB " HALFWIDTH KATAKANA LETTER SMALL O " 
       
   484        "16rFF6C"    16rAC " HALFWIDTH KATAKANA LETTER SMALL YA " 
       
   485        "16rFF6D"    16rAD " HALFWIDTH KATAKANA LETTER SMALL YU " 
       
   486        "16rFF6E"    16rAE " HALFWIDTH KATAKANA LETTER SMALL YO " 
       
   487        "16rFF6F"    16rAF " HALFWIDTH KATAKANA LETTER SMALL TU " 
       
   488        "16rFF70"    16rB0 " HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK " 
       
   489        "16rFF71"    16rB1 " HALFWIDTH KATAKANA LETTER A " 
       
   490        "16rFF72"    16rB2 " HALFWIDTH KATAKANA LETTER I " 
       
   491        "16rFF73"    16rB3 " HALFWIDTH KATAKANA LETTER U " 
       
   492        "16rFF74"    16rB4 " HALFWIDTH KATAKANA LETTER E " 
       
   493        "16rFF75"    16rB5 " HALFWIDTH KATAKANA LETTER O " 
       
   494        "16rFF76"    16rB6 " HALFWIDTH KATAKANA LETTER KA " 
       
   495        "16rFF77"    16rB7 " HALFWIDTH KATAKANA LETTER KI " 
       
   496        "16rFF78"    16rB8 " HALFWIDTH KATAKANA LETTER KU " 
       
   497        "16rFF79"    16rB9 " HALFWIDTH KATAKANA LETTER KE " 
       
   498        "16rFF7A"    16rBA " HALFWIDTH KATAKANA LETTER KO " 
       
   499        "16rFF7B"    16rBB " HALFWIDTH KATAKANA LETTER SA " 
       
   500        "16rFF7C"    16rBC " HALFWIDTH KATAKANA LETTER SI " 
       
   501        "16rFF7D"    16rBD " HALFWIDTH KATAKANA LETTER SU " 
       
   502        "16rFF7E"    16rBE " HALFWIDTH KATAKANA LETTER SE " 
       
   503        "16rFF7F"    16rBF " HALFWIDTH KATAKANA LETTER SO " 
       
   504        "16rFF80"    16rC0 " HALFWIDTH KATAKANA LETTER TA " 
       
   505        "16rFF81"    16rC1 " HALFWIDTH KATAKANA LETTER TI " 
       
   506        "16rFF82"    16rC2 " HALFWIDTH KATAKANA LETTER TU " 
       
   507        "16rFF83"    16rC3 " HALFWIDTH KATAKANA LETTER TE " 
       
   508        "16rFF84"    16rC4 " HALFWIDTH KATAKANA LETTER TO " 
       
   509        "16rFF85"    16rC5 " HALFWIDTH KATAKANA LETTER NA " 
       
   510        "16rFF86"    16rC6 " HALFWIDTH KATAKANA LETTER NI " 
       
   511        "16rFF87"    16rC7 " HALFWIDTH KATAKANA LETTER NU " 
       
   512        "16rFF88"    16rC8 " HALFWIDTH KATAKANA LETTER NE " 
       
   513        "16rFF89"    16rC9 " HALFWIDTH KATAKANA LETTER NO " 
       
   514        "16rFF8A"    16rCA " HALFWIDTH KATAKANA LETTER HA " 
       
   515        "16rFF8B"    16rCB " HALFWIDTH KATAKANA LETTER HI " 
       
   516        "16rFF8C"    16rCC " HALFWIDTH KATAKANA LETTER HU " 
       
   517        "16rFF8D"    16rCD " HALFWIDTH KATAKANA LETTER HE " 
       
   518        "16rFF8E"    16rCE " HALFWIDTH KATAKANA LETTER HO " 
       
   519        "16rFF8F"    16rCF " HALFWIDTH KATAKANA LETTER MA " 
       
   520        "16rFF90"    16rD0 " HALFWIDTH KATAKANA LETTER MI " 
       
   521        "16rFF91"    16rD1 " HALFWIDTH KATAKANA LETTER MU " 
       
   522        "16rFF92"    16rD2 " HALFWIDTH KATAKANA LETTER ME " 
       
   523        "16rFF93"    16rD3 " HALFWIDTH KATAKANA LETTER MO " 
       
   524        "16rFF94"    16rD4 " HALFWIDTH KATAKANA LETTER YA " 
       
   525        "16rFF95"    16rD5 " HALFWIDTH KATAKANA LETTER YU " 
       
   526        "16rFF96"    16rD6 " HALFWIDTH KATAKANA LETTER YO " 
       
   527        "16rFF97"    16rD7 " HALFWIDTH KATAKANA LETTER RA " 
       
   528        "16rFF98"    16rD8 " HALFWIDTH KATAKANA LETTER RI " 
       
   529        "16rFF99"    16rD9 " HALFWIDTH KATAKANA LETTER RU " 
       
   530        "16rFF9A"    16rDA " HALFWIDTH KATAKANA LETTER RE " 
       
   531        "16rFF9B"    16rDB " HALFWIDTH KATAKANA LETTER RO " 
       
   532        "16rFF9C"    16rDC " HALFWIDTH KATAKANA LETTER WA " 
       
   533        "16rFF9D"    16rDD " HALFWIDTH KATAKANA LETTER N " 
       
   534        "16rFF9E"    16rDE " HALFWIDTH KATAKANA VOICED SOUND MARK " 
       
   535        "16rFF9F"    16rDF " HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK " 
       
   536        ] at:(unicode - 16rFF60).
       
   537 ! !
       
   538 
       
   539 !JIS0201 class methodsFor:'documentation'!
       
   540 
       
   541 version
       
   542     ^ '$Header: /cvs/stx/stx/libbasic/CharacterEncoderImplementations__JIS0201.st,v 1.1 2004-03-05 17:27:32 cg Exp $'
       
   543 ! !