このエントリーをはてなブックマークに追加
スポンサーリンク

キーボードBIOS

JKEYB.SYS

DOS/Vモードで日本語キーボードを使うためには、CONFIG.SYSにてJKEYB.SYSを組み込む必要があります。

DEVICE=JKEYB.SYS [オプション]
 オプション
   /101 英語101キー
   /106 日本語106キー
   /AX AXキーボード
   /J31LT J3100ラップトップ(84キー)
   /J31DT J3100デスクトップ(日本語101キー)
   /J31NB J3100ノートタイプ(つまりダイナブック)

オプションを指定しない時や、セーフモードを指定した時は、組み込み時に[漢字]の刻印のあるキーを押すように促されます。東芝製DOS/V以外では、J31DT、J31LT、J31NBのオプションは指定できないかもしれません。
J31LT (84キー)


初期のラップトップタイプ(J-3100GTなど)に搭載されたキーボードです。

スペースを少しでも稼ぐため、右シフトがカナモードでは「ろ」になります。 テンキーはなく、NumLockをする事でフルキーの一部(JKLUIOなど)をテンキーとして使います。ただし、このNumLockの機能を使う事はめったになく、事務用途ではもっぱら別売りのシリアル接続のテンキーを外付けしていました。また、誤ってNumLockを押してしまい「キーボードが壊れた」という問い合わせも多く、ユーザーサポート泣かせでもありました。記号(*や;や:など)の配置は英語キーボードに近いです。
J31DT(日本語101キー)


デスクトップタイプのJ-3300から、J-3100ZS/ZX/ZD、J-3100PVのJモデルで採用されたキーボードです。

右のシフトが「ろ」にはならず、「ろ」のキーは別途設置されています。 記号(*や;や:など)の配置は84キーと同様英語キーボードに近いです。このキーボードに慣れていると、DOS/Vでキーボードドライバーを組み込まれてない状態でも記号(*や;や:など)を間違えずに打てるようになります。 テンキーは独立し、NumLockでフルキーがテンキーになる機能はなくなり、 NumLockを解除するとテンキーがHomeやEndやカーソルキーになります。

[ESC]キーが、FM7やPC9801と同じ位置にあるため、8ビット〜16ビット機の頃からPCを使っている人にはやりやすいです。そのかわり、左上にあるFM7でBreak、PC9801でSTOPの位置にあるキーに何の役割もなく、キートップに何も刻印されてません。
日本語106キー


このキーボードは、東芝機では東芝DOS6.2/V以降のOS(つまり東芝DOS6.2/V、東芝Windows3.1、Windows95)でサポートされました。日英DOS5.0では残念ながらサポートされませんでした。

記号(*や;や:など)、[ESC][CapsLock]などの配置が現在主に使われている109キーと同じになりました。 101キーで[ESC]だったキーは[半角/全角]となり、左上にあるキーは、[ESC]キーになりました。101キーで[CapsLock][カナ]だったキーは左右の[Ctrl]になり、[Ctrl]だったキーが[CapsLock/英数]になりました。(シフトを押さなければ英数、シフトを押せばCapsLockという風に) MS-DOSの頃はCapsLockして常時大文字で入力する人が多かったのですが、このキーが主流になり始めた頃はらCapsLockしない人が一般的になった気もします。

J-3100PV2というDOS/V専用機が出てすぐに、東芝のサービス会社にJ-3100PV2の修理を依頼したところ、 サービスマンがやたら:(コロン)の記号を打ち間違えていたのが印象的でした。 なかなか理屈でわかっていても指が覚えてしまったものは変えられませんで 私もいまだに[ESC]キーを押そうとして[半角/全角]キーを押してしまい、viエディターのInsモードから抜ける場合にいつも苦労します。

カナロックについて

J-3100ではしばらくの間「カナ」ロックLEDが搭載されていました。これにより、国産8ビット機のFM-7や、16ビット機のPC-9801と同様に、カナキーをロックする事によって半角カナを直接入力する事ができました。

キーボードが標準で106キーが搭載されるようになってから、カナロックLEDはなくなりました。これは、ハード的に日本語機能を追加しているJ-3100シリーズとは異なり、他社のDOS/V機は基本的にキーボード以外の追加ハードなしで日本語入力をさせるようにできているため、別途カナロック回路みたいなものを追加する事ができなかったためです。

そこで、$IAS.SYS、 KKCFUNC.SYS、 ATOK8KC.SYS のいずれかのドライバーを組み込む事により、コンソールの最下段を英数モード、カナモードの表示に使い、カナロックの代わりにする事ができます。

カナロックのオン、オフは、$IAS.SYS、KKCFUNC.SYS、ATOK8KC.SYSいずれも同じ割り込みが使えたと思います。

キーボード割り込み INT 16H

キーボード関連のBIOSを呼ぶためには、AHレジスタに機能をセットして、INT 16Hを呼びます。

J-3100(DCGA)モードでは、通常のPC/AT機の機能に加えて、カナロックなどJ-3100独自に拡張された機能が使えます。J-3100独自の機能には、その都度注釈を入れています。
AH 00H キーバッファから1文字読む
キーバッファから1文字取り出し キーバッファが空なら入力があるまで待ちます。
入力 出力
AH 00H AL 文字コード
AH 走査コード
AH 01H キーバッファの調査
入力 出力
AH 01H F
 Zフラグが立っていたらキーバッファ空
 Zフラグが立ってなければキーバッファにキー入力あり
AH 02H キーボードのシフト状況の調査
キーボードのシフト状態を取得します。VEMモードの時はScrollLOCKのところはカナロックになります。
入力 出力
AH 02H AL
 ビット7 INS  
 ビット6 CapsLock  
 ビット5 NumLock  
 ビット4 VGAモード:ScrollLock DCGAモード:カナロック
 ビット3 Alt  
 ビット2 Ctrl  
 ビット1 左Shift  
 ビット0 右Shift
AH 03H オートリピートの設定
入力 出力
AH 03H
AL 05H
BL 1秒当たりにリピートされる数(00H〜1FH)
BH オートリピートするまでの待ち時間(msec)
なし
AH 05H キーバッファーへの書き込み
入力 出力
AH 05H
CL 文字コード
CH 走査コード
00H 機能は正常に終了
01H バッファーが一杯
AH 10H キーバッファから1文字読む
キーバッファから1文字取り出し キーバッファが空なら入力があるまで待ちます。AH 00Hとの違いは、101キー以降で拡張されたキーも読めることです。
入力 出力
AH 10H AL 文字コード
AH 走査コード
AH 12H キーボードのシフト状況の調査
キーボードのシフト状態を取得します。AH02Hとの違いは、101キーから拡張されたキー(SysReq)も読むことができる他、CtrlキーとAltキーの左右別々の状態を取得する事もできます。VEMモードの時はScrollLOCKのところはカナロックになります。
入力 出力
AH 12H AH ステータス1
 ビット7 SysReq  
 ビット6 CapsLock  
 ビット5 NumLock  
 ビット4 ScrollLock
 ビット3 右Alt  
 ビット2 右Ctrl  
 ビット1 左Alt  
 ビット0 左Ctrl

AL ステータス2
 ビット7 INS  
 ビット6 CapsLock  
 ビット5 NumLock  
 ビット4 VGAモード:ScrollLock DCGAモード:カナロック
 ビット3 Alt  
 ビット2 Ctrl  
 ビット1 左Shift  
 ビット0 右Shift
AH 13H 2バイト文字セットの状況モードの設定と読み取り (VGA専用)
$IAS.SYSを組み込んでいる時にシフト状態を設定/変更する事ができます。値を変更する時は、ビット345を保存するためにAX1301Hで今までの状態を読み取ってからOR命令やAND命令で変更したいビットを変更し、AX1300Hを呼びます。

$IAS.SYSではなく、KKCFUNC.SYSやATOK8KC.SYSでも英数シフト/カナシフトの切り替えは有効です。
入力 出力
AH 13H
AL 00H 設定 01H 読み取り
DL
 ビット7   0 非漢字モード 1漢字モード
 ビット6   0 ローマ字オフ 1 ローマ字オン
 ビット2、1 00 英数シフト 01 カタカナ・シフト 10 ひらがなシフト
 ビット0    0 半角 1 全角
この機能はVEMを除くVGAモード専用です。
;---------$IASをカナモードにする
		MOV	AX,1301H
		INT	16H
		OR	DL,00000010B
		MOV	AX,1300H
		INT	16H
$IAS.SYSの最下段の表示の取得/制御(VGA専用)
入力 出力
AH 14H
AL 状態
 00H 表示させる
 01H 消す
 02H 現在の状態の取得
AL 状態
 00H 表示してる
 01H 表示してない
この機能はVEMを除くVGAモード専用です。
BEEPを鳴らす(DCGA専用)
入力 出力
AH F0H
BL 鳴らす長さ (x55msec
なし
この機能はDCGAモード専用です。
キーシフト制御(DCGA専用)
入力 出力
AH F1H
AL
 ビット6 CapsLock
 ビット5 NumLock
 ビット4 カナロック
なし
まずはAH=02でキーシフト状況を読み取ってから、ALレジスタの目的のビットをANDやORで操作した後、この機能を呼んでください。
例)CapsLockをオンにする
MOV	AH,02H
INT	16H
OR	AL,40H
MOV	AH,F1H
INT	16H
この機能はDCGAモード専用です。 VGAモード(VEM除く)では、直接0000:0417H番地にキーシフトのビットを立てることで代用できます。

例)VGAモードでCapsLockをオンにする
MOV     AX,0
MOV     ES,AX
OR      ES:[0417H],BYTE PTR 01000000B
キークリック音の制御(DCGA専用)
入力 出力
AH F2H
AL 00Hオフ 01Hオン
この機能はDCGAモード専用です。
キーデーターのセット(DCGA専用)
入力 出力
AH F5H
AL 00Hオフ 01Hオン
BH 走査コード
BL 文字コード
AX キーバッファにたまってる数 FFFFHでキーバッファフルによる失敗
この機能はDCGAモード専用です。
キーバッファのチェック(DCGA専用)
入力 出力
AH F6H AX キーバッファにたまってる数 FFFFHでキーバッファフル
BX システムコード(下表参照)
システムコード 機種名
3130H
3131H
FC27H
FC2DH
FC2BH
FC2AH
FC26H
FC3FH
FC25H
FC22H
FC4EH
FC44H
FC36H
FC5EH
FC89H
FC86H
FC43H
FC87H
FC88H
FC8DH
FC9FH
FC93H
FC94H
FCAFH
J-3100GT/GTA
J-3100SS/SL/SX DynaBookSS
J-3100SGT
J-3100GX
J-3100GL
J-3100GS
J-3100SGX
J-3100GXS
J-3300/30 J-3100ZS
J-3300/50
J-3100ZX
J-3100GT-XD/XS
J-3100SX-VW
J-3100SL-VW
J-3100S/VX
J-3100PV
J-3100XS
DynaBookEZ486
DynaBookEZ486P
DynaBookV486C/E
DynaBookV486A
DynaBookSS425/433
DynaBookV486F
DynaBookEZ425/EZVision
この機能はDCGAモード専用です。

参考文献
『J-3100解析ハンドブック』 1989年 土屋勝著 ナツメ社
『DOS/Vテクニカル・リファレンス・マニュアル』 1993年 芦達剛著 ソフトバンク
『J-3100シリーズ・テクニカルマニュアル』 1994年 南部武彦著 ソフトバンク
『ATOK読本』 1994年 山田祥平 ジャストシステム
『東芝パソコンハンドブック94年版』 平成6年3月1日
スポンサーリンク