Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO ■テキストGDC制御 対象 ノーマル,ハイレゾ チップ μPD7220,μPD7220A,μPD72020 解説 o PC-9800シリーズではテキスト画面とグラフィック画面の表示に2つのGDC を使用している。このうちテキスト画面を扱うGDCはマスタ動作を行い、 CRTの同期信号の生成を行い o PC-9801初代・E・F・M・U・VF・VM2ではμPD7220、PC-H98,PC-9821,PC-98GS, PC-9801FA・NS/T以降のPC-9801シリーズではμPD72020、それ以外のPC-9801 シリーズではμPD7220Aが使用されている。基本的なコマンドは共通である。 o PC-9801初代・Eは、標準状態では漢字ROMを搭載しておらずテキストVRAMの 奇数アドレスにはメモリが存在していない。 o 詳細はGDCのデータシート参照。 関連 A000:0000〜7FFFh I/O 0060h 名前 テキストGDCステータスリード テキストGDCパラメータライト チップ GDC 機能 [READ] bit 7: LIGHT PEN DETECT bit 6: HORIZONTAL BLANK bit 5: VERTICAL SYNC bit 4: DMA EXECUTE bit 3: DRAWING bit 2: FIFO EMPTY bit 1: FIFO FULL bit 0: DATA READY [WRITE] bit 7〜0: GDCパラメータライト 解説 o テキストGDCのステータス読みだし、およびパラメータの出力を行う。 o 詳細はμPD7220のデータシート参照。 関連 I/O 0062h I/O 0062h 名前 テキストGDCデータリード テキストGDCコマンドライト チップ GDC 機能 [READ] bit 7〜0: GDCデータリード [WRITE] bit 7〜0: GDCコマンドライト --------+---------------------------- コマンド|名前 --------+---------------------------- 00h |RESET1 01h |RESET2 05h |STOP2 09h |RESET3 0Ch |STOP1 0Dh |START 0Eh,0Fh |SYNC 20〜3Fh |WRITE,DMAW 46h |ZOOM 47h |PITCH 49h |CSRW 4Bh |CSRFORM 4Ch |VECTW 68h |TEXTE 6Bh |START 6Ch |VECTE 70〜7Fh |SCROLL,TEXTW 6Eh |SLAVE 6Fh |MASTER A0〜BFh |READ,DMAR C0h |LPEN E0h |CSRR 4Ah |MASK --------+---------------------------- * 全てのコマンドが使用できるわけではない。 解説 o テキストGDCのデータ読みだし、およびコマンドの出力を行う。 o 詳細はμPD7220のデータシート参照。 関連 I/O 0060h I/O 0064h 名前 VSYNC割り込みトリガ 対象 ノーマル,ハイレゾ 機能 [READ] なし [WRITE] bit 7〜0: 任意 解説 o 任意の値を出力すると、次のVSYNC開始時にINT 0Ah割り込みを1回 発生する。 u VSYNC割り込みのレートは画面モード等に依存する。 u INT 18hのいくつかのファンクションは、VSYNC割り込みを止める。 そのようなファンクションを実行したあとには、このポートに任意の値を 出力してVSYNC割り込みを再起動させる必要がある。 関連 INT 18h - Function 2Ah INT 18h - Function 30h I/O 0002h bit 2 I/O 0064h I/O 498Eh bit 0■[PC-9801NS/R・P・NL/R] I/O 0066h 名前 テキスト画面輝度 対象 不明 機能 [READ/WRITE] bit 7〜0: 詳細不明 解説 o 詳細不明 関連 I/O 0068h 名前 モードF/Fレジスタ1 対象 ノーマル,ハイレゾ 機能 [READ]■[PC-H98, PC-9821, PC-9801BA2・BS2・BX2・BA3・BX3・BX4・NS/A bit 7: KAC Mode読みだし 0= コードアクセス 1= ドットアクセス bit 6: NVMW PERMIT読みだし 0= 書き込み禁止 1= 書き込み許可 bit 5: 未使用 bit 4: 未使用 bit 3: Column WIDTH読みだし 0= 80桁 1= 40桁 bit 2: GPAPHIC Mode読みだし 0= カラー 1= モノクロ bit 1: 未使用 bit 0: ATR SEL読みだし 0= バーチカルライン 1= 簡易グラフ [WRITE] ライトモードレジスタ1 bit 7〜4: 未使用(常に0000bにする) bit 3〜1: ADR2〜0 bit 0: DT --------------------------------------------------------------- 0000000nb: ATR SEL テキスト画面アトリビュートbit 4機能■[ノーマル] 0(00h)= バーチカルライン 1(01h)= 簡易グラフィック * テキスト画面のアトリビュートbit 4の機能を設定する。 簡易グラフィックモードは、PC-8001互換グラフィック 画面で使用する。 u Windows95では簡易グラフィックモードはサポートされ ない。 --------------------------------------------------------------- 0000001nb: GPAPHIC Mode 標準グラフィックスモードのカラーモード選択■[ノーマル] 0(02h)= カラー 1(03h)= モノクロ * 200ラインモード時のグラフィックス画面について設定 する。 関連 I/O 09A0h - 01h --------------------------------------------------------------- 0000010nb: Column WIDTH テキスト画面桁数■[ノーマル] 0(04h)= 80桁 1(05h)= 40桁 --------------------------------------------------------------- 0000011nb: FONT SEL テキスト画面文字フォント■[ノーマル] 0(06h)= 6x8ドット(CRT解像度200ライン時) 1(07h)= 7x13ドット(CRT解像度400ライン時) * CRT解像度400ライン時に6x8ドットフォントに切り換える こともできる。このとき、テキスト画面の解像度が縦200 ラインになり、ANK文字は6x8ドットフォントで表示され る。2バイト文字は上半分だけが表示される。 --------------------------------------------------------------- 0000100nb: GRP Mode グラフィック画面奇数ラスタ表示■[ノーマル] 0(08H)= 奇数ラスタを表示する 1(09h)= 奇数ラスタを表示しない --------+-------+------------------------------ CRT |グラフィック| 解像度 |解像度 |奇数ラスタ --------+-------+------------------------------ 200ライン |200ライン |表示する (OUT 68h,08h) 400ライン |200ライン |表示しない (OUT 68h,09h) 400ライン |400ライン |表示する (OUT 68h,08h) --------+-------+------------------------------ * 奇数ラスタを表示しないにすると、偶数ラスタのみグラ フィックデータが表示され、奇数ラスタは黒くなる。 PC-8801と互換の表示をするため。 * CRT解像度400ライン,グラフィック解像度200ライン時に 0(08h)に設定すると、黒い奇数ラスタのかわりに上のラ スタと同じデータが2ライン分ずつ表示されるようになる。 これはGDCがCSRFORMコマンドで縦に2倍に拡大して出力し ているためである。 関連 I/O 09A0h - 02h --------------------------------------------------------------- 0000101nb: KAC Mode 漢字アクセス■[ノーマル(PC-9801初代を除く),ハイレゾ] 0(0Ah)= コードアクセス 1(0Bh)= ドットアクセス * ドットアクセスモードに設定すると、テキスト画面で漢字 を表示することができない。そのかわり、垂直同期期間中 に限らず、漢字CGからフォントを読み出すことができる。 * コードアクセスモードに設定すると、テキスト画面で漢字 を表示できる。そのかわり、垂直同期期間中に限り、漢字 CGからフォントを読み出すことができる。 * PC-9801初代はドットアクセスモードに設定できない。 常にコードアクセスと同じ状態。 関連 INT 18h - Function 0Ah INT 18h - Function 0Bh 0000:053Ch bit 3■[ノーマル] 0000:0546h bit 3■[ハイレゾ] --------------------------------------------------------------- 0000110nb: NVMW PERMIT メモリスイッチのライトプロテクト 0(0Ch)= 書き込み禁止 1(0Dh)= 書き込み許可 * テキストVRAMセグメントの3FE2〜3FFEhにあるメモリス イッチへの書き込みを許可/禁止するフラグ。 関連 A000:3FE2〜3FFEh■[ノーマル] E000:3FE2〜3FFEh■[ハイレゾ] --------------------------------------------------------------- 0000111nb: DISP ENABLE 画面表示のON/OFF 1(0Fh)= 表示可とする 0(0Eh)= 全ての画面を表示しない * テキストとグラフィック両方の画面表示を制御する。 関連 I/O 09A0h - 03h --------------------------------------------------------------- 解説 o 画面表示関係の各種機能を制御する。 o 簡易グラフ、モノクログラフィックス、40桁モード等は、使用しないことが 推奨されている。これらはWindowsのDOS互換ボックス内ではサポートされて いない。 u I/O 006Ahの一部の設定は、I/O 09A0hを通して読み出すことができる機種が ある。 関連 I/O 09A0h I/O 006Ah 名前 モードF/Fレジスタ2 対象 16色表示可能機以降など 機能 [READ]■[PC-H98,PC-9821,PC-9801BA2・BS2・BX2・BA3・BX3・BX4・NS/A・NL/A] bit 7〜5: 未使用 bit 4: 罫線接続状態 1= 罫線を接続する 0= 罫線を接続しない * I/O 006Eh - 1Eh,1Fhの設定が読み出せる bit 3〜1: 未使用 bit 0: I/O 006Ehマスク 1= マスクする 0= マスクしない * I/O 006Eh - 02h,03hの設定が読み出せる [WRITE] bit 7〜1: モードF/F番号選択 bit 0: モードF/F状態 -------------------------------------------------------------- 0000000nb: 標準グラフィックスモードの8/16色設定[ノーマル] 0(00h)= 8色 1(01h)= 16色 * 16色モードはPC-9801初代・E・F・Mには存在しない。 ハイレゾは常に16色モード。 関連 I/O 09A0h - 04h -------------------------------------------------------------- 0000010nb: EGCモード(*1) 0(04h)= 互換(GRCG)モード 1(05h)= 拡張(EGC)モード * 拡張モードから互換モードに変更する時は、必ず I/O 04A0hにFFF0hをセットしなければならない。 * GDC描画中にモード変更してはならない。 * EGCはXA以外のハイレゾ,V30HL,V33A,286以降のCPUを 搭載したノーマルに搭載されている。 関連 0000:0495h 0000:054Dh bit 6 I/O 007Ch I/O 04A0〜04AFh I/O 09A0h - 07h I/O EE8Eh -------------------------------------------------------------- 0000011nb: (*1)のF/F変更 0(06h)= 禁止 1(07h)= 許可 関連 I/O 09A0h - 08h -------------------------------------------------------------- 0000100nb: 不明(Undocumented) ■[PC-9821Ce・Ne・Af・Ap2・As2・Cs2・Ce2・An] 関連 I/O 006Ah - 46h,47h -------------------------------------------------------------- 0000111nb: マルチメディアアーキテクチャ制御(Undocumented) ■[PC-98GS] 0(0Eh)= ディセーブル 1(0Fh)= イネーブル 関連 INT 1Fh - Function 00h INT 1Fh - Function 01h 0000:0458h bit 6 I/O A46Eh bit 6 -------------------------------------------------------------- 0010000nb: 多色表示モード(*1)■[PC-H98] 0(20h)= 標準モード 1(21h)= 多色拡張モード * 多色拡張モードのときのみ、(*2)が有効。 関連 0000:054Dh bit 7 I/O 09A0h - 0Ah -------------------------------------------------------------- 0010000nb: 多色表示モード(*1) ■[拡張グラフアーキテクチャ搭載機種] 0(20h)= 標準グラフィックスモード 1(21h)= 拡張グラフィックスモード 関連 INT 18h - Function 4Dh 0000:054Dh bit 7 I/O 09A0h - 0Ah -------------------------------------------------------------- 0010001nb: 表示色設定(*1,*2)■[PC-H98] 0(22h)= 256色/16M色 1(23h)= 65536色 関連 I/O 09A0h - 0Eh -------------------------------------------------------------- 0010010nb: 64K色表示パレット(*1,*2)■[PC-H98] 0(24h)= パレット未使用 1(25h)= 一部パレット * 表示色65536色モードのときのみ有効。 関連 I/O 09A0h - 0Fh -------------------------------------------------------------- 0010011nb: 全画面リバース(*1)■[PC-H98] 0(26h)= OFF 1(27h)= ON 関連 I/O 09A0h - 11h -------------------------------------------------------------- 0010100nb: テキスト,グラフィックス合成(Undocumented) ■[PC-H98,PC-98GS] 0(28h)= 通常の表示 1(29h)= XOR合成表示 関連 I/O 09A0h - 13h -------------------------------------------------------------- 0010101nb: 256色パレットレジスタ高速書き込み(*1)■[PC-H98] 0(2Ah)= OFF 1(2Bh)= ON 関連 I/O 09A0h - 18h I/O 09A2h bit 0 -------------------------------------------------------------- 0010110nb: 256色オーバースキャンカラー(*1,*2)■[PC-H98] 0(2Ch)= 未使用 1(2Dh)= 使用 * 256色オーバースカンカラーは、ディスプレイの表示 領域の外側に色をつける時に使用する。 * 実際には、256色ボードを搭載していない場合でも使用 すること可能である。(Undocumented) 関連 I/O 09A0h - 12h I/O 09A6h■[PC-H98] -------------------------------------------------------------- 0010111nb: 不明(Undocumented)■[PC-H98] 関連 I/O 09A0h - 1Bh -------------------------------------------------------------- 0100000nb: テキスト・グラフィック表示モード(Undocumented) ■[ノーマル] 0(40h)= CRTモード 1(41h)= プラズマディスプレイ/LCDモード * CRTモードではテキストがグラフィックより1ドット左に はみ出す。プラズマディスプレイモードではズレは発生 しない。 * 拡張グラフィックスモードでは、必ずプラズマディスプ レイモードになる。 * XL,RLのハイレゾモードでは、41hを出力するとノーマル モードとは逆方向にずれ、40hを出力するとずれなくなる。 * H98のハイレゾモード(ノンインタレース)では、41hを 出力するとズレなくなる。 関連 I/O 0042h bit 4 I/O 09A0h - 05h -------------------------------------------------------------- 0100001nb: テキスト・グラフィック表示モード2(Undocumented) ■[98NOTE] 0(42h)= 通常表示 1(43h)= テキストとグラフィックが1ドット右にズレて、 右端が見えなくなる。 -------------------------------------------------------------- 0100010nb: 不明(Undocumented) ■[PC-H98] 0(44h)= 通常表示 1(45h)= 正常に表示がおこなわれない。 関連 I/O 09A0h - 06h ■[PC-9821Ap・As・Ae・Af・Ap2・As2・An・Ap3・As3] 0(44h)= ノーマルモード 1(45h)= ハイレゾモード * PC-9821A-E02(98ハイレゾボード)搭載時のみ有効。 -------------------------------------------------------------- 0100011nb: 不明(Undocumented) ■[PC-9821Ce・Ne・Af・Ap2・As2・Cs2・Ce2・An・Ap3・As3] 関連 I/O 006Ah - 08h,09h I/O 09A0h - 18h -------------------------------------------------------------- 0100100nb: 不明(Undocumented)■[PC-H98] 関連 I/O 09A0h - 19h -------------------------------------------------------------- 0110000nb: EEGCモード(*1)■[PC-H98] 0(60h)= EGC互換モード 1(61h)= 拡張EGCモード * EGC拡張モードへの移行時にはI/O 007Ch bit 7(CGmode)が 1でなければならない。 * EGC互換モードへの移行時にはI/O 04A0hがFFF0hでなけれ ばならない。 関連 I/O 09A0h - 15h I/O 08A0h I/O 08A2h I/O 08A4h -------------------------------------------------------------- 0110001nb: VRAM構成(*1,*2)■[PC-H98] 0(62h)= プレーンアクセス 1(63h)= パックトピクセル 関連 I/O 09A0h - 0Bh -------------------------------------------------------------- 0110011nb: 描画プロセッサ(*1)■[PC-H98] 0(66h)= GDC使用 1(67h)= AGDC使用 関連 I/O 09A0h - 14h -------------------------------------------------------------- 0110100nb: VRAM構成の設定(*1)(Undocumented)■[PC-H98,PC-9821] 0(68h)= 400ライン構成 o 400ラインモードのデフォルト。 o I/O 00A4hが使用できる o VRAMは128KB(256KB)バウンダリ 1(69h)= 800ライン構成 o 480ラインモードのデフォルト。 o I/O 00A4hが使用できない o VRAMは256KB(512KB)バウンダリ 関連 INT 18h - Function 2Ah■[PC-H98] INT 18h - Function 30h■[拡張グラフ アークテクチャ搭載機] I/O 00A4h I/O 09A0h - 0Dh -------------------------------------------------------------- 0110111nb: 不明(Undocumented)■[PC-H98] 0(6Ah)= 通常表示 1(6Bh)= 正常に表示が行われない。 -------------------------------------------------------------- 0110110nb: VRAMビットマップ方向(Undocumented)■[PC-H98] 0(6Ch)= 順方向(上位ビットが左側) 1(6Dh)= 逆方向(下位ビットが左側) 関連 I/O 09A0h - 17h -------------------------------------------------------------- 0110111nb: 不明(Undocumented)■[PC-H98] 関連 I/O 09A0h - 1Ch -------------------------------------------------------------- 1000000nb: 不明(Undocumented) 関連 0000:045Eh bit 7 I/O 09A0h - 1Eh■[PC-9821Ap・As・Ae] -------------------------------------------------------------- 1000001nb: GDC CLOCK-1■[ノーマル] 0(82h)= 2.5MHz 1(83h)= 5.0MHz * GDCクロックを5.0MHzにするには、GDC CLOCK-2も5.0MHzに 設定しなければならない。 * GDCクロックを2.5MHzにするにはGDC CLOCK-1または2の どちらか一方の設定でよい。 関連 0000:054Dh bit 2 I/O 0031h bit 7 I/O 006Ah - 84h,85h I/O 09A0h - 09h -------------------------------------------------------------- 1000010nb: GDC CLOCK-2■[ノーマル] 0(84h)= 2.5MHz 1(85h)= 5.0MHz 関連 0000:054Dh bit 2 I/O 0031h bit 7 I/O 006Ah - 82h,83h I/O 09A0h bit 1 -------------------------------------------------------------- 1000011nb: 不明■[PC-9821Ne3・Nd2・Na7・Nx] -------------------------------------------------------------- 1000100nb: 不明■[PC-9821Ne3・Nd2・Na7・Nx] -------------------------------------------------------------- 1000101nb: 不明■[PC-9821Ne3・Nd2・Na7・Nx] -------------------------------------------------------------- 1000111nb: VRAM使用選択(Undocumented) ■[CL-GD5428,5430搭載機] 0(8Eh)= 98グラフィックス 1(8Fh)= CL-GD5428・5430 * CIRRUS LOGIC社製アクセラレータ搭載機種では、98グラ フィックスとアクセラレータチップとでVRAMが共用され ている。どちらのグラフィックチップがVRAMを使用する かを設定する。 関連 I/O 0FAAh,0FABh - 03h 1000111nb: RAMウィンドウ使用選択(Undocumented) ■[Vision864搭載機] 0(8Eh)= 通常RAMウィンドウ 1(8Fh)= Vision864メモリマップトI/Oウィンドウ * Vision864搭載機種では、8,9バンクのRAMウィンドウが アクセラレータチップVision864のメモリマップトI/Oを 投影させるために共用されている。8,9バンクをどちらの 用途で使用するかを設定する。 関連 8000:0000〜9000:FFFFh I/O 0FAAh,0FABh - 03h -------------------------------------------------------------- 1010100nb: 不明(Undocumented)■[PC-9821Ap・As・Ae・Af・Ap2・As2] -------------------------------------------------------------- 1100000nb: 不明(Undocumented)■[PC-H98] 関連 I/O 09A0h - 1Dh -------------------------------------------------------------- 1100001nb: 不明(Undocumented)■[PC-H98] 0(C2h)= 通常 1(C3h)= 正常に画面が表示されない 関連 I/O 09A0h - 16h -------------------------------------------------------------- 1100010nb: グラフGDC動作モード(*1)■[PC-H98] 0(C4h)= スレーブ動作 1(C5h)= マスタ動作 -------------------------------------------------------------- 1100100nb: 不明(Undocumented)■[PC-H98] 関連 I/O 09A0h - 1Ah -------------------------------------------------------------- 1110000nb: 不明(Undocumented) -------------------------------------------------------------- 1110001nb: 不明(Undocumented)■[PC-H98] -------------------------------------------------------------- 1110100nb: 不明(Undocumented) -------------------------------------------------------------- 1110111nb: 不明(Undocumented) -------------------------------------------------------------- 解説 o モードF/F2の各種設定を変更する。 u I/O 006Ahの一部の設定は、I/O 09A0hを通して読み出すことができる機種が ある。 関連 I/O 09A0h I/O 006Ch 名前 ボーダーカラー 対象 ノーマル 機能 [READ] なし [WRITE] bit 7: 輝度(Undocumented)■[PC-H98シリーズ,PC-98GS] 1= 輝度を半分にする 0= 通常 bit 6〜4: カラーコード 000b= 黒 001b= 青 010b= 赤 011b= 紫 100b= 緑 101b= 水色 110b= 黄 111b= 白 bit 3〜0: 未使用(常に0000b) 解説 o ディスプレイのオーバースキャン領域で発色させる色を指定する。 関連 INT 1Fh - Function 93h 0000:05B4h I/O 09AEh■[PC-H98] I/O 006Eh 名前 モニタ周波数切換 Undocumented 対象 ノーマル(除くPC-9801初代・BA・BX・BA2・BS2・BX2・BA3・BX3・BX4,PC-H98, PC-9821,98NOTE) 機能 [READ] なし [WRITE] bit 7〜0: 水平同期設定 00h= 15kHz 01h= 24kHz 解説 o ディスプレイ出力の水平同期周波数を設定する。 u PC-9801初代ではI/O 006Chのイメージ。 u PC-9801E・F・M以降では、I/O 006Chのイメージ+LSBのみ周波数切換。 関連 I/O 0035h bit 3 I/O 006Eh 名前 拡張アトリビュート Undocumented 対象 PC-H98,PC-9821,PC-9801BA2・BS2・BX2・BA3・BX3・BX4 機能 [READ] bit 7: NPCカラーモード 1= NPCカラーモード 0= 98互換モード 関連 I/O 006Eh - 16h,17h bit 6,5: 不明 bit 4: 罫線モード 1= I/O設定 0= VRAM設定 関連 I/O 006Eh - 12h,13h I/O 00A7h bit 0: NPCモードイネーブル 1= モード 0= 98互換モード 関連 I/O 006Eh - 02h,03h [WRITE] bit 7〜1: モードF/F番号選択 bit 0: モードF/F状態 -------------------------------------------------------------- 0000001nb: モード変更禁止設定 0(02h)= モード変更禁止 1(03h)= モード変更許可 関連 I/O 006Eh bit 0 I/O 006Ah bit 0 -------------------------------------------------------------- 0000010nb: 不明 -------------------------------------------------------------- 0000011nb: 不明 -------------------------------------------------------------- 000010nnb: アトリビュートモード関連■[PC-H98] 00b(08h)= デフォルト 01b(09h)= 1バイト拡張テキスト 10b(0Ah)= 1バイト拡張テキスト 11b(0Bh)= 1バイト拡張テキスト -------------------------------------------------------------- 0000110nb: アトリビュートモード関連■[PC-H98] 0(0Ch)= JEHモード 1(0Dh)= EGHモード * I/O 006Eh - 0Eh,0Fhに続いてアクセスを行う -------------------------------------------------------------- 0000111nb: アトリビュート■[PC-H98] 0(0Eh)= PCモード 1(0Fh)= アトリビュート 拡張モード -------------------------------------------------------------- 0001000nb: 不明■[PC-H98] 0(10h)= 不明 1(11h)= 不明 関連 0000:0459h bit 1 -------------------------------------------------------------- 0001001nb: テキスト罫線色 0(12h)= I/Oセット値(I/O 00A7hの設定値)に従う 1(13h)= VRAMのアトリビュートに従う(起動時設定) 関連 0000:0459h bit 2 -------------------------------------------------------------- 0001010nb: テキスト表示マスク■[PC-H98] 0(14h)= 通常 1(15h)= 文字表示をせず、アトリビュートだけ有効 -------------------------------------------------------------- 0001100nb: テキスト表示カラーモード■[PC-H98] 0(16h)= 98互換モード 1(17h)= NPCテキストカラー 関連 I/O 006Eh bit 7 -------------------------------------------------------------- 0001101nb: 不明 -------------------------------------------------------------- 0001111nb: 罫線接続状態■[PC-H98, PC-9821Aハイレゾ] 1(1Eh)= 罫線を接続する 0(1Fh)= 罫線を接続しない 関連 I/O 006Ah bit 4 -------------------------------------------------------------- 0010000nb: 不明■[PC-H98, PC-9821Ap・As・Ae] 0(20h)= 不明(24kHzの時) 1(21h)= 不明(31kHzの時) * OUT時には、OUT 5Fh,ALによるウェイトが必要 -------------------------------------------------------------- 解説 o PC-H98シリーズで拡張されたアトリビュートの設定を行う。 o 詳細不明。 関連 0000:0459h bit 1,0 I/O 00A7h I/O 006Ah I/O 00A7h 名前 テキスト関係制御 Undocumented 対象 PC-H98 機能 [READ] 不明 [WRITE] bit 7〜0: テキスト関係制御 -------------------------------------------------------------- 0000nnnnb(0nh)= 罫線色設定■[PC-H98] bit 3: I インテンシティ bit 2: G グリーン bit 1: B ブルー bit 0: R レッド -------------------------------------------------------------- 0001000nb= テキスト画面フォントセット切り替え■[PC-H98] 0(10h)= デフォルト 1(11h)= 特殊キャラクタ -------------------------------------------------------------- 0001001nb= テキスト画面フォントサイズ切り換え■[PC-H98ハイレゾ] 0(12h)= 16ドット 1(13h)= 24ドット -------------------------------------------------------------- 0001010nb= アトリビュートカラー 0(14h)= 有効 1(15h)= 有効 -------------------------------------------------------------- 0010nnnnb= 縦倍用ライン数■[PC-H98] * 詳細不明 -------------------------------------------------------------- 解説 u フォントセット,サイズの切り替えを行う。 u 罫線色を設定する。 o 詳細不明 関連 INT 18h - Function 2Ch■[PC-H98] =============================================================================== ■グラフィックGDC 対象 ノーマル・ハイレゾ チップ GDC(μPD7220,μPD7220A,μPD72020) 解説 o PC-9800シリーズではテキスト画面とグラフィック画面の表示に2つのGDC を使用している。このうちグラフィック画面を扱うGDCはスレーブ動作を行い、 マスタのテキストGDCが生成した同期信号に同期してグラフィック画面の 表示を行う。 o 詳細はGDCのデータシート参照。 関連 I/O 0060h I/O 0062h A800:0000〜7FFFh B000:0000〜7FFFh B800:0000〜7FFFh E000:0000〜7FFFh I/O 00A0h 名前 グラフィックGDCステータスリード グラフィックGDCパラメータライト チップ GDC 機能 [READ] GDCステータスリード bit 7: LIGHT PEN DETECT(常に1を示す) bit 6: HORIZONTAL BLANK bit 5: VERTICAL SYNC bit 4: DMA EXECUTE bit 3: DRAWING bit 2: FIFO EMPTY bit 1: FIFO FULL bit 0: DATA READY [WRITE] bit 7〜0: GDCパラメータライト 解説 o グラフィックGDCのステータス読みだし、およびパラメータの出力を行う。 o 詳細はμPD7220のデータシート参照。 関連 I/O 00A2h I/O 00A2h 名前 グラフィックGDCデータリード グラフィックGDCコマンドライト チップ GDC 機能 [READ] bit 7〜0: GDCデータリード [WRITE] bit 7〜0: GDCコマンドライト --------+---------------------------- コマンド|名前 --------+---------------------------- 00h |RESET1 01h |RESET2 05h |STOP2 09h |RESET3 0Ch |STOP1 0Dh |START 0Eh,0Fh |SYNC 20〜3Fh |WRITE,DMAW 46h |ZOOM 47h |PITCH 49h |CSRW 4Bh |CSRFORM 4Ch |VECTW 68h |TEXTE 6Bh |START 6Ch |VECTE 70〜7Fh |SCROLL,TEXTW 6Eh |SLAVE 6Fh |MASTER A0〜BFh |READ,DMAR C0h |LPEN E0h |CSRR 4Ah |MASK --------+---------------------------- * 全てのコマンドが使用できるわけではない。 解説 o グラフィックGDCのデータ読みだし、およびコマンドの出力を行う。 o 詳細はμPD7220のデータシート参照。 関連 I/O 00A0h ------------------------------------------------------------------------------- ■VRAMプレーン切り換え 対象 ノーマル(PC-9801初代・Uを除く) 解説 o PC-9801初代・U以外のノーマルモードでは、グラフィックVRAMは同じアドレス に2バンクずつ存在し、描画プレーンと表示プレーンをそれぞれ選択すること が可能である。 o PC-9801VF・VM2では、初期状態ではEバンクの領域ににVRAMが存在しないため、 8色までの表示しか行えない。16色ボードを搭載することでこの領域のVRAMを 使用することができる。 関連 A800:0000〜7FFFh B000:0000〜7FFFh B800:0000〜7FFFh E000:0000〜7FFFh 0000:054Ch bit 2 I/O 00A4h 名前 表示画面選択レジスタ 機能 [READ]■[PC-H98,PC-98GS,PC-9821, PC-9801BA2・BS2・BX2・BA3・BX3・BX4・NS/Aのみ] bit 7〜1: 未使用 bit 0: 表示プレーン選択状態 0= プレーン0 1= プレーン1 [WRITE] bit 7〜0: 表示プレーン選択 00h= プレーン0 01h= プレーン1 解説 o 表示画面を選択する。 o 拡張グラフィックスモード400ライン時にも有効。 o PC-9801初代・Uにはプレーン1が存在しない。 関連 I/O 00A6h I/O 00A6h 名前 描画画面選択レジスタ 機能 [READ]■[PC-H98,PC-98GS,PC-9821, PC-9801BA2・BS2・BX2・BA3・BX3・BX4・NS/Aのみ] bit 7〜1: 未使用 bit 0: 描画プレーン選択状態 0= プレーン0 1= プレーン1 [WRITE] bit 7〜0: 描画プレーン選択 00h= プレーン0 01h= プレーン1 解説 o CPUとGDCがVRAMにアクセスするための描画画面を選択する。 o 標準グラフィックスモードだけで有効。 o PC-9801初代・Uにはプレーン1が存在しない。 関連 I/O 00A4h ------------------------------------------------------------------------------- ■テキスト表示ラインカウンタ制御回路 チップ CRTC(μPD52611) 対象 ノーマル,ハイレゾ 解説 o CRTCはテキスト画面に表示する文字の垂直同期を制御し、CGラインカウンタ、 アドレス加算タイミング、アンダーラインの出力を行う。 o CRTCを制御することで、テキスト画面の縦方向スムーススクロールが可能 である。 o 詳細はCRTCのデータシート参照。 関連 I/O 0060h I/O 0062h I/O 0070h 名前 キャラクタ位置ライン数(PL) 対象 ノーマル,ハイレゾ 機能 [READ] なし [WRITE] bit 7〜0: キャラクタ位置ライン数 解説 o ラインカウンタの初期値を設定する o キャラクタが表示されるライン番号の2の補数で設定する。 関連 I/O 0072h I/O 0074h I/O 0076h I/O 0078h I/O 007Ah I/O 0072h 名前 ボディーフェイスライン数指定(BL) 機能 [READ] なし [WRITE] ボディーフェイスライン数 解説 o キャラクタのボディーフェイスのライン数を設定する。 o ボディーフェイスのライン数-1で設定する。 関連 I/O 0070h I/O 0074h I/O 0076h I/O 0078h I/O 007Ah I/O 0074h 名前 キャラクタライン数(CL) 機能 [READ] なし [WRITE] キャラクタライン数 解説 o キャラクタのライン数を設定する。 関連 I/O 0070h I/O 0072h I/O 0076h I/O 0078h I/O 007Ah I/O 0076h 名前 スムーススクロールライン数(SSL) 機能 [READ] なし [WRITE] スムーススクロールライン数 解説 o スクロールエリア内の文字がスクロールしているライン数を設定する。 関連 I/O 0070h I/O 0072h I/O 0074h I/O 0078h I/O 007Ah I/O 0078h 名前 スクロールエリア上辺位置行数(SUR) 機能 [READ] なし [WRITE] スクロールエリア上辺位置行数 解説 o スクロールエリアの上辺の行を設定する。 o スクロールエリアの上辺の行番号の2の補数で設定する。 関連 I/O 0070h I/O 0072h I/O 0074h I/O 0076h I/O 007Ah I/O 007Ah 名前 スクロールエリア行数(SDR) 機能 [READ] なし [WRITE] スクロールエリア行数 解説 o スクロールエリアの行数を設定する。 o スクロールエリアの行数-1で設定する。 関連 I/O 0070h I/O 0072h I/O 0074h I/O 0076h I/O 0078h ------------------------------------------------------------------------------- ■キャラクタジェネレータ 対象 ノーマル,ハイレゾ 解説 o キャラクタジェネレータは、テキスト画面に表示する文字のフォントパターン を生成する。このフォントパターンをCPUから取得するとき、これらのポート を使用する。 o PC-9801初代はユーザ定義文字のサポートなし、PC-9801E・F・M・Uは63文字、 PC-H98は219文字、それ以外は188文字使用可能。 o 漢字アクセスモードがコードアクセスのとき、フォントパターンを高速に読み 書きできるが、VSYNC中でないと画面が乱れることがある。これに対し、ドット アクセスモードは低速であるが、表示期間中でもフォントパターンをアクセス することが可能である。 o CGウィンドウ搭載機種ではI/Oポートによるアクセスだけではなく、メモリ空間 にキャラクタジェネレータの一部を投影することにより、フォントパターンに 高速なアクセスを行うことが出来る。 o JISコードの第1バイトが2C〜2Fhと76h以上の文字(全角罫線特殊文字、 ユーザー定義文字、拡張漢字のフォントは、CGウィンドウの奇数アドレス からしか読み出せない。 関連 A400:0000h〜 I/O 0068h - 0Ah,0Bh 0000:0546h 0000:054Ch I/O 00A1h 名前 文字コード第2バイト CGウィンドウコード指定■[CGウィンドウ搭載機種] 対象 ノーマル,ハイレゾ 機能 [READ] なし [WRITE] bit 7〜0: 文字コード第2バイト 00h= ANKフォント 01〜DFh= 漢字フォント 解説 o アクセスするキャラクタパターンのコードを指定する。 o ANKフォントの場合は00hを、漢字フォントの場合はJISコードの第2バイトから 20hを減じたものを設定する。 o CGウィンドウ搭載機種では、CGウィンドウに投影するキャラクタパターンの コード指定にも用いられる。 関連 I/O 00A3h I/O 00A3h 名前 文字コード第1バイト CGウィンドウコード指定■[CGウィンドウ搭載機種] 対象 ノーマル,ハイレゾ 機能 [READ] なし [WRITE] bit 7〜0: 文字コード第1バイト 00h= ANKフォント 01〜08h= 漢字フォント 09〜0Bh= 2バイト半角 0C〜DFh= 漢字フォント 解説 o アクセスするキャラクタパターンのコードを指定する。 o ANKフォントの場合は値をそのまま、漢字フォントの場合はJISコードの 第1バイトから20hを減じたものを設定する。 o CGウィンドウ搭載機種では、CGウィンドウに投影するキャラクタパターンの コード指定にも用いられる。 関連 I/O 00A1h I/O 00A5h 名前 ラインカウンタ 対象 ノーマル,ハイレゾ 機能 [READ] なし [WRITE] 左右,ライン番号指定 bit 7,6: 未使用(常に00bにする) bit 5: L/R 1= Left 0= Right * 全角文字の左右のどちらのフォントパターンを読み出すかを 指定する。 bit 4〜0: RC4〜RC0 * フォントパターンの何ライン目をリード/ライトするかを 指定する。ノーマルモードでは、最大でも縦16ドットのフォント しか読み出さないのでRC4は常に0とする。 解説 o 参照するキャラクタパターンのラスタ位置、および左右のどちらかを 指定する。 関連 I/O 00A1h I/O 00A3h I/O 00A9h I/O 00A9h 名前 文字パターンデータ 対象 ノーマル,ハイレゾ 機能 [READ] 文字パターン読み出し [WRITE] 文字パターン書き込み 解説 o I/O 00A1h,00A3h,00A5hで指定されたキャラクタパターンのデータを 読み書きする。書き込みはユーザー定義文字領域のみ可能。 o ANKフォントのサイズ(6x7ドット、7x13ドット)は、0068hポート (モードレジスタ1)で指定する。 関連 I/O 00A1h I/O 00A3h I/O 00A5h I/O 0068h - 0Ah,0Bh ------------------------------------------------------------------------------- ■グラフィックチャージャ(GRCG) 対象 GRCG搭載機種(ノーマル,ハイレゾ) 解説 o GRCGはCPUとVRAMの間に存在し、グラフィック処理を高速化する目的で 用いられる。4枚のプレーンの対して同時にアクセスできるため、描画処理を 高速化することが可能である。 o GRCGにはTDW,TCR,RMWの3つのモードが存在する。 --------+----------------------------------------------- モード |機能 --------+----------------------------------------------- TDW |CPUからの書き込み動作で、タイルレジスタの内容 |をVRAMに書き込む。CPUからのデータは無視される。 --------+----------------------------------------------- TCR |CPUのVRAMリードに対し、各プレーンのタイルレジス |タと、4枚のVRAMのデータが全て一致したビットのみ |1を返し、一致しなかったビットでは0を返す。 --------+----------------------------------------------- RMW |CPUからの書き込み動作で、1を書き込んだビットで |はタイルレジスタの内容が、0を書き込んだビットで |はもとのVRAMの内容がVRAMに書き出される。 --------+----------------------------------------------- o ノーマルモードとハイレゾモードではI/Oアドレスが異なる。 o GRCGの各レジスタは読み出しができないため、システム共通行きに 現在の設定内容を保存しておく必要がある。 o EGC搭載機種では、通常EGCがGRCGの上位互換となっておりGDCからのVRAMアク セスに関してもGRCGを用いることが出来る。 関連 0000:0495h 0000:0496〜0499h 0000:054Ch bit 1 I/O 006Ah - 04h,05h I/O 04A0〜04AFh I/O 007Ch 名前 GRCGモードレジスタ 対象 ノーマル 機能 [READ] なし [WRITE] ライトモードレジスタ bit 7: CGmode 1= GRCG有効 0= GRCG無効 * GRCGモードの選択 bit 6: RMWmode 1= ライト時RMWモード 0= リード時TCRモード, ライト時TDWモード * CPUのVRAMアクセスの選択 bit 5,4: 00b bit 3〜0: P3EN#〜P0EN# 1= 無効 0= 有効 * 該当するプレーンの選択 解説 o グラフィックスチャージャの設定を行う。 関連 0000:0495h I/O 006Ah - 04h,05h I/O 007Eh I/O 007Eh 名前 GRCGタイルレジスタ 対象 ノーマル 機能 [READ] なし [WRITE] bit 7〜0: タイルレジスタ(0〜3) 解説 o グラフィックスチャージャのタイルレジスタの設定を行う。 o I/O 007Chへの書き込みでタイルレジスタカウンタはリセットされ、以後の 連続した4回の書き込みで、タイルレジスタ0〜3を設定する。 関連 0000:0496〜0499h I/O 007Ch I/O 00A4h 名前 GRCGモードレジスタ 対象 ハイレゾ 機能 [READ] なし [WRITE] ライトモードレジスタ bit 7: CGmode 1= GRCG有効 0= GRCG無効 * GRCGモードの選択 bit 6: RMWmode 1= ライト時RMWモード 0= リード時TCRモード, ライト時TDWモード * CPUのVRAMアクセスの選択 bit 5,4: RP1,RP2 11b= プレーン#3選択 10b= プレーン#2選択 01b= プレーン#1選択 00b= プレーン#0選択 * CPUリード時のVRAMプレーンを選択。 CGmode=1 の時のみ有効 bit 3〜0: P3EN#〜P0EN# 1= 無効 0= 有効 * 該当するプレーンの選択 解説 o ハイレゾモードにおけるGRCGのモードレジスタの設定を行う。 関連 0000:0495h I/O 006Ah - 04h,05h I/O 00A6h I/O 00A6h 名前 GRCGタイルレジスタ 対象 ハイレゾ 機能 [READ] なし [WRITE] bit 7〜0: タイルレジスタ(0〜3) 解説 o グラフィックスチャージャのタイルレジスタの設定を行う。 o I/O 00A4hへの書き込みでタイルレジスタカウンタはリセットされ、以後の 連続した4回の書き込みで、タイルレジスタ0〜3を設定する。 関連 0000:0496〜0499h I/O 00A4h ------------------------------------------------------------------------------- ■パレットレジスタ(8色モード) 対象 ノーマル 解説 o 8色モード時におけるパレットレジスタは、常時読み書きを行うことが 可能である。読み書きは順序に関係なく行える。 関連 I/O 006Ah - 00h I/O 00A8h 名前 パレットレジスタ#3,#7 機能 [READ/WRITE] biT 7〜4: 0,B,G,R biT 3〜0: 0,B,G,R 解説 o 8色モードにおけるパレットを設定する。 o 上位4ビットでパレット#3の色を、下位4ビットでパレット#7の色を指定する。 関連 I/O 00AAh 名前 パレットレジスタ#2,#6 機能 [READ/WRITE] biT 7〜4: 0,B,G,R biT 3〜0: 0,B,G,R 解説 o 8色モードにおけるパレットを設定する。 o 上位4ビットでパレット#2の色を、下位4ビットでパレット#6の色を指定する。 関連 I/O 00ACh 名前 パレットレジスタ#1,#5 機能 [READ/WRITE] biT 7〜4: 0,B,G,R biT 3〜0: 0,B,G,R 解説 o 8色モードにおけるパレットを設定する。 o 上位4ビットでパレット#1の色を、下位4ビットでパレット#5の色を指定する。 関連 I/O 00AEh 名前 パレットレジスタ#0/#4 機能 [READ/WRITE] biT 7〜4: 0,B,G,R biT 3〜0: 0,B,G,R 解説 o 8色モードにおけるパレットを設定する。 o 上位4ビットでパレット#0の色を、下位4ビットでパレット#4の色を指定する。 関連 ------------------------------------------------------------------------------- ■パレットレジスタ(16色モード) 対象 PC-9801U以降 ただし、PC-9801U・VF・VMは16色ボード搭載時 解説 o 16色モードはPC-9801初代・E・F・Mには存在しない。 o I/O 00A8hでパレット番号を指定後、I/O 00AA〜00AEhでパレットを指定する。 o PC-H98では、以下のようにパレットデータをリードできる。 * パレット番号指定後、R,G,Bの順で読み出す。 * リードはBLANK中に行う。 * 読み出した値を右に4ビットシフトする。 u PC-98GS,PC-9821,PC-9801BA2・BS2・BX2・NS/Aでは、以下のようにパレット データをリードできる。 * パレット番号指定後、R,G,Bは任意の順序で読み出し可能。 * 常時読みだし可能 関連 I/O 006Ah - 01h I/O 00A8h 名前 パレット番号指定レジスタ 機能 [READ]■[PC-H98,PC-98GS,PC-9821,PC-9801BA2・BS2・BX2・NS/Aのみ] [WRITE] bit 7〜4: 未使用(常に0000bにする) bit 3〜0: パレット番号 解説 o パレット番号(00〜0Fh)を指定する。 関連 I/O 00AAh,00ACh,00AEh I/O 00AAh 名前 緑レベル指定 機能 [READ]■[PC-H98] bit 7〜4: 緑レベル(00〜0Fh) bit 3〜0: 未使用 [READ]■[PC-98GS,PC-9821,PC-9801BA2・BS2・BX2・NS/Aのみ] bit 7〜4: 未使用(常に0000bにする) bit 3〜0: 緑レベル(00〜0Fh) [WRITE] bit 7〜4: 未使用(常に0000bにする) bit 3〜0: 緑レベル(00〜0Fh) 解説 o I/O 00A8hで指定したパレットの緑レベルを指定する。 関連 I/O 00A8h,00ACh,00AEh I/O 00ACh 名前 赤レベル指定 機能 [READ]■[PC-H98] bit 7〜4: 赤レベル(00〜0Fh) bit 3〜0: 未使用 [READ]■[PC-98GS,PC-9821,PC-9801BA2・BS2・BX2・NS/Aのみ] bit 7〜4: 未使用(常に0000bにする) bit 3〜0: 赤レベル(00〜0Fh) [WRITE] bit 7〜4: 未使用(常に0000bにする) bit 3〜0: 赤レベル(00〜0Fh) 解説 o I/O 00A8hで指定したパレットの赤レベルを指定する。 関連 I/O 00A8h,00AAh,00AEh I/O 00AEh 名前 青レベル指定 機能 [READ]■[PC-H98] bit 7〜4: 青レベル(00〜0Fh) bit 3〜0: 未使用 [READ]■[PC-98GS,PC-9821,PC-9801BA2・BS2・BX2・NS/Aのみ] bit 7〜4: 未使用(常に0000bにする) bit 3〜0: 青レベル(00〜0Fh) [WRITE] bit 7〜4: 未使用(常に0000bにする) bit 3〜0: 青レベル(00〜0Fh) 解説 o I/O 00A8hで指定したパレットの青レベルを指定する。 関連 I/O 00A8h,00AAh,00ACh ------------------------------------------------------------------------------- ■パレットレジスタ(256色モード) 対象 PC-H98,拡張グラフアーキテクチャ搭載機種 解説 o I/O 00A8hでパレット番号を指定後、I/O 00AA〜00AEhでパレットを指定する。 u PC-9821Neの液晶ディスプレイには、各輝度の上位4ビットの値が供給される。 o PC-H98では、高速パレット書き込みモードでは常時ライト可能。 ただし、画面が乱れる可能性がある。高速パレット書き込みモード以外では、 BLANK中にライトする。 o PC-H98では、以下のようにパレットデータをリードする。 * パレット番号指定後、R,G,Bの順で読み出す。 * リードはBLANK中に行う。 u 拡張グラフアーキテクチャ搭載機種では、以下のようにパレットデータを リードする。 * パレット番号指定後、R,G,Bは任意の順序で読み出し可能。 * 常時読みだし可能 PC-9821無印の256色パレット初期設定 パレット番号 緑 赤 青 パレット番号 緑 赤 青 パレット番号 緑 赤 青 パレット番号 緑 赤 青 00 00 00 00 40 3F FF 5F 80 9F 3F 7F C0 DF 5F 9F 01 00 80 00 41 5F 3F 5F 81 9F 5F 7F C1 DF 7F 9F 02 80 00 00 42 5F 5F 5F 82 9F 7F 7F C2 DF 9F 9F 03 80 80 00 43 5F 7F 5F 83 9F 9F 7F C3 DF BF 9F 04 00 00 80 44 5F 9F 5F 84 9F BF 7F C4 DF DF 9F 05 00 80 80 45 5F BF 5F 85 9F DF 7F C5 DF FF 9F 06 80 00 80 46 5F DF 5F 86 9F FF 7F C6 FF 3F 9F 07 C0 C0 C0 47 5F FF 5F 87 BF 3F 7F C7 FF 5F 9F 08 DC C0 C0 48 7F 3F 5F 88 BF 5F 7F C8 FF 7F 9F 09 C8 A4 F0 49 7F 5F 5F 89 BF 7F 7F C9 FF 9F 9F 0A 3F 5F 3F 4A 7F 7F 5F 8A BF 9F 7F CA FF BF 9F 0B 3F 7F 3F 4B 7F 9F 5F 8B BF BF 7F CB FF DF 9F 0C 3F 9F 3F 4C 7F BF 5F 8C BF DF 7F CC FF FF 9F 0D 3F BF 3F 4D 7F DF 5F 8D BF FF 7F CD 3F 3F BF 0E 3F DF 3F 4E 7F FF 5F 8E DF 3F 7F CE 3F 5F BF 0F 3F FF 3F 4F 9F 3F 5F 8F DF 5F 7F CF 3F 7F BF 10 5F 3F 3F 50 9F 5F 5F 90 DF 7F 7F D0 3F 9F BF 11 5F 5F 3F 51 9F 7F 5F 91 DF 9F 7F D1 3F BF BF 12 5F 7F 3F 52 9F 9F 5F 92 DF BF 7F D2 3F DF BF 13 5F 9F 3F 53 9F BF 5F 93 DF DF 7F D3 3F FF BF 14 5F BF 3F 54 9F DF 5F 94 DF FF 7F D4 5F 3F BF 15 5F DF 3F 55 9F FF 5F 95 FF 3F 7F D5 5F 5F BF 16 5F FF 3F 56 BF 3F 5F 96 FF 5F 7F D6 5F 7F BF 17 7F 3F 3F 57 BF 5F 5F 97 FF 7F 7F D7 5F 9F BF 18 7F 5F 3F 58 BF 7F 5F 98 FF 9F 7F D8 5F BF BF 19 7F 7F 3F 59 BF 9F 5F 99 FF BF 7F D9 5F DF BF 1A 7F 9F 3F 5A BF BF 5F 9A FF DF 7F DA 5F FF BF 1B 7F BF 3F 5B BF DF 5F 9B FF FF 7F DB 7F 3F BF 1C 7F DF 3F 5C BF FF 5F 9C 3F 3F 9F DC 7F 5F BF 1D 7F FF 3F 5D DF 3F 5F 9D 3F 5F 9F DD 7F 7F BF 1E 9F 3F 3F 5E DF 5F 5F 9E 3F 7F 9F DE 7F 9F BF 1F 9F 5F 3F 5F DF 7F 5F 9F 3F 9F 9F DF 7F BF BF 20 9F 7F 3F 60 DF 9F 5F A0 3F BF 9F E0 7F DF BF 21 9F 9F 3F 61 DF BF 5F A1 3F DF 9F E1 7F FF BF 22 9F BF 3F 62 DF DF 5F A2 3F FF 9F E2 9F 3F BF 23 9F DF 3F 63 DF FF 5F A3 5F 3F 9F E3 9F 5F BF 24 9F FF 3F 64 FF 3F 5F A4 5F 5F 9F E4 9F 7F BF 25 BF 3F 3F 65 FF 5F 5F A5 5F 7F 9F E5 9F 9F BF 26 BF 5F 3F 66 FF 7F 5F A6 5F 9F 9F E6 9F BF BF 27 BF 7F 3F 67 FF 9F 5F A7 5F BF 9F E7 9F DF BF 28 BF 9F 3F 68 FF BF 5F A8 5F DF 9F E8 9F FF BF 29 BF BF 3F 69 FF DF 5F A9 5F FF 9F E9 BF 3F BF 2A BF DF 3F 6A FF FF 5F AA 7F 3F 9F EA BF 5F BF 2B BF FF 3F 6B 3F 3F 7F AB 7F 5F 9F EB BF 7F BF 2C DF 3F 3F 6C 3F 5F 7F AC 7F 7F 9F EC BF 9F BF 2D DF 5F 3F 6D 3F 7F 7F AD 7F 9F 9F ED BF BF BF 2E DF 7F 3F 6E 3F 9F 7F AE 7F BF 9F EE BF DF BF 2F DF 9F 3F 6F 3F BF 7F AF 7F DF 9F EF BF FF BF 30 DF BF 3F 70 3F DF 7F B0 7F FF 9F F0 DF 3F BF 31 DF DF 3F 71 3F FF 7F B1 9F 3F 9F F1 DF 5F BF 32 DF FF 3F 72 5F 3F 7F B2 9F 5F 9F F2 DF 7F BF 33 FF 3F 3F 73 5F 5F 7F B3 9F 7F 9F F3 DF 9F BF 34 FF 5F 3F 74 5F 7F 7F B4 9F 9F 9F F4 DF BF BF 35 FF 7F 3F 75 5F 9F 7F B5 9F BF 9F F5 DF DF BF 36 FF 9F 3F 76 5F BF 7F B6 9F DF 9F F6 FB FF F0 37 FF BF 3F 77 5F DF 7F B7 9F FF 9F F7 A0 A0 A4 38 FF DF 3F 78 5F FF 7F B8 BF 3F 9F F8 80 80 80 39 FF FF 3F 79 7F 3F 7F B9 BF 5F 9F F9 00 FF 00 3A 3F 3F 5F 7A 7F 5F 7F BA BF 7F 9F FA FF 00 00 3B 3F 5F 5F 7B 7F 7F 7F BB BF 9F 9F FB FF FF 00 3C 3F 7F 5F 7C 7F 9F 7F BC BF BF 9F FC 00 00 FF 3D 3F 9F 5F 7D 7F BF 7F BD BF DF 9F FD 00 FF FF 3E 3F BF 5F 7E 7F DF 7F BE BF FF 9F FE FF 00 FF 3F 3F DF 5F 7F 7F FF 7F BF DF 3F 9F FF FF FF FF PC-9821無印の256色パレット初期値を決定しているアルゴリズム */ /* PC-9821無印の256色パレット初期値を決定しているアルゴリズム */ /* (ただし、00〜09,F6〜FFHでは成り立たない。この範囲は表で */ /* 設定するほうが簡単なので、プログラムとしては示さない。 */ #include void main() { int n, r, g, b for (n = 0xa g = (((n - 9) / 7) % 7 * 2 + 3) * 0x10 + 0xf r = ((n - 9) % 7 * 2 + 3) * 0x10 + 0xf b = (((n - 9) / 49) * 2 + 3) * 0x10 + 0xf printf("%02x:G=%02x,R=%02x,B=%02x\n", n, g, r, b) } } PC-9821Ap,As,Aeの256色パレット初期設定 パレット番号 緑 赤 青 パレット番号 緑 赤 青 パレット番号 緑 赤 青 パレット番号 緑 赤 青 00 00 00 00 40 3C 3C 3C 80 7C 7C 7C C0 BC BC BC 01 00 00 07 41 00 00 47 81 00 00 87 C1 00 00 C7 02 00 07 00 42 00 47 00 82 00 87 00 C2 00 C7 00 03 00 07 07 43 00 47 47 83 00 87 87 C3 00 C7 C7 04 07 00 00 44 47 00 00 84 87 00 00 C4 C7 00 00 05 07 00 07 45 47 00 47 85 87 00 87 C5 C7 00 C7 06 07 07 00 46 47 47 00 86 87 87 00 C6 C7 C7 00 07 07 07 07 47 47 47 47 87 87 87 87 C7 C7 C7 C7 08 04 04 04 48 44 44 44 88 84 84 84 C8 C4 C4 C4 09 00 00 0F 49 00 00 4F 89 00 00 8F C9 00 00 CF 0A 00 0F 00 4A 00 4F 00 8A 00 8F 00 CA 00 CF 00 0B 00 0F 0F 4B 00 4F 4F 8B 00 8F 8F CB 00 CF CF 0C 0F 00 00 4C 4F 00 00 8C 8F 00 00 CC CF 00 00 0D 0F 00 0F 4D 4F 00 4F 8D 8F 00 8F CD CF 00 CF 0E 0F 0F 00 4E 4F 4F 00 8E 8F 8F 00 CE CF CF 00 0F 0F 0F 0F 4F 4F 4F 4F 8F 8F 8F 8F CF CF CF CF 10 0C 0C 0C 50 4C 4C 4C 90 8C 8C 8C D0 CC CC CC 11 00 00 17 51 00 00 57 91 00 00 97 D1 00 00 D7 12 00 17 00 52 00 57 00 92 00 97 00 D2 00 D7 00 13 00 17 17 53 00 57 57 93 00 97 97 D3 00 D7 D7 14 17 00 00 54 57 00 00 94 97 00 00 D4 D7 00 00 15 17 00 17 55 57 00 57 95 97 00 97 D5 D7 00 D7 16 17 17 00 56 57 57 00 96 97 97 00 D6 D7 D7 00 17 17 17 17 57 57 57 57 97 97 97 97 D7 D7 D7 D7 18 14 14 14 58 54 54 54 98 94 94 94 D8 D4 D4 D4 19 00 00 1F 59 00 00 5F 99 00 00 9F D9 00 00 DF 1A 00 1F 00 5A 00 5F 00 9A 00 9F 00 DA 00 DF 00 1B 00 1F 1F 5B 00 5F 5F 9B 00 9F 9F DB 00 DF DF 1C 1F 00 00 5C 5F 00 00 9C 9F 00 00 DC DF 00 00 1D 1F 00 1F 5D 5F 00 5F 9D 9F 00 9F DD DF 00 DF 1E 1F 1F 00 5E 5F 5F 00 9E 9F 9F 00 DE DF DF 00 1F 1F 1F 1F 5F 5F 5F 5F 9F 9F 9F 9F DF DF DF DF 20 1C 1C 1C 60 5C 5C 5C A0 9C 9C 9C E0 DC DC DC 21 00 00 27 61 00 00 67 A1 00 00 A7 E1 00 00 E7 22 00 27 00 62 00 67 00 A2 00 A7 00 E2 00 E7 00 23 00 27 27 63 00 67 67 A3 00 A7 A7 E3 00 E7 E7 24 27 00 00 64 67 00 00 A4 A7 00 00 E4 E7 00 00 25 27 00 27 65 67 00 67 A5 A7 00 A7 E5 E7 00 E7 26 27 27 00 66 67 67 00 A6 A7 A7 00 E6 E7 E7 00 27 27 27 27 67 67 67 67 A7 A7 A7 A7 E7 E7 E7 E7 28 24 24 24 68 64 64 64 A8 A4 A4 A4 E8 E4 E4 E4 29 00 00 2F 69 00 00 6F A9 00 00 AF E9 00 00 EF 2A 00 2F 00 6A 00 6F 00 AA 00 AF 00 EA 00 EF 00 2B 00 2F 2F 6B 00 6F 6F AB 00 AF AF EB 00 EF EF 2C 2F 00 00 6C 6F 00 00 AC AF 00 00 EC EF 00 00 2D 2F 00 2F 6D 6F 00 6F AD AF 00 AF ED EF 00 EF 2E 2F 2F 00 6E 6F 6F 00 AE AF AF 00 EE EF EF 00 2F 2F 2F 2F 6F 6F 6F 6F AF AF AF AF EF EF EF EF 30 2C 2C 2C 70 6C 6C 6C B0 AC AC AC F0 EC EC EC 31 00 00 37 71 00 00 77 B1 00 00 B7 F1 00 00 F7 32 00 37 00 72 00 77 00 B2 00 B7 00 F2 00 F7 00 33 00 37 37 73 00 77 77 B3 00 B7 B7 F3 00 F7 F7 34 37 00 00 74 77 00 00 B4 B7 00 00 F4 F7 00 00 35 37 00 37 75 77 00 77 B5 B7 00 B7 F5 F7 00 F7 36 37 37 00 76 77 77 00 B6 B7 B7 00 F6 F7 F7 00 37 37 37 37 77 77 77 77 B7 B7 B7 B7 F7 F7 F7 F7 38 34 34 34 78 74 74 74 B8 B4 B4 B4 F8 F4 F4 F4 39 00 00 3F 79 00 00 7F B9 00 00 BF F9 00 00 FF 3A 00 3F 00 7A 00 7F 00 BA 00 BF 00 FA 00 FF 00 3B 00 3F 3F 7B 00 7F 7F BB 00 BF BF FB 00 FF FF 3C 3F 00 00 7C 7F 00 00 BC BF 00 00 FC FF 00 00 3D 3F 00 3F 7D 7F 00 7F BD BF 00 BF FD FF 00 FF 3E 3F 3F 00 7E 7F 7F 00 BE BF BF 00 FE FF FF 00 3F 3F 3F 3F 7F 7F 7F 7F BF BF BF BF FF FF FF FF PC-9821Ap,As,Aeの256色パレット初期値を決定しているアルゴリズム /* PC-9821Ap,As,Aeの256色パレット初期値を決定しているアルゴリズム */ #include void main() { int n, r, g, b for (n = 0 if (n & 7) { g = (n & 4) / 4 * (n | 7) r = (n & 2) / 2 * (n | 7) b = (n & 1) * (n | 7) } else if (n) r = g = b = n - 4 else /* if (n == 0) */ r = g = b = 0 printf("%02x:G=%02x,R=%02x,B=%02x\n", n, g, r, b) } } 関連 I/O 006Ah - 21h I/O 006Ah - 2Ah,2Bh■[PC-H98] I/O 00A8h 名前 パレット番号指定レジスタ 機能 [READ/WRITE] bit 7〜0: パレット番号 解説 o パレット番号(00〜FFh)を指定する。 関連 I/O 00AAh,00ACh,00AEh I/O 00AAh 名前 緑レベル指定 機能 [READ/WRITE] bit 7〜0: 緑レベル(00〜FFh) 解説 o I/O 00A8hで指定したパレットの緑レベルを読み書きする。 関連 I/O 00A8h,00ACh,00AEh I/O 00ACh 名前 赤レベル指定 機能 [READ/WRITE] bit 7〜0: 赤レベル(00〜FFh) 解説 o I/O 00A8hで指定したパレットの赤レベルを読み書きする。 関連 I/O 00A8h,00AAh,00AEh I/O 00AEh 名前 青レベル指定 機能 [READ/WRITE] bit 7〜0: 青レベル(00〜FFh) 解説 o I/O 00A8hで指定したパレットの青レベルを読み書きする。 関連 I/O 00A8h,00AAh,00ACh I/O 09A2h 名前 256色パレットライトステータスフラグ 対象 PC-H98 機能 [READ] bit 7〜1: 未使用 bit 0: ST [WRITE] なし 解説 o 256色パレット高速書き込みOFFのとき、このST(bit 0)が0であることを 確認してから、値を設定しなければならない。値を設定することで、 STは1になり、最大41μs続く。 関連 I/O 006Ah - 2Ah,2Bh I/O 00A8h,00AAh,00ACh,00AEh ------------------------------------------------------------------------------- ■その他グラフィック関係 解説 o PC-H98,PC-98GS,PC-9821などでは、各種グラフィック関連機能の一部が 拡張されている。 o これらの機能のほとんどは通常、操作する必要のないものばかりであり、 不用意な操作は動作を不安定にする可能性がある。特に必要のない限り 操作するべきではない。 I/O 09A0h 名前 各種グラフィック関係ステータス読みだし Undocumented 対象 PC-98GS,PC-H98,PC-9821■[除くPC-9821Ts], PC-9801BA2・BS2・BX2・BX3・BA3・BX4・NS/A 機能 [WRITE] bit 7〜0: 読みだしステータス選択 * I/O 09A0h bit 0から入力する情報を選択する [READ] bit 7〜2: 未使用 bit 1: グラフィックGDCクロック周波数読みだし 0= 2.5MHz 1= 5.0MHz 関連 I/O 006Ah - 84h,85h bit 0: 各種グラフィック関係ステータス読みだし 最後にI/O 09A0hに書き込んだ値によって読み出されるデータが 選択される。 --------+------------------------------------------------------ |内容 --------+------------------------------------------------------ 00h |I/O 09A0h非使用 |* 常にI/O 09A0hからFFhが読み出されるように設定■[As2] --------+------------------------------------------------------ 01h |200ライン時のカラー/モノクロ設定 |OUT 0068h,02h状態のときbit 0に0を返す(カラーモード) |OUT 0068h,03h状態のときbit 0に1を返す(モノクロモード) | 関連 I/O 0068h - 02h,03h --------+------------------------------------------------------ 02h |奇数ラスタのマスク |OUT 0068h,08h状態のときbit 0に0を返す(マスク |OUT 0068h,09h状態のときbit 0に1を返す(マスク | 関連 I/O 0068h - 08h,09h --------+------------------------------------------------------ 03h |画面表示のON/OFF |OUT 0068h,0Eh状態のときbit 0に0を返す(画面表示ON) |OUT 0068h,0Fh状態のときbit 0に1を返す(画面表示OFF) | 関連 I/O 0068h - 0Eh,0Fh --------+------------------------------------------------------ 04h |パレットモード |OUT 006Ah,00h状態のときbit 0に0を返す | (デジタルパレットモード) |OUT 006Ah,01h状態のときbit 0に1を返す | (アナログパレットモード) | 関連 I/O 006Ah - 00h,01h --------+------------------------------------------------------ 05h |GDC同期モード |OUT 006Ah,40h状態のときbit 0に0を返す | (CRTディスプレイモード) |OUT 006Ah,41h状態のときbit 0に1を返す | (プラズマディスプレイモード) | 関連 I/O 006Ah - 40h,41h --------+------------------------------------------------------ 06h |不明 |OUT 006Ah,44h状態のときbit 0に0を返す |OUT 006Ah,45h状態のときbit 0に1を返す | 関連 I/O 006Ah - 44h,45h --------+------------------------------------------------------ 07h |EGCモード |OUT 006Ah,04h状態のときbit 0に0を返す(GRCG互換モード) |OUT 006Ah,05h状態のときbit 0に1を返す(EGC拡張モード) | 関連 I/O 006Ah - 04h,05h --------+------------------------------------------------------ 08h |モードF/Fプロテクト |OUT 006Ah,06h状態のときbit 0に0を返す | (モードF/Fプロテクト設定) |OUT 006Ah,07h状態のときbit 0に1を返す | (モードF/Fプロテクト解除) | 関連 I/O 006Ah - 06h,07h --------+------------------------------------------------------ 09h |GDCクロック#0 |OUT 006Ah,82h状態のときbit 0に0を返す | (GDC 2.5MHzモード) |OUT 006Ah,83h状態のときbit 0に1を返す | (GDC 5.0MHzモード) | 関連 I/O 006Ah - 82h,83h | I/O 09A0h bit 1 --------+------------------------------------------------------ 0Ah |グラフィックスモード■[PC-H98シリーズ+256色ボード, | PC-9821初代・Ap・As・Ae・Ce・Ne・Af・Ap2・As2・Cs2・Ce2・ | An・Np・Ns・Es・Xt・Xa・Xn・Xp・Xs・Xe・Xf・Ap3・As3・ | Cf・Cx・Cb・Ld] |OUT 006Ah,20h状態のときbit 0に0を返す(16色モード) |OUT 006Ah,21h状態のときbit 0に1を返す(256色モード) | 関連 I/O 006Ah - 20h,21h --------+------------------------------------------------------ 0Bh |VRAMアクセスモード■[PC-H98シリーズ+256色ボード] |OUT 006Ah,62h状態のときbit 0に0を返す | (プレーンアクセスモード) |OUT 006Ah,63h状態のときbit 0に1を返す | (パックトピクセルモード) | 関連 I/O 006Ah - 62h,63h --------+------------------------------------------------------ 0Ch |不明 --------+------------------------------------------------------ 0Dh |VRAMバウンダリモード |OUT 006Ah,68h状態のときbit 0に0を返す(2画面モード) |OUT 006Ah,69h状態のときbit 0に1を返す(1画面モード) | 関連 I/O 006Ah - 68h,69h --------+------------------------------------------------------ 0Eh |グラフィックスモード■[PC-H98シリーズ+256色ボード] |OUT 006Ah,22h状態のときbit 0に0を返す(16・256色モード?) |OUT 006Ah,23h状態のときbit 0に1を返す(65536色モード) | 関連 I/O 006Ah - 62h,63h --------+------------------------------------------------------ 0Fh |65536色パレットモード■[PC-H98シリーズ+256色ボード] |OUT 006Ah,24h状態のときbit 0に0を返す | (パレットは使用しない) |OUT 006Ah,25h状態のときbit 0に1を返す | (一部パレット使用する) | 関連 I/O 006Ah - 24h,25h --------+------------------------------------------------------ 10h |不明■[H98] |OUT 006Ah,6Ah状態のときbit 0に0を返す |OUT 006Ah,6Bh状態のときbit 0に1を返す | 関連 I/O 006Ah - 6Ah,6Bh --------+------------------------------------------------------ 11h |全画面リバースモード■[PC-H98] |OUT 006Ah,26h状態のときbit 0に0を返す | (通常表示) |OUT 006Ah,27h状態のときbit 0に1を返す | (リバース表示) | 関連 I/O 006Ah - 26h,27h --------+------------------------------------------------------ 12h |256色オーバースキャンカラー■[PC-H98] |OUT 006Ah,2Ch状態のときbit 0に0を返す | (通常表示) |OUT 006Ah,2Dh状態のときbit 0に1を返す | (オーバースキャンあり) | 関連 I/O 006Ah - 2Ch,2Dh --------+------------------------------------------------------ 13h |全画面リバースモード■[PC-H98] |OUT 006Ah,28h状態のときbit 0に0を返す | (通常表示) |OUT 006Ah,29h状態のときbit 0に1を返す | (リバース表示) | 関連 I/O 006Ah - 28h,29h --------+------------------------------------------------------ 14h |描画プロセッサ選択■[H98] |OUT 006Ah,66h状態のときbit 0に0を返す | (GDC描画) |OUT 006Ah,67h状態のときbit 0に1を返す | (AGDC描画) | 関連 I/O 006Ah - 66h,67h --------+------------------------------------------------------ 15h |不明■[H98] |OUT 006Ah,60h状態のときbit 0に0を返す | EGC |OUT 006Ah,61h状態のときbit 0に1を返す | EEGC | 関連 I/O 006Ah - 60h,61h --------+------------------------------------------------------ 16h |不明■[H98] |OUT 006Ah,C2h状態のときbit 0に0を返す |OUT 006Ah,C3h状態のときbit 0に1を返す | 関連 I/O 006Ah - C2h,C3h --------+------------------------------------------------------ 17h |ビットマップ構成方向■[PC-H98] |OUT 006Ah,6Ch状態のときbit 0に0を返す(順方向) |OUT 006Ah,6Dh状態のときbit 0に1を返す(逆方向) | 関連 I/O 006Ah - 6Ch,6Dh --------+------------------------------------------------------ 18h |高速パレット書き込み■[PC-H98] |OUT 006Ah,2Ah状態のときbit 0に0を返す | (パレット書き込み通常) |OUT 006Ah,2Bh状態のときbit 0に1を返す | (パレット書き込み高速) | 関連 I/O 006Ah - 2Ah,2Bh --------+------------------------------------------------------ 19h |不明■[H98] |OUT 006Ah,48h状態のときbit 0に0を返す |OUT 006Ah,49h状態のときbit 0に1を返す | 関連 I/O 006Ah - 48h,49h --------+------------------------------------------------------ 1Ah |不明■[H98] |OUT 006Ah,C8h状態のときbit 0に0を返す |OUT 006Ah,C9h状態のときbit 0に1を返す | 関連 I/O 006Ah - C8h,C9h --------+------------------------------------------------------ 1Bh |不明■[H98] |OUT 006Ah,2Eh状態のときbit 0に0を返す |OUT 006Ah,2Fh状態のときbit 0に1を返す | 関連 I/O 006Ah - 2Eh,2Fh --------+------------------------------------------------------ 1Ch |不明■[H98] |OUT 006Ah,6Eh状態のときbit 0に0を返す |OUT 006Ah,6Fh状態のときbit 0に1を返す | 関連 I/O 006Ah - 6Eh,6Fh --------+------------------------------------------------------ 1Dh |不明■[H98] |OUT 006Ah,C0h状態のときbit 0に0を返す |OUT 006Ah,C1h状態のときbit 0に1を返す | 関連 I/O 006Ah - C0h,C1h --------+------------------------------------------------------ 1Eh |不明 | out6ah,46h/out6ah,47h■[Ne以降] | out6ah,80h/out6ah,81h | 関連 I/O 006Ah - 80h,81h■[PC-9821Ap・As・Ae] | I/O 006Ah - 46h,47h | ■[PC-9821Ce・Ne・Af・Ap2・As2 | ・Cs2・Ce・An] --------+------------------------------------------------------ 1Fh |不明■[PC-9821Ap・As・Ae] | 関連 I/O 006Ah - 08h,09h --------+------------------------------------------------------ 20h〜FFh|未使用 --------+------------------------------------------------------ 解説 o 各種、そのポートからの読み出しができないレジスタなどの読み出しを 行う。 関連 F8E8:0002h bit 7 I/O 0068h I/O 006Ah I/O 09A2h 名前 DPMSコントロール Undocumented 対象 PC-9821Ap2・As2・Bp・Bs・Be・Bf・Cs2・Ce2・Ts・An・Xt・Xa・Xn・Xp・Xs・Xe・Xf・Cf・Cx・Cb PC-9801BA2・BX2・BA2・BA3・BX3・BX4 機能 [READ/WRITE] bit 7: VSYNCマスク 0= マスクしない 1= マスクする bit 6: HSYNCマスク 0= マスクしない 1= マスクする bit 6〜0: 未使用(0にする) 解説 o ディスプレイサスペントモードを設定するために使用する o DPMSを制御するためにこのI/Oを直接操作することは望ましくない。 このI/Oを直接操作すると、98NOTEシリーズのDPMS非対応機種などで 液晶ディスプレイの表示が乱れる機種がある。 INT 1Fh - Function 93hを使用することによって、DPMS非対応機種で誤動作 させることなく、DPMSコントロールを行うことが可能であるので、そちら を使用するべきである。 関連 INT 1Fh - Function 93h I/O 09A4h 名前 不明 Undocumented 対象 PC-H98 解説 o 詳細不明 I/O 09A6h 名前 256色オーバースキャンカラー Undocumented 対象 PC-H98 機能 [READ/WRITE] bit 7〜0: オーバースキャンカラー 解説 o オーバースキャン領域で出力するパレット番号を指定する。 関連 I/O 006Ah - 2Ch,2Dh I/O 006Ch I/O 00A8h I/O 00AAh I/P 00ACh I/O 00AEh I/O 09A8h 名前 ノーマルモード水平走査周波数設定 Undocumented 対象 PC-98GS,PC-H98,PC-9821■[Tsを除く],PC-9801BA2・BS2・BX2,PC-9801NS/A 機能 [READ/WRITE]■[PC-9801NS/A以外] bit 7〜2: 未使用(常に0にする) bit 1,0: 周波数切り替え 11b= 設定禁止 10b= 設定禁止 01b= 31.47kHz 00b= 24.83kHz [READ/WRITE]■[PC-9801NS/A] bit 7: 不明 bit 6〜0: 未使用(常に0にする) 解説 o ディスプレイ周波数を切り替える。ディスプレイ周波数を切り替えたら、 GDCのSYNCコマンド等で同期信号を設定しなおさないと正常に表示が 行われない。 o 通常は下位1ビットのみを使用し、24kHz/31kHzを切り替える。 o ハイレゾモード時にこのポートを操作すると画面が乱れる。 o 現在では、31kHzモードの使用が推奨されている。 u PC-9821Bp・Bs・Be・Bf・Xt・Xa・Xn・Xp・Xs・Xe,PC-9801BA2・BS2・BX2・BA3・BX3・BX4 では、プログラマブルPLLシンセサイザによりディスプレイのドットクロック 周波数を任意に設定できる。プログラマブルPLLシンセサイザへのアクセスも このI/O 09A8hを使用するが、通常はマスクされているので設定できない。 関連 INT 18h - Function 30h INT 18h - Function 31h 0000:0459h bit 3 I/O 08F0h,08F2h - 0016h I/O 09ACh 名前 ハイレゾモード水平走査周波数設定 Undocumented 対象 PC-H98 PC-9821Ap・As・Ae・Af・Ap2・As2・An・Ap3・As3 + PC-9821A-E02(98ハイレゾボード) ハイレゾモード 機能 [READ/WRITE] bit 7〜2: 未使用(つねに0にする) bit 1,0: 周波数切り替え 11b= 設定禁止 10b= 50kHz 01b= 31.47kHz 00b= 設定禁止 解説 o ディスプレイ周波数を切り替える。ディスプレイ周波数を切り替えたら、 GDCのSYNCコマンド等で同期信号を設定しなおさないと正常に表示が 行われない。 o ノーマルモード時にこのポートを操作すると画面が乱れる。 関連 0000:0459h bit 3 I/O 09AEh 名前 ピクセルマスク 対象 PC-H98 機能 [READ/WRITE] bit 7〜0: PM7〜0 ライトピクセルマスク 解説 o ピクセルデータの該当するbitを0にすることにより、ピクセルの当該ビット の書き込みをマスクする。 o 通常、256色/16M色のときFFh、16色/16M色のとき0Fhを設定する。 I/O 0EA0h 名前 不明 Undocumented 対象 PC-H98 機能 [READ] bit 7〜0: 詳細不明 00h= ノーマルモード 03h= ノーマルモードで行間あき25行 06h= ハイレゾモードでインターレース [WRITE] bit 7〜0: 詳細不明 00h= ノーマルモード 01h= 縦に縮む 02h= 縦に縮む 03h= ノーマルモードで行間あき25行 04h= 画面が右にずれる 06h= ハイレゾモードでインターレース 解説 o 詳細不明 関連 0000:053Bh,0000:0452〜0454h 0000:054Ch bit 4 I/O 0EA2h 名前 メモリウェイト設定? Undocumented 対象 PC-H98 機能 [READ/WRITE] bir 7〜5: 未使用(常に000b) bit 4: 不明(常に1) bit 3: メモリウェイト 1= ウェイト多い 0= ウェイト少ない * このビットに1を書き込みとウェイト量が増える。 読みだし可。 bit 2: メモリウェイトキャンセル 1= ウェイトキャンセル 0= ウェイトキャンセル * このビットに1を書き込みとウェイト量が減る。 読みだし不可。 bit 1: 未使用(常に0) bit 0: 不明(常に1) 解説 o メモリのウェイト数を増減させる。 I/O 0EA4h 名前 不明 Undocumented 対象 PC-H98 機能 [WRITE] bit 7〜6: 未使用 bit 0: 不明 1= 画面が乱れる 0= 通常表示 解説 o 詳細不明 o グラフィック表示関係 関連 I/O 00A4h I/O 0EA6h 名前 不明 Undocumented 対象 PC-H98 機能 [WRITE] bit 7〜6: 未使用 bit 0: 不明 1= 正常に描画できない 0= 通常描画 解説 o 詳細不明 o グラフィック描画関係 関連 I/O 00A6h I/O 0EA8h 名前 拡張VRAMバンク切り替え Undocumented 対象 PC-H98 256色モード 機能 [READ/WRITE] 00h= バンク#0 01h= バンク#1 解説 o アクセスするVRAMを選択する。バンク#0がVRAMの前半、バンク#1がVRAMの 後半であり、1バンクは128KB単位である。 関連 I/O 006Ah - 62h,63h I/O 00A6h I/O 0EAAh 名前 VRAM切り離し Undocumented 対象 PC-9821,PC-9801BA2・BS2・BX2・BA3・BX3・BX4・NS/A・NL/A 機能 [READ/WRITE] bit 7〜1: 未使用 bit 0: VRAM切り離し 1= する 0= しない 解説 o VRAMをCPUのメモリ空間から分離させるかどうか制御する。 VRAMが切り離されても表示は行われる。 o VRAMがローカルバス接続されている機種でのみ有効。 関連 A000:0000〜7FFFh A800:0000〜7FFFh B000:0000〜7FFFh B800:0000〜7FFFh E000:0000〜7FFFh I/O 0EACh 名前 不明 Undocumented 対象 PC-H98 機能 [WRITE/READ] bit 7〜0: 不明 解説 o 詳細不明 I/O 0EAEh 名前 不明 Undocumented 対象 PC-H98 機能 [WRITE/READ] bit 7〜0: 不明 解説 o 詳細不明 ------------------------------------------------------------------------------- ■EEGC 対象 PC-H98 解説 o EEGCはPC-H98シリーズに搭載された、AGDCに対応したグラフィック チャージャである。 o 詳細不明。 I/O 08A0h I/O 08A2h I/O 08A4h 解説 o 詳細不明 関連 I/O 006Ah - 60h,61h