Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO ■CPUが使用するI/O 対象 80286搭載機種,V33A搭載機種(PC-98DO+),V50,V50HL搭載機種 解説 o 80286では数値演算コプロセッサとの通信のためにI/O 00F8〜00FChを使用 する。このため、ユーザーはこの範囲のI/Oアドレスを使用することはでき ない。 o V33Aには最大16MBのアドレス空間が使用できる拡張モードのためのレジスタ がCPUの内部にある。ユーザーはこのI/Oを操作してはいけない。 o V50,V50HLはCPUの内部にいくつかの周辺チップを取り込んでいる。このため これらを制御するためのI/Oアドレスのほかに、これらの周辺回路のさまざま なコンフィギュレーションを行うためのレジスタも存在している。ユーザー はこのI/Oを操作してはいけない。 I/O 00F8〜00FCh(WORD) 名前 NPX(80287)通信用(intel RESERVE) 対象 80286 CPU搭載機 チップ 80287 機能 -----------+----+------------------------------------------------------ I/Oアドレス|幅 |内容 -----------+----+------------------------------------------------------ 00F8h |WORD|CPU←→NPX通信用 00FAh |WORD|CPU←→NPX通信用 00FCh |WORD|CPU←→NPX通信用 00FEh |WORD|リザーブ -----------+----+------------------------------------------------------ 解説 o 80286 CPUは、数値演算コプロセッサ80287との通信のためにI/O 00F8〜00FDhを 使用する。この範囲のI/Oを他のペリフェラルデバイスが使用することは できない。 o 80386 CPUでは、数値演算コプロセッサ80387との通信のためにI/O 800000F8h (32bit)とI/O 800000FCh(32bit)を使用する。なお、このI/Oアドレスは コプロセッサ専用である。 関連 I/O FF00〜FF7Eh(WORD),FF80h(BYTE) 名前 V33A アドレス拡張制御用内部I/Oレジスタ 対象 V33A搭載機(PC-98DO+) チップ V33A(μPD70136A) 機能 -----------+----+---+-------------------------------------------------- I/Oアドレス|幅 |R/W|内容 -----------+----+---+-------------------------------------------------- FF00〜FF7Eh|WORD|R/W|PGR1〜PGR64(ページレジスタ) FF80h |BYTE| R |bit 0: XAM(拡張アドレスモードレジスタ) | | | 1= 拡張アドレスモード(XAモード) | | | 0= 通常アドレスモード(NAモード) -----------+----+---+-------------------------------------------------- 解説 o V33A CPUのアドレス空間拡張機能を制御するためのレジスタ。 関連 I/O FF00〜FFFFh(BYTE) 名前 V50,V50HLシステムI/O領域 対象 V50,V50HL搭載機 チップ V50(μPD70216),V50HL(μPD70216H) 機能 -----------+----+---+-------------------------------------------------- I/Oアドレス|幅 |R/W|内容 -----------+----+---+-------------------------------------------------- FF00〜FFDFh|BYTE| |予約 FFE0h |BYTE|R/W|バンク選択レジスタ *1 FFE1h |BYTE|R/W|バンクアドレスレジスタ *1 FFE2〜FFE8h|BYTE| |予約 FFE9h |BYTE|R/W|ボーレートカウンタ *1 FFEAh |BYTE|R/W|プログラマブルウェイトサイクル数設定レジスタ3 *1 FFEBh |BYTE|R/W|ウェイトI/Oブロック設定レジスタ *1 FFECh |BYTE|R/W|ウェイトサブメモリブロック設定レジスタ *1 FFEDh |BYTE|R/W|拡張ウェイトブロック選択レジスタ *1 FFEE〜FFEFh|BYTE| |予約 FFF0h |BYTE|R/W|タイマクロック選択レジスタ FFF1h |BYTE|R/W|スタンバイコントロールレジスタ *1 FFF2h |BYTE|R/W|リフレッシュコントロールレジスタ FFF3h |BYTE| |予約 FFF4h |BYTE|R/W|プログラマブルウェイトメモリ領域設定レジスタ FFF5h |BYTE|R/W|プログラマブルウェイトサイクル数設定レジスタ1 FFF6h |BYTE|R/W|プログラマブルウェイトサイクル数設定レジスタ2 FFF7h |BYTE|R/W|システムコントロールレジスタ *1 FFF8h |BYTE|R/W|SCUロウアドレスレジスタ FFF9h |BYTE|R/W|TCUロウアドレスレジスタ FFFAh |BYTE|R/W|ICUロウアドレスレジスタ FFFBh |BYTE|R/W|DMAUロウアドレスレジスタ FFFCh |BYTE|R/W|オンチップペリフェラルハイアドレスレジスタ FFFDh |BYTE|R/W|オンチップペリフェラルセレクションレジスタ FFFEh |BYTE|R/W|オンチップペリフェラルコネクションレジスタ FFFFh |BYTE| |予約 -----------+----+---+-------------------------------------------------- *1: V50(μPD70216)では予約 解説 o V50,V50HL CPU内蔵ペリフェラルを制御するためのレジスタ。 関連 ■CPU周辺が使用するI/O 解説 o 80286以上のCPU搭載機では、CPUのリセットをおこなうためにI/Oポートを 使用する。CPUのリセット以外にも1MB以上のメモリ空間へのアクセスを 行うためにA20ラインの有効にする操作などもI/Oポートを使用して行われる。 ------------------------------------------------------------------------------- I/O 00F0h 名前 マシンステータス読み出し/CPUシャットダウン 対象 80286以上のCPUを搭載したマシン(ITF搭載機) 機能 [READ] マシン・ステータス読み出し bit 7: 姉妹機判定■[PC-9801NA,NA/C] 1= PC-9801NA 0= PC-9801NA/C bit 7: 姉妹機判定■[PC-9821modelS1,S2] 1= PC-9821modelS1 0= PC-9821modelS2 bit 7: 姉妹機判定■[PC-9821CemodelS1,S2] 1= PC-9821CemodelS1 0= PC-9821CemodelS2 bit 7: 姉妹機判定■[PC-9821Xt・Xa] 1= PC-9821Xt 0= PC-9821Xa bit 7: CPU速度判定■[PC-9821Ap・As・Ae・Af] 1= CPU MODE is High/Low 0= CPU MODE is Middle bit 6: ODPソケットステータス■[PC-9821Ts] 1= ODPあり 0= ODPなし bit 6: 内蔵タイプ(SCSI)HDDステータス ■[PC-9801RA21・RS・DA・DS・DX・ES・FA・FS・FX PC-9821初代・Ap・As・Ae・Ce・Af・Ap2・As2・An・Ap3・As3] 1= 内蔵55タイプHDDなし 0= 内蔵55タイプHDDあり bit 5: 内蔵タイプ(SASI,IDE)HDDステータス ■[PC-9801RA21・RS・DA・DS・DX・ES・EX,PC-98DO+ 98NOTE,PC-9821,PC-9801BA・BX・BA2・BS2・BX2・BA3・BX3・BX4] 1= 内蔵27タイプHDDなし 0= 内蔵27タイプHDDあり bit 4: 不明 bit 3: 内部増設RAMアクセス 1= 標準内蔵または拡張スロットメモリ 0= 内部増設メモリ * 直前のRAMアクセスが内部増設RAMかどうかを示す。 bit 2: リフレッシュモード 1= 通常リフレッシュ 0= 高速リフレッシュ bit 1: CPUモード 1= V30 0= 80286/80386 * I/O 00F0h bit 0に設定された値を示す。 bit 0: 内部RAM/拡張スロットRAM判別 1= 内部メモリ 0= 拡張スロットメモリ * 直前のRAMアクセスが内部RAMへのアクセスであったかどうかを 示す。 [WRITE] CPUシャットダウン bit 7〜3: 未使用 bit 2: リフレッシュモード選択? 1= 通常リフレッシュ(V30選択時) 0= 高速リフレッシュ(80286/80386選択時) bit 1: 不明 1= V30選択時 0= 80286/386選択時 bit 0: CPUモード選択 1= V30選択 0= 80286/386選択 * 出力する値によって80286(386)とV30の切り換えが行える。 そのときCPU(NDP)のリセット端子がアクティブに、A20はマスク 状態になる。ここで設定された値は、I/O 00F0h bit 1より読み 出される。 解説 関連 0000:0596h bit 0 I/O 00F0h I/O 00F1h 名前 IDEポートF/Fリセット Undocumented 対象 PC-9821Xa10・Xa9・Xa7・Xe10,PC-9801BX4 機能 [READ] なし [WRITE] bit 7〜0: 任意 開設 o プライマリとセカンダリ2つのIDEポートに、マスタ/スレーブでIDEデバイス を接続できる機種で、それぞれのIDEポートにデバイスが接続されているか どうか調べるのに用いられる。 o このポートに任意の値を書き込んだ後I/O 00F0hを2回連続して読み出しを おこなったとき、1回目の読み出しでプライマリIDE、2回目の読みだしでセ カンダリIDEの情報が同じbit 5から取得できる。 関連 I/O 00F0h bit 5 I/O 00F2h 名前 CPU A20マスク解除 対象 80286以上のCPU搭載機 機能 [READ] bit 7〜2: 未使用 bit 1: 不明 bit 0: A20状態■[除くH98] 1= A20マスク状態 0= A20マスク解除状態 [WRITE] CPU A20マスク解除 解説 o 任意の値を出力するとCPUのアドレスバスA20のマスクが解除される。 A20をマスクするには00F6hか00F0hに出力する。 関連 I/O 8B1Eh bit 6 I/O 00F4h 名前 DMAモード選択 Undocumented 対象 PC-9801DA以降 機能 [READ] 不明 [WRITE] bit 7〜0: DMA速度設定 00000100b= DMA速度互換 00000101b= DMA速度高速 解説 o DMAコントローラのクロックを選択する 関連 I/O 861Eh bit 4 I/O 00F6h 名前 A20ライン制御 対象 386以上のCPU搭載機 機能 [READ] bit 7,6: 不明 bit 5: 不明 bit 4: 内蔵HDD DMAch設定■[PC-98RLを除く] 1= ch0 0= ch1 関連 I/O 7FDBh bit 4■[PC-98RL] bit 3: 不明 bit 2: 不明 bit 1: NMI禁止/許可状態■[PC-H98を除く] 1= 許可 0= 禁止 bit 0: A20マスク状態 1= A20はマスクされている 0= A20はマスクされていない [WRITE] bit 7〜0: 各種設定 00000001b= 不明■[PC-9801NA] 0000001nb= CPUのアドレスバスA20のマスク制御■[XL^2以降の386機] 0(02h)= A20マスク解除 1(03h)= A20マスク設定 * OUT F6h,02h と OUT F2h,XXh の動作は同じ。 0n000100b= 内蔵SCSI I/Fスロットが使用するDMAチャネル指定 1(44h)= SCSI I/FスロットでDMA #1を使用 0(04h)= SCSI I/FスロットでDMA #0を使用 * システムセットアップメニューの設定を書き込む 0000010nb= 不明 1n100000b= 8x1Eh ソフトウェアディップスイッチ切り替え 1(E0h)= ディップスイッチ表バンク指定 0(A0h)= ディップスイッチ裏バンク指定 * I/O 841E〜8F1Ehのソフトウェアディップスイッチは、 1つのI/Oアドレスにそれぞれ裏表2組ずつ割り当てられ ている。裏表の選択方法は機種によって異なるが、 I/O 00F6h - A0h,E0hを用いて選択する機種もある。 解説 u テクニカルデータブックに描かれている方法ではA20ラインのON/OFFが出 来ない。 関連 0000:0484h bit 7,6 I/O 00F0h I/O 00F2h I/O 861Eh bit 2 I/O 841E〜8F1Eh(表,裏) I/O 0431h 名前 電源,LED制御等 Undocumented 対象 PC-H98 機能 [READ] bit 7: 電源OFF禁止状態 1= 電源OFF禁止中 0= 電源OFF許可中 bit 6〜0: 不明 [WRITE] bit 7,3: 電源制御 11b= 強制的に電源OFFする 10b= 電源SWによる電源OFF禁止 0xb= 電源SWによる電源OFF許可 bit 6〜4: 不明 bit 2: 本体HDDアクセスLED制御 1= 点灯 0= 消灯 bit 1: 不明 bit 0: 本体電源LED制御 1= 点灯 0= 消灯 解説 o 電源と本体LEDの制御を行う。 関連 INT 1Fh - Function 98h I/O 0534h 名前 不明 Undocumented 対象 PC-9821Ap2・As2・Bp・Bs・Be・Bf・Cs2・Ce2・Ts,PC-9801BA2・BS2・BX2・BA3・BX3・BX4 機能 [READ/WRITE] bit 7: CPU外部クロック■[PC-9821Bp・Bs・Be・Cs2・Ce2] 1= 33MHz 0= 25MHz bit 6〜4: 未使用 bit 3: 不明 bit 2: テキストVRAMウェイト? 1= ウェイトなし 0= ウェイト挿入 bit 1: 不明 bit 0: MIDDLE,LOWモードフラグ 1= MIDDLE,LOWモード 0= HIGHモード 解説 o 詳細不明 I/O 9892h 名前 CPUウェイト調整 Undocumented 対象 PC-9801DA・DS・DX・FA・FS・FX・BA・BX・BA2・BS2・BX2・BA3・BX3 98NOTE(PC-9801N・NV・NL,PC-9821Np・Ns・Ne2・Nd・Es・Ld・Lt・Nf・Nm除く) PC-H98, PC-9821 機能 [READ/WRITE] bit 7〜4: 未使用 bit 3〜0: CPUウェイト値(下位4bit) 解説 o CPUの動作速度を128段階で設定する。0000000bのとき最高速。 o I/O 9894h bit 3が0のとき無効。 関連 I/O 9894h bit 3 I/O 9894h bit 2〜0 I/O 9894h 名前 CPUウェイト調整 Undocumented 対象 PC-9801DA・DS・DX・FA・FS・FX・BA・BX・BA2・BS2・BX2・BA3・BX3 98NOTE(PC-9801N・NV・NL,PC-9821Np・Ns・Ne2・Nd・Es・Ld・Lt・Nf・Nm除く) PC-H98, PC-9821 機能 [READ/WRITE] bit 7〜4: 未使用 bit 3: CPUウェイト有効 1= ウェイトを挿入する 0= ウェイトを挿入しない bit 2〜0: CPUウェイト値(上位3bit) 解説 o CPUの動作速度を128段階で設定する。0000000bのとき最高速。 o bit 3が0のとき無効。 関連 I/O 9892h bit 4〜0 I/O 00F0h bit 0 I/O 9896h 名前 CPUキャッシュ制御 Undocumented 対象 PC-H98 機能 [READ] 不明 [WRITE] bit 7〜0: キャッシュ制御 00h= キャッシュ有効 04h= キャッシュ有効 解説 o キャッシュを制御する。 o 詳細不明