Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO ■システムポート 対象 全機種 解説 o システムポートは、16本の入力信号線、8本の出力信号線から構成されており、 DIP SW,RS-232C信号線,メモリパリティエラー状態の取得や、ブザーON/OFF, RS-232Cの割り込み発生要因の選択などのために使用する。 o システムポートは、1個の8255A(相当品)を使用している。 o システムポートが使用するI/Oアドレスは以下の通り。 -----------+----+---+-------------------------------------------------- I/Oアドレス|幅 |R/W|内容 -----------+----+---+-------------------------------------------------- 0031h |BYTE|R/W|8255A PORT A リード/ライトデータ 0033h |BYTE|R/W|8255A PORT B リード/ライトデータ 0035h |BYTE|R/W|8255A PORT C リード/ライトデータ 0037h |BYTE| W |8255A コントロールレジスタ -----------+----+---+-------------------------------------------------- 関連 I/O 0030h I/O 0032h I/O 0050h I/O 0052h I/O 0031h 名前 8255A PORT A リード/ライトデータ 対象 全機種 チップ 8255A相当 機能 [READ] PORT Aリード bit 7: DIP SW 2-8 bit 6: DIP SW 2-7 bit 5: DIP SW 2-6 bit 4: DIP SW 2-5 bit 3: DIP SW 2-4 bit 2: DIP SW 2-3 bit 1: DIP SW 2-2 bit 0: DIP SW 2-1 1= OFF 0= ON [WRITE] PORT Aライト ■[PC-98LT・HA,PC-H98,PC-9821Ap・As・Ae以外] 無動作(モード0入力に設定されているため) ■[PC-98LT・HA,PC-H98,PC-9821Ap・As・Ae] PORT Aの値を設定 [Undocumented] 解説 o PC-9800本体のDIP SW 2の状態を示す。 o DIP SWの一部または全部がソフトウェアDIP SWになっている機種があるが、 ハードウェアDIP SWの機種と同じように、このポートから設定状態を読む ことができる。 o PC-98XAでは、このポートに接続されているDIP SWの名称はDIP SW 1-1〜1-8。 o PC-98LT・HAでは、bit 4のみ使用する。PC-98LTはswitch.exeで、PC-98HAは システムメニュー(CTRL+GRPH+HELPで起動)でbit 4の状態を変更可能。 o PC-98LT・HA,PC-H98,PC-9821Ap・As・Ae以外では、8255AのPORT Aを 「モード0 入力」に設定する。 u PC-98LT・HA,PC-H98,PC-9821Ap・As・Aeでは、8255AのPORT Aをモード0出力に 設定する。DIP SW 2の状態を保持する8ビット分のRAMとして使用する。起動時 に、バックアップされたメモリからソフトウェアDIP SWの設定内容をPORT A に書き込む。 これらの機種では、PORT Aは常に書き込み可能なので、不用意に書き換えを 行うと、DIP SW 2の設定を正しく読み出せなくなる。 o PC-98LT・HAはメモリスイッチ10hにソフトウェアDIP SWの設定内容を 保持している。通常111x0011bを示す。bit 4はユーザが変更可能。 関連 DIP SW 2-1〜2-8 I/O 0033h 名前 8255A PORT B リードデータ 対象 全機種 チップ 8255A相当 機能 [READ] PORT Bリード bit 7: CI# - RS-232CのCI信号線の状態■[PC-9801初代を除く] 1= OFF 0= ON * PC-9801初代では未定義 関連 I/O 0030h,0032h bit 6: CS# - RS-232CのCS信号線の状態 1= OFF 0= ON 関連 I/O 0030h,0032h bit 5: CD# - RS-232CのCD信号線の状態 1= OFF 0= ON 関連 I/O 0030h,0032h bit 4: INT3 - 拡張バスのINT3信号線の状態■[ノーマル] 1= INT3信号がアクティブ 0= INT3信号がインアクティブ 関連 INT 11h bit 3: CRTT - CRTタイプ■[ノーマル] 1= 高解像度(DIP SW 1-1 ON) 0= 標準解像度(DIP SW 1-1 OFF) * ハイレゾ兼用機,PC-H98,ラップトップ,ノート,その他デジタル RGB出力を持たない機種では、標準解像度ディスプレイが使用でき ないため1に固定。 関連 I/O 006Eh DIP SW 1-1 bit 4,3: SHUT0,1 ■[ハイレゾ] * システムポートPORT C bit 7,5に接続されている。テクニカル データブックの一部に、INT3,CRTTと兼用されているような記述が あるが、ハイレゾモードのときは常にSHUT0,1として機能している 模様。 関連 I/O 0035h bit 7,5 bit 2: IMCK - 本体内メモリのパリティエラー発生状態 1= あり 0= なし 関連 I/O 0050h,0052h INT 02h bit 1: EMCK - 拡張スロットに増設したメモリのパリティエラー発生状態 1= あり 0= なし 関連 I/O 0050h,0052h INT 02h bit 0: CDAT - カレンダ時計の読み出しデータ * カレンダ時計LSIのデータアウト端子の読み出し用 関連 I/O 0020h [WRITE] PORT Bライト 無動作 解説 o 8255AのPORT Bをモード0入力に設定して使用する。 o PC-H98では、パリティエラー発生時にこのポートをリードすると、 bit 2,1がクリアされる。 関連 I/O 98F0h I/O 0035h 名前 8255A PORT C リード/ライトデータ 対象 全機種 チップ 8255A相当 機能 [READ/WRITE] PORT Cリード/ライト bit 7: SHUT0 - シャットダウンフラグ0■[80286以降のCPU搭載機] 関連 I/O 0033h bit 4 I/O 00F0h bit 6: PSTBM - プリンタのPSTB#信号のマスク■[PC-9801初代以外] 1= マスクする 0= マスクしない * PC-9801初代では未使用。I/O 0094h bit 4で制御する。 関連 I/O 0094h bit 4 bit 5: SHUT1 - シャットダウンフラグ1■[80286以降のCPU搭載機] 関連 I/O 0033h bit 3 I/O 00F0h bit 5: ROMドライブ書き込み許可■[PC-98LT・HA] ■Undocumented 1= ROMドライブ書き込み許可 0= ROMドライブ書き込み禁止 関連 INT 1Fh - Function 95h bit 4: MCHKEN - RAMのパリティチェック 1= 有効 0= 無効 * PC-9801Uでは未使用。 PC-H98では常に1と同等の動作。 関連 I/O 0050h,0052h,98F0h bit 3: BUZ - ブザー 1= 停止 0= 鳴動 * 内蔵のビープ音のON/OFFを行う。 関連 I/O 0073h,3FDBh bit 2: TXRE - RS-232Cの8251AのTXRDYによる割り込み要求 1= する 0= しない 関連 I/O 0030h,0032h bit 1: TXEE - RS-232Cの8251AのTXEMPTYによる割り込み要求 1= する 0= しない 関連 I/O 0030h,0032h bit 0: RXRE - RS-232Cの8251AのRXRDYによる割り込み要求 1= する 0= しない 関連 I/O 0030h,0032h 解説 o 8255AのPORT Cをモード0出力に設定して使用する。I/O 0037h(コントロール レジスタ)にコマンドを与えることで、ビット毎にセット/リセットすることも 可能。 o 80286以降のCPU搭載機では、bit 7,5のSHUT0,SHUT1ポートの状態で、 I/O 00F0hにOUTしたあとの動作が変化する。 -----+-----+--------------------------------------------------- SHUT0|SHUT1|動作 -----+-----+--------------------------------------------------- 1 | 1 |リセット動作(ITF,BIOSが初期化動作を行う) -----+-----+--------------------------------------------------- 1 | 0 |設定禁止(画面にSYSTEM SHUTDOWNを表示して停止) -----+-----+--------------------------------------------------- 0 | X |CPUリセット後、プログラム実行を継続する。 | |ITFは以下のような処理を行うので、ユーザプログラムは | |予め戻りアドレスをPUSHしたあと、0000:0404h(DWORD)に | |SS:SPを保存しておく。 | |SS←[0000:0406h] | |SP←[0000:0404h] | |RETF -----+-----+--------------------------------------------------- 関連 I/O 0037h 名前 コントロールレジスタ 機能 [READ] なし [WRITE] コントロールレジスタライト [PORT C(I/O 0035h) bit 0〜7制御コマンドの一覧] -------+--------------------------------------------------------------- 出力値 |動作 -------+--------------------------------------------------------------- 00h,01h|RS-232Cの8251AのRXRDYによる割り込み要求 00h=しない,01h=する 02h,03h|RS-232Cの8251AのTXEMPTYによる割り込み要求 02h=しない,03h=する 04h,05h|RS-232Cの8251AのTXRDYによる割り込み要求 04h=しない,05h=する 06h,07h|ブザー 06h=鳴動,07h=停止 08h,09h|RAMのパリティチェック 08h=無効,09h=有効 0Ah,0Bh|SHUT1 0Ah=0,0Bh=1 0Ch,0Dh|プリンタのPSTB#信号のマスク 0Ch=マスクしない,0Dh=マスクする 0Eh,0Fh|SHUT0 0Eh=0,0Fh=1 -------+--------------------------------------------------------------- 解説 o 8255Aのコントロールレジスタ。モード設定や、PORT C(I/O 0035h)のビット 毎の操作を行うことができる。詳細は8255Aのデータシートを参照。 関連