* ローマ字かな変換支援拡張について
                                       Oct 27, 2016
		  K.Ohta <whatisthis.sowhat _at_ gmail.com>

1.これはなにか
　ローマ字かな変換機能を持っていない機種でも、強引にローマ
字かな変換を行なう機能です。

2.どのようにして使うか
　VMの「Emulator」メニューに、"ROMA-KANA Conversion"と言
う項目がある場合、これをチェックしておいた上で、[F12]を押す
毎に【ローマ字変換】(［R］)→【直接入力】の2モードをトグル
動作します。

3.現状の対応機種
・Basic Master Jr
・FM-8/7/77/AV/40/EX
・FP-1100
・FP-200
・MSX 1/2
・MULTI 8
・MYCOM Z80A
・MZ-80B/2200/2500
・PASOPIA/7
・PC-2001(未確認)
・PC-6001/6601(かなキーが違うのでうまく入力できない)
・PC-8201
・PC-8801
・TK-80BS
・X1/Turbo/Z

4.コード表
母音
A : あ
I : い
U : う
E : え
O : お
xa : ぁ
xi : ぃ
xu : ぅ
xe : ぇ
xo : ぉ

母音
k  : か行
s  : さ行
t  : た行
n  : な行
h  : は行
m  : ま行
y  : や行
r  : ら行
w  : わ行
z  : ザ行
j  : ザ行
d  : ダ行
b  : バ行
p  : パ行

その他
*y* : *ャ/ィ/ュ/ェ/ョ (例: pya -> ピャ)
nn  : ン
-   : ー(音引き)
[   : 「
]   :  」
,   : 、
.   : 。
/   : ・(なかぐろ)

5.どのように実装したか
　キーボードから入力する時に、RAWコードをWindowsのVKコード
体系に変換し、それをキューイングしてEmu側のループでキューを
拾う。と言うのが、CSPでのキー入力の流れですが、
この「それをキューイングして」の直前で、VKコードを拾って、
src/romakana.cpp の　alphabet_to_kana()　でローマ字かな変換
して、結果をwchar_t型の変数に入れ、それをEmuにつながるキュー
にキューイングする事で実現しました。
　Emuのループでは、このキューが入っていてなおかつ、オートキー
のキューが空である場合に、オートキーのキューに投げて表示入力
します。
　なお、romakana.cppはwchar_t型かつUTF-8な文字エンコーディン
グで内部処理してますので、C++コンパイラがC++99以降？に対応し
てる必要がありますし、オートキーに投げるときには、然るべき
文字エンコーディングに変換してから投げないとダメです。

いみふめでごめんない(´・ω・｀)

Ohta.
