Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO ■98MULTi CanBeコントロール 対象 PC-9821Cf・Cx・Cb・Cx2・Cb2・Cx3・Cb3・Na12・Na9・Na7・Nb7・Nx 解説 o 98MULTi CanBeでは、各種マルチメディア機能を制御するために特別なI/O ポートがある。主にこのI/Oではリモコンの制御、サウンド機能の制御、 電源切断などを行う。またマルチメディア指向の98NOTEであるPC-9821Na7・Nx も、この部分は98MULTi CanBeをベースとしており、同様のI/Oが存在する。 o 通常このI/Oアドレスは、I/O 0C24h,0C2Bh,0C2Dhにより再配置することが できる。通常、I/O 0F4Ah,0F4Bhに設定されている。 o リモコンからの受信があると、CPUに対して割り込みが発生する。CPUでは、 この割り込みをフックすることでリモコンの状態を監視できる。 o 電源切断の処理を行う。PC-9821Cf・Cx・Cb・Cx2・Cb2・Cx3・Cb3では、 INT 1Fh - Function 98hによる電源切断がサポートされていないので、ソ 電源を切断するためには、直接ハードウェアを操作する必要がある。 関連 I/O 0C24h,0C2Bh,0C2Dh I/O 0F4Ah 名前 リモコン制御[INDEX] 機能 bit 7〜0: レジスタ指定 * I/O 0F4Bhで読み書きするレジスタ番号を指定する 関連 I/O 0F4Bh I/O 0C24h,0C2Bh,0C2Dh I/O 0F4Bh 名前 リモコン制御[DATA] 機能 bit 7〜0: データ指定 * I/O 0F4Ahで指定されたレジスタを読み書きする。 --------+-------------------------------------------------------------- INDEX |用途 --------+-------------------------------------------------------------- 00h |不明 --------+-------------------------------------------------------------- 01h |サウンド割り込みアドレス |[READ/WRITE] | 00h= INT5 | 02h= INT41 | 03h= INT0 | 08h= INT1 | * WindowsSoundSystemで使用する割り込みアドレスが | 設定される |関連 I/O 0F40h bit 5〜3 --------+-------------------------------------------------------------- 02h |不明 | --------+-------------------------------------------------------------- 03h |リモコンリセット |[READ/WRITE] |bit 7〜3: 不明 |bit 2: マイクスルー | 1= マイクスルーする | 0= マイクスルーしない |bit 1: 不明 |bit 0: コントローラリセット | 1= リセットする | 0= リセットしない --------+-------------------------------------------------------------- 04h |ミュートコントロール |[READ/WRITE] |bit 7〜1: 不明 |bit 0: ミュート | 1= ミュートする | 0= ミュートしない | * サウンド出力のミュートをコントロールする --------+-------------------------------------------------------------- 10h |リモコンデータステータス |[READ] |bit 7〜2: 未使用 |bit 1: ビジーフラグ | 1= Reday | 0= Busy |bit 0: ステータス | 1= 受信データあり | 0= 受信データなし | * リモコンからデータの受信があるとセットされ、CPUに | 対して割り込みを発生する。 | I/O 0F4Ah,0F4Bh - 11hから受信コードを2バイトずつ | 引き取ることでクリアされる。 --------+-------------------------------------------------------------- 11h |リモコン受信コード |[READ] | 00000000b(00h)= [^](Ch UP)を押した | 11111111b(FFh)= [^](Ch UP)を押したあと2回目に読まれる | 00000001b(01h)= [v](Ch DOWN)を押した | 11111111b(FEh)= [v](Ch DOWN)を押したあと2回目に読まれる | 00000010b(02h)= [^](VOL UP)を押した | 11111101b(FDh)= [^](VOL UP)を押したあと2回目に読まれる | 00000011b(03h)= [V](VOL DOWN)を押した | 11111100b(FCh)= [V](VOL DOWN)を押したあとに読まれる | 00000100b(04h)= [^](EJECT)を押した | 11111011b(FBh)= [^](EJECT)を押したあと2回目に読まれる | 00000101b(05h)= [》||] を押した | 11111010b(FAh)= [》||] を押したあと2回目に読まれる | 00001001b(09h)= [MUTE] を押した | 11110110b(F6h)= [MUTE] を押したあと2回目に読まれる | 00001010b(0Ah)= [VIDEO] を押した | 11110101b(F5h)= [VIDEO] を押したあと2回目に読まれる | 00001100b(0Ch)= [>>] を押した | 11110011b(F3h)= [>>] を押したあと2回目に読まれる | 00001101b(0Dh)= [<<] を押した | 11110010b(F2h)= [<<] を押したあと2回目に読まれる | 00011101b(1Dh)= [MAIN/SUB]を押した | 11100010b(E2h)= [MAIN/SUB]を押したあと2回目に読まれる | 01000000b(40h)= [↑] を押した | 10111111b(BFh)= [↑] を押したあと2回目に読まれる | 01000001b(41h)= [↓] を押した | 10111110b(BEh)= [↓] を押したあと2回目に読まれる | 01000010b(42h)= [←] を押した | 10111101b(BDh)= [←] を押したあと2回目に読まれる | 01000011b(43h)= [→] を押した | 10111100b(BCh)= [→] を押したあと2回目に読まれる | 01001101b(4Dh)= [SIZE] を押した | 10110010b(B2h)= [SIZE] を押したあと2回目に読まれる | 01001110b(4Eh)= [ESC] を押した | 10110001b(B1h)= [ESC] を押したあと2回目に読まれる | 01001111b(4Fh)= [CR] を押した | 10110000b(B0h)= [CR] を押したあと2回目に読まれる | 01010011b(53h)= [TV] を押した | 10101100b(ACh)= [TV] を押したあと2回目に読まれる | 01011011b(5Dh)= [FREEZE] を押した | 10100010b(A2h)= [FREEZE] を押したあと2回目に読まれる | 01011110b(5Eh)= [CAPTURE] を押した | 10100001b(A1h)= [CAPTURE] を押したあと2回目に読まれる | * リモコンからの受信コードは、各ボタンに割り当てられた | コード番号の形で得られる。 | * 各コードは、2バイトずつ連続して読み込む。2バイト目 | では、1バイト目のビット反転した値が読み出される。 --------+-------------------------------------------------------------- 12h |不明 | --------+-------------------------------------------------------------- 13h |電源コントロール |[WRITE] | 80h,06h,00h,00h,80h,07h,00h,01h,80h,01h,00h,00h | * このバイト列を書き込むと電源を切断する。 | | 80h,05h,00h,00h | * このバイト列を電源起動時に書き込んでいる。 | | | | --------+-------------------------------------------------------------- 14h |■[CANBE] |リモコンが使用する割り込み |[READ/WRITE] | bit 7〜3: 不明 | bit 2: リモコン割り込み | 1= 使用しない | 0= 使用する | bit 1,0: リモコン割り込みアドレス | 11b= INT41 | 10b= INT1 | 01b= INT2 | 00b= INT0 |* リモコンが使用する割り込みアドレスなどを設定する。 +-------------------------------------------------------------- |■[PC-9821Nx] |不明 --------+-------------------------------------------------------------- 30h |CanBe VOL1・2(YMF288出力) L --------+-------------------------------------------------------------- 31h |CanBe VOL1・2(YMF288出力) R --------+-------------------------------------------------------------- 32h |CanBe VOL3・4(LINE入力) L --------+-------------------------------------------------------------- 33h |CanBe VOL3・4(LINE入力) R --------+-------------------------------------------------------------- 34h |不明 --------+-------------------------------------------------------------- 35h |不明 --------+-------------------------------------------------------------- 関連 I/O 0F4Ah I/O 0C24h,0C2Bh,0C2Dh ------------------------------------------------------------------------------- ■テレビチューナボード 対象 PC-9821Cf・Cx・Cb 解説 o PC-9821Cf・Cx・Cbにはテレビ画像のキャプチャリング,オーバーレイ等を 行うための専用テレビチューナボードが標準搭載されている。 関連 INT 0Eh I/O 0960h 名前 TVチューナ制御[DATA] Undocumented 機能 [READ/WRITE] bit 15〜0: データ --------+------------------------------------------------------ レジスタ|内容 --------+------------------------------------------------------ 0000h |フリーズ設定 |bit 15〜1: 不明 |bit 0: フリーズ | 1= フリーズする | 0= フリーズしない --------+------------------------------------------------------ 0001h |不明 --------+------------------------------------------------------ 0002h |不明 --------+------------------------------------------------------ 0003h |キャプチャ範囲指定 |bit 15〜0: スクリーンX座標 --------+------------------------------------------------------ 0004h |キャプチャ範囲指定 |bit 15〜0: スクリーンY座標 --------+------------------------------------------------------ 0005h |キャプチャ範囲指定 |bit 15〜0: スクリーンXサイズ --------+------------------------------------------------------ 0006h |未使用 0007h |未使用 --------+------------------------------------------------------ 0008h |不明Xサイズ --------+------------------------------------------------------ 0009h |不明Xサイズ --------+------------------------------------------------------ 000Ah |不明Yサイズ --------+------------------------------------------------------ 000Bh |不明Yサイズ --------+------------------------------------------------------ 000Ch |未使用 --------+------------------------------------------------------ 000Dh |不明 --------+------------------------------------------------------ 000Eh |未使用 000Fh |未使用 --------+------------------------------------------------------ 0010h |不明 --------+------------------------------------------------------ 0011h |表示位置 |bit 15〜10: 未使用 |bit 9〜0: スクリーン表示位置(X座標) --------+------------------------------------------------------ 0012h |表示位置 |bit 15〜10: 未使用 |bit 9〜0: スクリーン表示位置(Y座標) --------+------------------------------------------------------ 0013h |キャプチャ開始位置(ドット番号) --------+------------------------------------------------------ 0014h |キャプチャ開始位置(ライン番号) --------+------------------------------------------------------ 0015h |表示位置 |bit 15〜10: 未使用 |bit 9〜0: スクリーン表示位置(X座標) --------+------------------------------------------------------ 0016h |表示位置 |bit 15〜10: 未使用 |bit 9〜0: スクリーン表示位置(Y座標) --------+------------------------------------------------------ 0017h |右側マスク開始位置 |bit 15〜10: 未使用 |bit 9〜0: マスク開始位置(X座標) --------+------------------------------------------------------ 0018h |下側マスク開始位置 |bit 15〜10: 未使用 |bit 9〜0: マスク開始位置(Y座標) --------+------------------------------------------------------ 0019h | : |未使用 001Fh | --------+------------------------------------------------------ 0020h |不明 --------+------------------------------------------------------ 0021h |音声制御 |bit 15〜4: 未使用 |bit 3,2: 音声ミュート | 11b= ミュートする | 10b= ミュートする | 01b= ミュートしない | 00b= ミュートする |bit 1,0: 不明 --------+------------------------------------------------------ 解説 o I/O 0962hで指定されたレジスタを読み書きする。 関連 I/O 0962h I/O 0962h 名前 TVチューナ制御[INDEX] Undocumented 機能 [READ/WRITE] bit 15〜0: レジスタ指定 解説 o I/O 0960hで読み書きするレジスタ番号を指定する。 o このポートに対して0000hを書き込んだ直後に読み出しを行ったとき、 正常に0000hが読み込めるかどうかで、ビデオキャプチャボードの存在を 検出することが可能である。 関連 I/O 0960h I/O 0964h 名前 キャプチャデータ Undocumented 機能 [READ] bit 15〜0: データ * キャプチャデータの引き取り 解説 o キャプチャしたデータを引き取る。 関連 I/O 0962h,0960h I/O 0966h 名前 不明 Undocumented 機能 [READ/WRITE] bit 7〜0: 不明 解説 o 詳細不明 関連 I/O 0967h I/O 0967h 名前 不明 Undocumented 機能 [READ/WRITE] bit 7〜0: 不明 解説 o 詳細不明 関連 I/O 0966h