OXYGENHUB
◆ main openmsx / Contrib / reverse_engineering_tools / kanji / ktst31.md
21.6 KiB · Markdown · last changed chore(): initial commit 1 month ago renderedsource blame history raw
e8555c89 Andy McCall 1
# I/O port Kanji ROM and I/O port Hangul/Hanja ROM testing and configuration
2
3
OpenMSX I/O port Kanji ROM and I/O port Hangul/Hanja ROM configurations should be characterized based on hardware testing or study of the relevant circuits, and then described inside the `<Kanji>`...`</Kanji>` tag of the machine/extension configuration XML. One method involves running the BASIC test programs found adjacent to this document. To classify additional models, run the test program on them and copy the existing configuration whose emulator results match what you see. For configurations that don't match these, or when you have questions about the test, please reach out to the openMSX team!
4
5
## Eligible Machines and Cartridge Extensions
6
7
Any machine or cartridge extensions with an I/O port Kanji ROM or I/O port Hangul/Hanja ROM implementation exposed via I/O ports 0xD8/0xD9 and/or 0xDA/0xDB should be tested or studied to determine how it behaves, and then configured accordingly so that OpenMSX can emulate it accurately. If you aren't sure whether a machine or extension contains this, you can try running the test there to find out.
8
9
## Interpretation of Results
10
11
The test suite (as of version 3.1) now consists of a starting program KTST31.ASC that checks to make sure you have enough RAM and gives a list of all the test sections, and then three separate test programs which it runs in sequence:
12
13
- KTST31A.ASC: Part A: Kanji I/O Tests (tests and their interpretations are identical to 2.x)
14
  - 1/9: Kanji Detection
15
  - 2/9: Interleaving A
16
  - 3/9: Interleaving B
17
- KTST31B.ASC: Part B: Kanji I/O Tests (new tests for non-zero upper address bits and low-port readback)
18
  - 4/9: Upper Bit Flips
19
  - 5/9: Lower Readbacks
20
  - 6/9: Read Port Flips
21
- KTST31C.ASC: Part C: Hanja I/O Tests (new tests for Daewoo CPC-400/CPC-400S Hanja/Hangul ROM)
22
  - 7/9: Hanja Detection
23
  - 8/9: Upper Bit Flips
24
  - 9/9: Port Rotations
25
26
There is also an omnibus version CKTST31.ASC intended for ahead-of-time compilation into CKTST31.BIN with the MSX-BACON compiler. This is loaded by the BASIC program CKTST31.BCL. It combines all the tests, and will be run (along with the BACONLDR.BIN library and loader which is MIT-licensed and from the MSX-BACON distribution) in preference to the separate versions if possible. If the first-stage loader is able to use this version, it will be used instead of the separate ones. The cassette conversion KTST31.CAS excludes this version, and gives all remaining files shorter names to conform to MSX cassette file name constraints. Load that version using `RUN"CAS:KTST31"`. If you have bash, dd, wc, perl, python3, sed, sox, zip, openMSX, the Sanyo PHC-70FD2 system ROM set installed where openMSX can find it, the [msx_bacon]https://github.com/hra1129/msx_basic_compiler compiler with the `INP(`...`)` fix from https://github.com/hra1129/msx_basic_compiler/pull/32 , and the [zma]https://github.com/hra1129/zma assembler in your `$PATH` you can rebuild the cassette image, the pre-compiled version, the disk image, and the ZIP file by running `rebuild.sh`. The included public domain Python CAS to WAV converter was written by Google Gemini.
27
28
In test result descriptions below, `▒` indicates a region of mixed-up character scanlines, appearing more or less as small noisy shapes. `█` indicates a solid white-filled area, indicating 0xFF data. The fonts and character sizes likely won't match what you see in this text rendition, but it's the character identities that are more important. For systems that include Level 2 kanji, it's okay if the last four characters on the level 2 section of the first test screen (shown below using the unrealistic placeholders `🐐🦋🌺🪐`) look different, or are blank or solid-filled - those are from a vendor-specific extension area.
29
30
### Part A: Kanji I/O Tests (tests and their interpretations are identical to 2.x)
31
32
If you have a Daewoo CPC-400/400S / X-2/s, it is expected that the test screens in this section will include a lot of incomplete / incorrectly rendered character parts, resembling small noisy shapes. You may safely ignore this section if you are testing on those models.
33
34
These test screens exercise JIS Level 1 kanji access, JIS level 2 kanji access, and interleaved access to the ports for both levels. There's also testing of optimized address writes, where only part of an address is updated, and test of byte counter and character address sharing/interference between the levels. There's also a small test using the BIOS font which can work as a check to make sure the tiny collection of non-I/O port kanji on a Japanese MSX are present and functioning correctly. These tests do not exercise 12x12-dot kanji rendering, MSX-View kanji ROM's, or other non-I/O port kanji systems (e.g. those loaded from disk.) These also don't correctly use the Daewoo CPC-400/400S I/O port Hangul/Hanja ROM system, which uses a slightly different access method and a different (proprietary/unique) character set. If your BIOS font is not a Japanese one, the BIOS font parts won't display kanji and kana.
35
36
1. Level 1+Level 2 kanji ROM, level 2 determined via read: (like Sony HB-F1XV)
37
```
38
 Kanji I/O Tests 1/9: Kanji Detection v3.1
39
BIOS:月火水木金土日年円時分秒百千万大中小 ひらがな カタカナ
40
                            Romaji ♦♣♥♠
41
Lv1 漢字:月火水木金土日年円時分
42
秒百千万大中小 ひらがな カタカナ
43
Romaji カタカナ Romaji◆★▼▲
44
Greetings! PUTKA
45
NJI“漢字は最高です。”月月日日年年
46
Lv2 漢字:尸囗尸匚囗厂冂🐐🦋🌺🪐
47
嗅囑啣漾聒僥僉嗟喇嗷喞嘔啻嘛嗄僮
48
Lv1/Lv2:●劒  c匚o卅ο凵κ冂
49
Lv2↔Lv1:劈★  噬Ⅸ囂㎡嶇=嵎…
50
       (Previous test) ⇨  ★劒
51
 Please share screen pic+model│press a key
52
```
53
```
54
 Kanji I/O Tests 2/9: Interleaving A  v3.1
55
c匚o卅ο凵κ冂c匚o卅ο凵κ冂
56
c匚o卅ο凵κ冂c匚o卅ο凵κ冂
57
Ⅸ匚㎡卅=凵…冂c噬o囂ο嶇κ嵎
58
Ⅸ匚㎡卅=凵…冂c噬o囂ο嶇κ嵎
59
Ⅸ匚㎡卅=凵…冂c噬o囂ο嶇κ嵎
60
Ⅸ匚㎡卅=凵…冂c噬o囂ο嶇κ嵎
61
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
62
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
63
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
64
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
65
66
 Please share screen pic+model│press a key
67
```
68
```
69
 Kanji I/O Tests 3/9: Interleaving B  v3.1
70
c噬o囂ο嶇κ嵎Ⅸ匚㎡卅=凵…冂
71
c噬o囂ο嶇κ嵎Ⅸ匚㎡卅=凵…冂
72
c噬o囂ο嶇κ嵎Ⅸ匚㎡卅=凵…冂
73
c噬o囂ο嶇κ嵎Ⅸ匚㎡卅=凵…冂
74
75
76
77
78
79
80
81
 Please share screen pic+model│press a key
82
```
83
```xml
84
      <io base="0xD8" num="2" type="O"/>
85
      <io base="0xD9" num="1" type="I"/>
86
      <io base="0xDA" num="2" type="O"/>
87
      <io base="0xDB" num="1" type="I"/>
88
      <level_2_via>read</level_2_via>
89
```
90
2. Only Level 1 kanji ROM, but exposed equivalently on Level 1+Level 2 I/O ports: (like Yamaha YIS-805/256)
91
```
92
 Kanji I/O Tests 1/9: Kanji Detection v3.1
93
BIOS:月火水木金土日年円時分秒百千万大中小 ひらがな カタカナ
94
                            Romaji ♦♣♥♠
95
Lv1 漢字:月火水木金土日年円時分
96
秒百千万大中小 ひらがな カタカナ
97
Romaji カタカナ Romaji◆★▼▲
98
Greetings! PUTKA
99
NJI“漢字は最高です。”月月日日年年
100
Lv2 漢字: x Ⅸx㌘…裕湧由猶
101
Lv2漢字: MISDRAWN!
102
Lv1/Lv2:●★  cⅨo㎡ο=κ…
103
Lv2↔Lv1:●★  cⅨo㎡ο=κ…
104
       (Previous test) ⇨  ★★
105
 Please share screen pic+model│press a key
106
```
107
```
108
 Kanji I/O Tests 2/9: Interleaving A  v3.1
109
cⅨo㎡ο=κ…cⅨo㎡ο=κ…
110
cⅨo㎡ο=κ…cⅨo㎡ο=κ…
111
ⅨⅨ㎡㎡==……ccooοοκκ
112
ⅨⅨ㎡㎡==……ccooοοκκ
113
ⅨⅨ㎡㎡==……ccooοοκκ
114
ⅨⅨ㎡㎡==……ccooοοκκ
115
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
116
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
117
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
118
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
119
120
 Please share screen pic+model│press a key
121
```
122
```
123
 Kanji I/O Tests 3/9: Interleaving B  v3.1
124
ccooοοκκⅨⅨ㎡㎡==……
125
ccooοοκκⅨⅨ㎡㎡==……
126
ccooοοκκⅨⅨ㎡㎡==……
127
ccooοοκκⅨⅨ㎡㎡==……
128
129
130
131
132
133
134
135
 Please share screen pic+model│press a key
136
```
137
```xml
138
      <io base="0xD8" num="2" type="O"/>
139
      <io base="0xD9" num="1" type="I"/>
140
      <io base="0xDA" num="2" type="O"/> <!-- mirror 1 -->
141
      <io base="0xDB" num="1" type="I"/> <!-- mirror 1 -->
142
      <level_2_via>only_level_1</level_2_via>
143
```
144
3. Only level 1 kanji, no side-effects from attempting to access level 2 I/O ports: (like Panasonic FS-A1FX)
145
```
146
 Kanji I/O Tests 1/9: Kanji Detection v3.1
147
BIOS:月火水木金土日年円時分秒百千万大中小 ひらがな カタカナ
148
                            Romaji ♦♣♥♠
149
Lv1 漢字:月火水木金土日年円時分
150
秒百千万大中小 ひらがな カタカナ
151
Romaji カタカナ Romaji◆★▼▲
152
Greetings! PUTKA
153
NJI“漢字は最高です。”月月日日年年
154
Lv2 漢字:███████████
155
████████████████
156
Lv1/Lv2:●█  c█o█ο█κ█
157
Lv2↔Lv1:█★  █Ⅸ█㎡█=█…
158
       (Previous test) ⇨  ●█
159
 Please share screen pic+model│press a key
160
```
161
```
162
 Kanji I/O Tests 2/9: Interleaving A  v3.1
163
c█o█ο█κ█c█o█ο█κ█
164
c█o█ο█κ█c█o█ο█κ█
165
c█o█ο█κ█c█o█ο█κ█
166
c█o█ο█κ█c█o█ο█κ█
167
c█o█ο█κ█c█o█ο█κ█
168
c█o█ο█κ█c█o█ο█κ█
169
c█o█ο█κ█c█o█ο█κ█
170
c█o█ο█κ█c█o█ο█κ█
171
c█o█ο█κ█c█o█ο█κ█
172
c█o█ο█κ█c█o█ο█κ█
173
174
 Please share screen pic+model│press a key
175
```
176
```
177
 Kanji I/O Tests 3/9: Interleaving B  v3.1
178
c█o█ο█κ█c█o█ο█κ█
179
c█o█ο█κ█c█o█ο█κ█
180
c█o█ο█κ█c█o█ο█κ█
181
c█o█ο█κ█c█o█ο█κ█
182
183
184
185
186
187
188
189
 Please share screen pic+model│press a key
190
```
191
```xml
192
      <io base="0xD8" num="2" type="O"/>
193
      <io base="0xD9" num="1" type="I"/>
194
      <level_2_via>read</level_2_via>
195
```
196
4. Level 1+Level 2 kanji ROM, level 2 determined via write: (like Panasonic FS-A1GT)
197
```
198
 Kanji I/O Tests 1/9: Kanji Detection v3.1
199
BIOS:月火水木金土日年円時分秒百千万大中小 ひらがな カタカナ
200
                            Romaji ♦♣♥♠
201
Lv1 漢字:月火水木金土日年円時分
202
秒百千万大中小 ひらがな カタカナ
203
Romaji カタカナ Romaji◆★▼▲
204
Greetings! PUTKA
205
NJI“漢字は最高です。”月月日日年年
206
Lv2 漢字:尸囗尸匚囗厂冂🐐🦋🌺🪐
207
嗅囑啣漾聒僥僉嗟喇嗷喞嘔啻嘛嗄僮
208
Lv1/Lv2:●劒  c匚o卅ο凵κ冂
209
Lv2↔Lv1:劈★  噬Ⅸ囂㎡嶇=嵎…
210
       (Previous test) ⇨  劒劒
211
 Please share screen pic+model│press a key
212
```
213
```
214
 Kanji I/O Tests 2/9: Interleaving A  v3.1
215
c匚o卅ο凵κ冂c匚o卅ο凵κ冂
216
c匚o卅ο凵κ冂c匚o卅ο凵κ冂
217
匚匚卅卅凵凵冂冂ccooοοκκ
218
匚匚卅卅凵凵冂冂ccooοοκκ
219
匚匚卅卅凵凵冂冂ccooοοκκ
220
匚匚卅卅凵凵冂冂ccooοοκκ
221
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
222
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
223
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
224
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
225
226
 Please share screen pic+model│press a key
227
```
228
```
229
 Kanji I/O Tests 3/9: Interleaving B  v3.1
230
ccooοοκκ匚匚卅卅凵凵冂冂
231
ccooοοκκ匚匚卅卅凵凵冂冂
232
ccooοοκκ匚匚卅卅凵凵冂冂
233
ccooοοκκ匚匚卅卅凵凵冂冂
234
235
236
237
238
239
240
241
 Please share screen pic+model│press a key
242
```
243
```xml
244
      <io base="0xD8" num="2" type="O"/>
245
      <io base="0xD9" num="1" type="I"/>
246
      <io base="0xDA" num="2" type="O"/>
247
      <io base="0xDB" num="1" type="I"/>
248
      <level_2_via>write</level_2_via>
249
```
250
5. Only level 1 kanji, but Level 2 I/O ports also active and with level interlock between writes and subsequent reads; reads from the "other" port than the pair that was last written don't disturb the counter: (like Sanyo PHC-35J)
251
```
252
 Kanji I/O Tests 1/9: Kanji Detection v3.1
253
BIOS:月火水木金土日年円時分秒百千万大中小 ひらがな カタカナ
254
                            Romaji ♦♣♥♠
255
Lv1 漢字:月火水木金土日年円時分
256
秒百千万大中小 ひらがな カタカナ
257
Romaji カタカナ Romaji◆★▼▲
258
Greetings! PUTKA
259
NJI“漢字は最高です。”月月日日年年
260
Lv2 漢字:███████████
261
████████████████
262
Lv1/Lv2:●█  c█o█ο█κ█
263
Lv2↔Lv1:█★  █Ⅸ█㎡█=█…
264
       (Previous test) ⇨  ██
265
 Please share screen pic+model│press a key
266
```
267
```
268
 Kanji I/O Tests 2/9: Interleaving A  v3.1
269
c█o█ο█κ█c█o█ο█κ█
270
c█o█ο█κ█c█o█ο█κ█
271
████████c█o█ο█κ█
272
████████c█o█ο█κ█
273
████████c█o█ο█κ█
274
████████c█o█ο█κ█
275
c█o█ο█κ█████████
276
c█o█ο█κ█████████
277
c█o█ο█κ█████████
278
c█o█ο█κ█████████
279
280
 Please share screen pic+model│press a key
281
```
282
```
283
 Kanji I/O Tests 3/9: Interleaving B  v3.1
284
c█o█ο█κ█████████
285
c█o█ο█κ█████████
286
c█o█ο█κ█████████
287
c█o█ο█κ█████████
288
289
290
291
292
293
294
295
 Please share screen pic+model│press a key
296
```
297
```xml
298
      <io base="0xD8" num="2" type="O"/>
299
      <io base="0xD9" num="1" type="I"/>
300
      <io base="0xDA" num="2" type="O"/>
301
      <io base="0xDB" num="1" type="I"/>
302
      <level_2_via>interlocked_write_read</level_2_via>
303
```
304
6. Level 1+Level 2 kanji ROM, with level interlock between writes and subsequent reads; reads from the "other" port than the pair that was last written don't disturb the counter: (like Sanyo PHC-70FD2)
305
```
306
 Kanji I/O Tests 1/9: Kanji Detection v3.1
307
BIOS:月火水木金土日年円時分秒百千万大中小 ひらがな カタカナ
308
                            Romaji ♦♣♥♠
309
Lv1 漢字:月火水木金土日年円時分
310
秒百千万大中小 ひらがな カタカナ
311
Romaji カタカナ Romaji◆★▼▲
312
Greetings! PUTKA
313
NJI“漢字は最高です。”月月日日年年
314
Lv2 漢字:尸囗尸匚囗厂冂🐐🦋🌺🪐
315
嗅囑啣漾聒僥僉嗟喇嗷喞嘔啻嘛嗄僮
316
Lv1/Lv2:●劒  c匚o卅ο凵κ冂
317
Lv2↔Lv1:劈★  噬Ⅸ囂㎡嶇=嵎…
318
       (Previous test) ⇨  █劒
319
 Please share screen pic+model│press a key
320
```
321
```
322
 Kanji I/O Tests 2/9: Interleaving A  v3.1
323
c匚o卅ο凵κ冂c匚o卅ο凵κ冂
324
c匚o卅ο凵κ冂c匚o卅ο凵κ冂
325
█匚█卅█凵█冂c█o█ο█κ█
326
█匚█卅█凵█冂c█o█ο█κ█
327
█匚█卅█凵█冂c█o█ο█κ█
328
█匚█卅█凵█冂c█o█ο█κ█
329
c█o█ο█κ██匚█卅█凵█冂
330
c█o█ο█κ██匚█卅█凵█冂
331
c█o█ο█κ██匚█卅█凵█冂
332
c█o█ο█κ██匚█卅█凵█冂
333
334
 Please share screen pic+model│press a key
335
```
336
```
337
 Kanji I/O Tests 3/9: Interleaving B  v3.1
338
c█o█ο█κ██匚█卅█凵█冂
339
c█o█ο█κ██匚█卅█凵█冂
340
c█o█ο█κ██匚█卅█凵█冂
341
c█o█ο█κ██匚█卅█凵█冂
342
343
344
345
346
347
348
349
 Please share screen pic+model│press a key
350
```
351
```xml
352
      <io base="0xD8" num="2" type="O"/>
353
      <io base="0xD9" num="1" type="I"/>
354
      <io base="0xDA" num="2" type="O"/>
355
      <io base="0xDB" num="1" type="I"/>
356
      <level_2_via>interlocked_write_read</level_2_via>
357
```
358
*(yes, that's the same port exposure and `level_2_via` as for PHC-35J/PHC-70FD... I won't be surprised if it's easy to add level 2 kanji to those models too)*
359
360
### Part B: Kanji I/O Tests (new tests for non-zero upper address bits and low-port readback)
361
362
If you have a Daewoo CPC-400/400S / X-2/s, it is expected that the test screens in this section will include a lot of incomplete / incorrectly rendered character parts, resembling small noisy shapes. You may safely ignore this section if you are testing on those models.
363
364
Test screen 4 repeats the non-BIOS part of test screen 1 from part A, except that it tries different bit combinations in the normally-ignored upper bits of the character address parts. Test screen 5 repeats test screen 4, but tries to read back the data using the other readback port which is likely to return 0xFF. Test screen 6 repeats test screen 5, but alternates between the normal (odd) and unexpected (even) readback ports on each scanline.
365
366
```
367
 Kanji I/O Tests 4/9: Upper Bit Flips v3.1
368
```
369
*(refer to non-BIOS part of test screen 1 in part A for expected patterns)*
370
```
371
372
 Please share screen pic+model│press a key
373
```
374
```
375
 Kanji I/O Tests 5/9: Lower Readbacks v3.1
376
████████████████
377
████████████████
378
████████████████
379
████████████████
380
████████████████
381
████████████████
382
████████████████
383
████████████████
384
████████████████
385
██████████████
386
387
 Please share screen pic+model│press a key
388
```
389
```
390
 Kanji I/O Tests 6/9: Read Port Flips v3.1
391
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
392
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
393
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
394
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
395
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
396
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
397
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
398
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
399
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
400
▒▒▒▒▒▒▒▒▒▒▒▒▒▒
401
402
 Please share screen pic+model│press a key
403
```
404
405
### Part C: Hanja I/O Tests (new tests for Daewoo CPC-400/CPC-400S Hanja/Hangul ROM)
406
407
If you don't have a Daewoo CPC-400/400S / X-2/s, it is expected that the test screens in this section will include a lot of incomplete / incorrectly rendered character parts, resembling small noisy shapes. You may safely ignore this section if you are testing on models other than those.
408
409
This section includes a small test of BIOS font Hangul rendering. If your machine has a non-Korean BIOS, those parts won't display correctly and that is expected.
410
411
This test exercises the I/O port Hangul/Hanja ROM of the Daewoo CPC-400/CPC-400S. It displays 16x16-dot characters from this 256KB ROM, and also uses 8x8 characters from the BIOS ROM scan-doubled to 8x16. It does not exercise the higher-quality non-I/O port Hangul font data present in this computer. Test screen 7 uses the font normally. Test screen 8 tests different bit combinations in the normally-ignored upper bits of the character address parts written to the I/O ports. Test screen 9 varies the I/O ports used for writing and reading back the data.
412
413
Expected appearance:
414
```
415
 Hanja I/O Tests 7/9: Hanja Detection v3.1
416
BIOS: 한글 자모              ㅎㅏㄴㄱㅡㄹ ㅈㅏㅁㅗ
417
                    "English/Romaja" ♦♣♥♠
418
Daewoo CPC-400 X-II Hangul/Hanja
419
대우 Ⅹ-Ⅱ/s 한글과 한자(漢字):
420
😊︎ 바보라도 열흘 안에 한글을
421
  배울 수 있다는 말이 있죠.ᐟ
422
ㅎㅏㄴㄱㅡㄹ ㅈㅏㅁㅗ ♦♣♥♠
423
“English/Romaja”
424
漢字:月火水木金土日年下上大中小
425
일본어(日本語):ひらがな カタカナ
426
From upper 128K:
427
版荷兌浸豊何浸販罷篇鬪片退評八針
428
 Please share screen pic+model│press a key
429
```
430
```
431
 Hanja I/O Tests 8/9: Upper Bit Flips v3.1
432
Daewoo CPC-400 X-II Hangul/Hanja
433
대우 Ⅹ-Ⅱ/s 한글과 한자(漢字):
434
😊︎ 바보라도 열흘 안에 한글을
435
  배울 수 있다는 말이 있죠.ᐟ
436
ㅎㅏㄴㄱㅡㄹ ㅈㅏㅁㅗ ♦♣♥♠
437
“English/Romaja”
438
漢字:月火水木金土日年下上大中小
439
일본어(日本語):ひらがな カタカナ
440
From upper 128K:
441
版荷兌浸豊何浸販罷篇鬪片退評八針
442
443
444
 Please share screen pic+model│press a key
445
```
446
```
447
 Hanja I/O Tests 9/9: Port Rotations  v3.1
448
Daewoo CPC-400 X-II Hangul/Hanja
449
대█ █-█/s ███ ██(██):
450
█ █보██ 열█ █에 ██을 █
451
█ ██ 수 ██는 ██ ███
452
███ㄱ███ㅈ███ ███♠
453
███g███h███m███”
454
███月███金███下███小
455
███(███):██が█ █タ██
456
█r███u███r███8██
457
█荷███何███篇███評██
458
459
460
 Please share screen pic+model│press a key
461
```
462
```xml
463
      <type>hangul</type>
464
      <io base="0xD8" num="2" type="O"/>
465
      <io base="0xD9" num="1" type="I"/>
466
```