Neko Projectで英語キーボードを使う [PC98]

PC98エミュレーター Neko Project で英語キーボードを使う。

Neko Projectは標準で英語キーボードに対応しているはず?なのですが、私の環境ではどうしても日本語キーボードとして認識されてしまうので、AutoHotkeyでキー割り当てを入れ替えてみることにしました。

○AnyHotkey用定義ファイル

文字キーが英語キーボードの刻印通りに文字入力できるように入れ替えを行っています。機能キーは[右Alt]キーに[変換](XFER)、[右Win]キーに[ひらがな](カナ)を割り当てています。また、N88-BASIC(86)でグラフ文字を入力するためのキー割り当てを行っています。これらのキー割り当てはMS-DOSでは意味を成しません。やむを得ず、一部のキーは入れ替えでなくマクロ(send)としています。これらのキーではリピート入力を正しく処理できません。マクロとしていないキーではCtrl、Alt、Shiftキーを押している場合は入れ替えが無効になります。

;ダイヤテック FKBN104MRL/EFB2(Majestouch NINJA フルサイズ・US配列) PS/2接続
;+ Windows 8 にて動作確認。XPではキーマップが異なるのか、そのまま流用して使うことはできない。
#UseHook
#InstallKeybdHook
#MaxHotkeysPerInterval 200
;RemapGraphKey
;1=グラフ文字キー入れ替え有効
;0=グラフ文字キー入れ替え無効
RemapGraphKey=1
;設定対象プロセスの指定
GroupAdd, JPKEYLAPP, ahk_exe np21nt.exe
GroupAdd, JPKEYLAPP, ahk_exe np2nt.exe
;キー割り当て重視型
#IFWinActive ahk_group JPKEYLAPP
;区分はIBM連文節変換プログラムに基づく(保留)
;CapsLock=英数{vka0sc02a}
;CapsLock::send, {blind}{vkF0sc03a}
;SHIFT+CapsLock=CapsLock
;+CapsLock::send, {blind}{CapsLock}
;Alt+CapsLock=漢字番号
;!CapsLock::send, {blind}{vkF2sc03a}
;ALT+右WIN=カナロック(ローマ字)
;^CapsLock::send, {blind}{VK_KANA}
;#CapsLock::      ; Win+CapsLock
;^!CapsLock::   ; Ctrl+Alt+CapsLock
;^!#CapsLock::   ; Ctrl+Alt+Win+CapsLock
;右WIN=かな
RWIN::send, {vkF2sc070}
;CTRL+右WIN=かな
^RWIN::send, {blind}{vkF2sc070}
;SHIFT+右WIN=カナ
+RWIN::send, {blind}{vkF1sc070}
;ALT+右WIN=カナロック(ローマ字)
!RWIN::send, {blind}{VK_KANA}
;右Alt=変換=XFER
*RAlt::send, {blind}{vk1Csc079}
;IBM連文節変換プログラム
;Shift+右Alt=前候補
;Alt+右Alt=全候補
;設定値を調べる方法:左に押すキー、右はエミュ上で目的のコードが出るキー
;英語キーボードに存在しないキーなら日本語キーボードを持ってきてKeymillで探る
&::^
*^::send,'
*+`::send,{blind}{~}
*`::send,{blind}{"}
@::send,``
*:::
)::(
(::*
*_::send,{blind}+{vke2sc073}
=::send,{blind}_
*+sc027::send,`;
sc027::send,{blind}=
'::send,{blind}&
"::@
;日本語キーボード固有のVK_OEM_102(vke2sc073,\ろ_|)は割り当てない。
;次の行を有効にするとアプリケーションキーにVK_OEM_102を割り当てる。
*appskey::send,{blind}{vke2sc073}
;グラフ文字キー入れ替え
IF RemapGraphKey = 1
{
;以下Alt(GRPH)キーが押された場合のみ入れ替え
!=::'
![::send,{blind}+{vkc0sc01a}
!sc027::+
!'::`;
;以下は日本語配列・英語配列共通で使用可能
;Alt+テンキー/ = GRPH+テンキー,[PC98固有] = 亠
!NumpadDiv::vk6c
;Alt+テンキー* = GRPH+テンキー* = ―
;!NumpadMult::send,{blind}{NumpadMult}
;Alt+テンキー- = GRPH+テンキー+ = ニ
!NumpadSub::NumpadAdd
;Alt+テンキー+ = GRPH+テンキー=[PC98固有] = |
!NumpadAdd::vk92
}
return

グラフ文字のキー割り当て
Image: Key assigns of graphic characters in NEC PC-98
(NEC PC-9801VX ガイドブック P.55 より)

○N88-BASIC(86)キーボードテストプログラム

Image: Testing my PC-98 keyboard in N88-BASIC(86)

キー入力を確かめるためにキーボードテストプログラムを作ってみました。が、キーリピートが正しく動作しない(send)キーは正しく認識できません。NFERキーやvfキーはI/Oポートのキーセンスからは取得できないため、検知できません。
ファイルはこちらに置いてあります。

http://radioc.web.fc2.com/

使用方法

  1. MS-DOSでフォーマットしたFDとN88-日本語BASIC(86)でフォーマットしたFDを用意。
  2. KEYINP.N88 をMS-DOSでフォーマットしたFDに移動。
  3. PC98のMS-DOS上で KEYINP.N88 をFDからHDにコピー。
  4. FDドライブにN88-BASIC(86)フォーマットのFDをセット。
  5. MS-DOS上でFILECONVコマンドを実行。
  6. 2/MS-DOS→N88-BASIC を選択。
  7. MS-DOSのドライブにHDのドライブ文字、N88-BASICのドライブにFDDのドライブ文字を入力。
  8. MS-DOSのファイル名として KEYINP.N88 を選択。
  9. N88-BASICのファイル名は何も入力せずにそのままリターンキーを押す。
  10. 機械語ファイルですか で 2/NO を選択。
  11. SHIFT JISコード変換は で 2/NO を選択。
  12. パラメータを確認して下さい で 1/YES を選択。
  13. 変換は終了しました。別のファイルを変換しますか で 2/NO を選択。
  14. N88-日本語BASIC(86)のシステムディスクをセットしてシステムをリセットする。
  15. DISKモードBASICが起動したら、何も入力せずにリターンキーを2回押す。
  16. 先ほど KEYINP.N88 を入れたN88-BASIC(86)フォーマットのFDをセットする。
  17. RUN "KEYINP.N88" を実行する。
  18. プログラムが走る!!

[EOF]


inserted by FC2 system