* ローマ字かな変換支援拡張について Oct 27, 2016 K.Ohta 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.