(57)【特許請求の範囲】
【請求項１】
ビットマップ形式の第１の画像データを水平方向Ｘドット垂直方向Ｙ行からなりかつＺ枚のプレーンによって各ドットの色を指定するキャラクタ形式の第２の画像データに変換するデータ変換装置であって、
Ｚビットからなるビットマップ形式の色コードを１つのアドレスに少なくとも１ドット分記憶する第１記憶手段、
前記第１記憶手段から前記色コードを読み出すための第１アドレスを発生する第１アドレス発生手段、
少なくとも１ドット分の前記色コードを記憶する記憶容量を有しかつ前記第１記憶手段から読み出された色コードをビット並列で受けるＸ個の一時記憶を含む第２記憶手段、
前記第２記憶手段に含まれるＸ個の前記一時記憶のうちいずれの一時記憶に前記第１記憶手段から読み出された色コードを記憶させるかを定めるための第２アドレスを発生する第２アドレス発生手段、
前記一時記憶に記憶された前記色コードの中から１ビットを選択するための選択信号を発生してＸ個の前記一時記憶のそれぞれに前記選択信号を与える選択信号発生手段、
前記選択信号に応答してＸ個の前記一時記憶に記憶された前記色コードの中から１ビットを選択して出力することにより色コードからＸビットの１つの行データを作成するＸ個の選択手段、
前記行データをビット並列で受けて前記キャラクタ形式で記憶する第３記憶手段、および
前記行データが記憶されるべき前記第３記憶手段内の第３アドレスを発生して１つの行のデータをキャラクタ形式に変換して第３記憶手段に記憶させる第３アドレス発生手段を備える、画像データ変換装置。
【請求項２】
前記第１記憶手段は１つのアドレスに複数ドット分の前記色コードをパック形式で記憶し、さらに
前記第１アドレス発生手段は前記第１アドレスの変化速度を前記第１記憶手段の１つのアドレスに記憶された色コードの数に応じて決定する、請求項１記載の画像データ変換装置。
【請求項３】
Ｘ個の前記一時記憶は、各々が、前記第１記憶手段の１つのアドレスに記憶された前記色コードを記憶可能な記憶容量を有しかつ第１記憶手段の１つのアドレスからの色コードを並列に受けるＸ個のバッファレジスタからなり、
前記第２アドレス発生手段は前記第１記憶手段の１つのアドレスに記憶された色コードの数に基づいてＸ個の前記バッファレジスタのうち色コードを記憶すべき少なくとも１個のバッファレジスタを指定する前記第２アドレスとしてのイネーブル信号を発生するイネーブル信号作成手段を含む、請求項２記載の画像データ変換装置。
【請求項４】
前記選択信号発生手段は、リードデータカウンタ、および前記リードデータカウンタのカウント値と前記第１記憶手段の１つのアドレスに記憶された色コードの数とから前記選択信号を発生して前記選択手段に与えるリードデータ信号変換手段を含む、請求項３記載の画像データ変換装置。
【請求項５】
前記第１アドレス発生手段は、
前記第１アドレスを発生するためのソースアドレスを出力するソースアドレスカウンタ、
前記第１記憶手段の１つのアドレスに記憶された色コードの数に基づいて前記ソースアドレスを所定ビット数第１の方向にシフトする第１シフト手段、
前記第１シフト手段から与えられる前記第１方向にシフトされたソースアドレスの所定の複数ビットのビット位置を変更することにより水平方向にＸ×２ｎ（ｎは正の整数）ドット連続する前記第１の画像データを前記第２の画像データに変換するための第１ビット位置変更手段、および
前記第１アドレスの変化速度を決定するために前記第１ビット位置変更手段から出力された前記第１方向にシフトされかつビット位置が変更されたソースアドレスを前記第１記憶手段の１つのアドレスに記憶された色コードの数に基づいて第１方向とは逆の第２方向に所定ビット数シフトして前記第１アドレスを出力する第２アドレス手段を含む、請求項２ないし４のいずれかに記載の画像データ変換装置。
【請求項６】
前記第１記憶手段は前記第１の画像データをラスタスキャンディスプレイの１水平ライン毎に記憶し、前記第３記憶手段は前記第２の画像データをＸドットＹ行で構成されるプレーン毎に記憶し、
前記第３アドレス発生手段は、前記第３記憶手段がＸ個の前記選択手段から出力される１水平ライン毎の行データをプレーン毎の前記第２の画像データに変換して記憶するために、ディスティネーションを出力するディスティネーションアドレスカウンタ、および前記ディスティネーションアドレスカウンタのカウント値のビット位置を変更することにより前記第３アドレスを出力する第２ビット位置変更手段を含む、請求項１ないし５のいずれかに記載の画像データ変換装置。
【請求項７】
１対の前記第２記憶手段を設け、一方の第２記憶手段から前記行データが読み出されるとき他方の第２記憶手段に前記第１記憶手段からの前記色コードが書き込まれる、請求項１ないし６のいずれかに記載の画像データ変換装置。
【請求項８】
１対の前記第３記憶手段を設け、一方の第３記憶手段から前記第２の画像データが読み出されるとき他方の第３記憶手段にＸ個の前記選択手段からの前記行データが書き込まれる、請求項１ないし６のいずれかに記載の画像データ変換装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は画像データ変換装置に関し、特にたとえばビットマップ形式の画像データをキャラクタマップ形式の画像データに変換し、あるいはビットマップ形式の画像データを別の形式のビットマップ形式の画像データに変換する、たとえばビデオゲーム機やコンピュータグラフィックスのような画像処理装置に利用される、画像データ変換装置に関する。
【０００２】
【従来の技術】
安価であることが条件のビデオゲーム機等においては、メモリ（ＲＡＭ）の容量を節約するために、従来、キャラクタマップ形式が採用されている。キャラクタマップ形式では、１画面中に同じキャラクタを数個所で表示する場合に、スクリーンＲＡＭの該当の場所に同じキャラクタ番号を書き込むだけでよく、キャラクタ単位の画像データの圧縮ができるという利点がある。
【０００３】
一方、近年、ビデオゲーム機においても、よりリアリティのある画像表現が求められ、ビデオ映像等の自然画像がＤ／Ａ変換されてゲーム画像データとして使用されることが多くなった。このような自然画像を用いる場合は、１画面中で同じキャラクタが表示されることがなく、したがってキャラクタマップ形式で表すメリットはない。むしろ、ゲーム画像データに対して任意の演算操作を加え易いという観点から、ビットマップ形式で表す利点の方が大きい。すなわち、ビデオ画像データに対して任意の演算操作（たとえば、拡大，縮小，データ圧縮，グラデーション付加等）を加える場合、Ｖ−ＲＡＭあるいは画像バッファＲＡＭに記憶された画像データを、キャラクタマップ形式より、ビットマップ形式で記憶する方が、１ドット毎の演算操作を加え易い。したがって、このような場合には、ビットマップ形式が有利であり、さらに、ＣＰＵが１アドレスをアクセスすることにより、１ドット分の画像データが得られるように記憶されていることが望ましい。
【０００４】
他方、或る種のビデオゲーム機においては、１ドットによって表現できる色の数はその画面モード、すなわち、色コードのビット数によって４色，１６色あるいは２５６色の３種類が選択できる。４色，１６色あるいは２５６色の色を表すためには、それぞれ、２ビット，４ビットあるいは８ビットの画像データ（色コード）が必要である。したがって、画像データに対して演算操作を加える場合の最も望ましい画像データの記憶方法は、１アドレスについて２ビット，４ビットあるいは８ビットの画像データを記憶することである。
【０００５】
ところで、ビデオゲーム機等に用いられている半導体メモリは、通常、１アドレスが８ビットで構成されている。したがって、上述のように１アドレスに２ビットまたは４ビットの画像データを記憶すると、それぞれ、６ビットまたは４ビットが未使用となって無駄を生じる。ただし、１アドレスにつき８ビットを記憶する場合には未使用のビットがないので、無駄は生じない。半導体メモリを無駄に使用しないためには、４色モードのときには１アドレスに４ドット分の画像データ（２ビット×４ドット＝８ビット）を、また１６色モードのときには２ドット分の画像データ（４ビット×２ドット＝８ビット）を、それぞれ記憶させることが望ましいが、これでは、１アドレスをアクセスする毎に４ドット分または２ドット分の画像データが得られることになり、上述のドット毎の演算操作を行いにくい。
【０００６】
【発明が解決しようとする課題】
ところで、市場では、ソフトウェア（たとえばゲームソフト）に先行してハードウェア（たとえばビデオゲーム機）が発売されるのが通常である。上述のような場合、先行して発売されたハードウェアがビットマップ形式を採用していれば何ら問題は生じないが、ハードウェアがキャラクタマップ形式を採用しており、しかもそのハードウェアが広く流通している場合には、営業的にはキャラクタマップ形式のハードウェアのためのソフトウェアを製作した方が有利であるが、技術的にはそれが不利になるという矛盾が生じる。
【０００７】
そこで、前者の場合には、ソフトウェアではゲーム画像データをビットマップ形式で記憶しておき、それをキャラクタマップ形式に変換してハードウェアに与えるような画像データ変換技術が望まれる。
また、後者の場合には、画像用バッファＲＡＭである半導体メモリには１アドレスにつき４ドット分または２ドット分の画像データを記憶（以下、「パック形式」という）させておき、ＣＰＵ等からアクセスするときには、１アドレスをアクセスする毎に１ドット分の画像データ（すなわち、ビットマップ形式）が得られるようなビットマップデータの変換装置が望まれる。
【０００８】
それゆえに、この発明の主たる目的は、ビットマップ形式の画像データをキャラクタマップ形式の画像データに変換できる、画像データ変換装置を提供することである。
この発明の他の目的は、パック形式のビットマップ形式の画像データをビットマップ形式の１ドット毎の画像データに変換できる、画像データ変換装置を提供することである。
【０００９】
【課題を解決するための手段】
第１発明は、ビットマップ形式の第１の画像データを水平方向Ｘドット垂直方向Ｙ行からなりかつＺ枚のプレーンによって各ドットの色を指定するキャラクタ形式の第２の画像データに変換するデータ変換装置であって、Ｚビットからなるビットマップ形式の色コードを１つのアドレスに少なくとも１ドット分記憶する第１記憶手段、第１記憶手段から色コードを読み出すための第１アドレスを発生する第１アドレス発生手段、少なくとも１ドット分の色コードを記憶する記憶容量を有しかつ第１記憶手段から読み出された色コードをビット並列で受けるＸ個の一時記憶を含む第２記憶手段、第２記憶手段に含まれるＸ個の一時記憶のうちいずれの一時記憶に第１記憶手段から読み出された色コードを記憶させるかを定めるための第２アドレスを発生する第２アドレス発生手段、一時記憶に記憶された色コードの中から１ビットを選択するための選択信号を発生してＸ個の一時記憶のそれぞれに選択信号を与える選択信号発生手段、選択信号に応答してＸ個の一時記憶に記憶された色コードの中から１ビットを選択して出力することにより色コードからＸビットの１つの行データを作成するＸ個の選択手段、行データをビット並列で受けてキャラクタ形式で記憶する第３記憶手段、および行データが記憶されるべき第３記憶手段内の第３アドレスを発生して１つの行のデータをキャラクタ形式に変換して第３記憶手段に記憶させる第３アドレス発生手段を備える、画像データ変換装置である。
【００１０】
第２発明は、ビットマップ形式の複数のドットの色コードを１ワードで記憶するメモリ、メモリに格納されている色コードのドット数に相当するアドレスを含む仮想アドレスをメモリのアドレスに変換するアドレス変換手段、アドレス変換手段からのアドレスに従ってメモリから１ワードのデータを読み出す読出手段、および１ワードのデータから仮想アドレスで指定された１つのドットの色コードを取り出す色コード取出手段を備える、画像データ変換装置である。
【００１１】
第３発明は、ビットマップ形式の複数のドットの色コードを１ワードで記憶するメモリ、メモリに格納されているドット数に相当するアドレスを含む仮想アドレススペースをメモリのアドレスに変換するアドレス変換手段、アドレス変換手段からのアドレスに従ってメモリから前記１ワードのデータを読み出す読出手段、読出手段によって読み出された１ワードのデータをラッチするリードデータラッチ手段、色コードを含むライトデータを与えるライトデータ付与手段、リードデータラッチ手段にラッチされたデータおよびライトデータ付与手段によって与えられた色コードに基づいてメモリに書き込まれる１ワードのライトデータを作成するライトデータ変換手段を備える、画像データ変換装置である。
【００１２】
【作用】
第１発明においては、実施例のＢ−ＲＡＭ３８（図１）である第１記憶手段には、１ワード（たとえば８ビット）のアドレスに、８ビットモードでは１つのドットの色コードが、４ビットモードでは２つのドットの色コードが、そして２ビットモードでは４つのドットの色コードが、記憶される。実施例でいえば第１アドレス変換回路１２４（図１６）、すなわち、ＢＤＭＡ回路７２（図４，図１７−図１８）である第１アドレス発生手段が、たとえばＣＰＵからプリセットロードされたソースアドレスからインクリメントされるソースアドレスカウンタ１２２（図１６，図１８）のカウント値を第１記憶手段の第１アドレスに変換する。
【００１３】
具体的には、第１アドレス発生手段は、第１シフト手段，第１ビット位置変更手段、および第２シフト手段を含む。
第１シフト手段は、実施例の３−１セレクタ１５４（図１７）であり、色コードのビット数に応じたビット数だけ、ソースアドレスを第１の方向（上位側）にシフトする。色コードが８ビットの場合、第１シフト手段は、ソースアドレスを０ビットシフトする。第１シフト手段は、４ビットモードではソースアドレスを１ビットシフトし、２ビットモードではソースアドレスを２ビットシフトする。
【００１４】
第１ビット位置変更手段は、実施例でいえばセレクタ１６２（図１８）であり、上述のようにしてビットシフトされた後のソースアドレスを各入力ビットに受ける。第１ビット位置変更手段は、水平方向のキャラクタ数に応じて異なる態様で、特定の入力ビットの位置を変更する。
たとえば、水平方向のキャラクタ数が「２」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第３番目の出力ビットに、第３番目の入力ビットを第４番目の出力ビットに、第４番目の入力ビットを第５番目の出力ビットに、そして第５番目の入力ビットを第２番目の出力ビットに、それぞれ、接続する。
【００１５】
水平方向のキャラクタ数が「４」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第４番目の出力ビットに、第３番目の入力ビットを第５番目の出力ビットに、第４番目の入力ビットを第６番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、そして第６番目の入力ビットを第３番目の出力ビットに、それぞれ、接続する。
【００１６】
水平方向のキャラクタ数が「８」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第５番目の出力ビットに、第３番目の入力ビットを第６番目の出力ビットに、第４番目の入力ビットを第７番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、第６番目の入力ビットを第３番目の出力ビットに、そして第７番目の入力ビットを第４番目の出力ビットに、それぞれ、接続する。水平方向のキャラクタ数が「１６」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第６番目の出力ビットに、第３番目の入力ビットを第７番目の出力ビットに、第４番目の入力ビットを第８番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、第６番目の入力ビットを第３番目の出力ビットに、第７番目の入力ビットを第４番目の出力ビットに、そして第８番目の入力ビットを第５番目の出力ビットに、それぞれ、接続する。水平方向のキャラクタ数が「３２」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第７番目の出力ビットに、第３番目の入力ビットを第８番目の出力ビットに、第４番目の入力ビットを第９番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、第６番目の入力ビットを第３番目の出力ビットに、第７番目の入力ビットを第４番目の出力ビットに、そして第８番目の入力ビットを第５番目の出力ビットに、それぞれ、接続する。
【００１７】
すなわち、第１ビット位置変換手段は、水平方向にＸ×２ｎ  ドット連続する第１の画像データを第２の画像データに変換する。
第２シフト手段は、実施例の３−１セレクタ１６４（図１８）に相当し、第１シフト手段と同じビット数だけ、第１シフト手段とは逆方向の第２の方向（たとえば下位側）に、第１ビット位置変更手段の出力をシフトする。このようにして、ソースアドレスに基づいて、第１記憶手段、すなわち、Ｂ−ＲＡＭ３８の第１アドレスが出力される。
【００１８】
したがって、第１記憶手段からビットマップ形式の色コードが読み出される。この色コードは、実施例ではキャララインバッファ１２６および１２８（図１６，図２７，図２８）である第２記憶手段に、ビット並列に記憶される。
具体的には、キャララインバッファ１２６および１２８は、８個のバッファレジスタＢ０−Ｂ７を含み、各レジスタは８ビットの色コードを記憶する。このとき、第２アドレス発生手段、実施例でいえば第２アドレス変換回路１３２（図１６，図１７）、すなわち、イネーブル信号発生回路１７０（図２７）が、たとえばＣＰＵからプリセットロードされたライトアドレスからインクリメントされるライトアドレスカウンタのカウント値に基づいて、色コードのビット数に応じて異なる態様（図２９−図３１）で、バッファレジスタＢ０−Ｂ７をイネーブルするためのイネーブル信号を出力する。８ビットモードでは各バッファレジスタＢ０−Ｂ７が１つずつ順次、４ビットモードでは各バッファレジスタＢ０−Ｂ７が２つずつ順次、そして２ビットモードでは各バッファレジスタＢ０−Ｂ７が４つずつ順次イネーブルされる。したがって、８ビットモードでは、各バッファレジスタＢ０−Ｂ７に異なる１つのドットの色コードが記憶される。４ビットモードでは、２つのバッファレジスタＢ０およびＢ１，Ｂ２およびＢ３，Ｂ４およびＢ５，そしてＢ６およびＢ７に、それぞれ、同じ色コードが記憶される。２ビットモードでは、４つのバッファレジスタＢ０，Ｂ１，Ｂ２およびＢ３，そしてＢ４，Ｂ５，Ｂ６およびＢ７に、それぞれ、同じ色コードが記憶される。
【００１９】
選択手段は、具体的には、８つのバッファレジスタＢ０−Ｂ７にそれぞれ結合された８つのセレクタＳ０−Ｓ７（図２８）を含む。セレクタＳ０−Ｓ７には、選択信号発生手段、具体的にはリードデータ信号変換回路１３６（図１６，図２７）によって発生された選択信号、すなわちリードデータ信号が与えられ、それによって各セレクタが各バッファレジスタの適宜のビットを選択的に読み出す。したがって、セレクタＳ０−Ｓ７から、キャラクタマップ形式の画像データを構成する１つのプレーンの１つの行のデータが出力される（図３２−図３５）。
【００２０】
第３記憶手段は、実施例でいうＩ−ＲＡＭ４４（図１，図４）であり、この第３記憶手段には２つのキャラクタバッファが形成される。そして、各キャラクタバッファには、第３アドレス発生手段、具体的にはＩＤＭＡ回路９０によって発生される第３アドレスに従って、データ作成手段から出力された各プレーンのデータが記憶される。すなわち、キャラクタバッファには、８ビットモードでは８つのプレーン（図３８）の、４ビットモードでは４つのプレーン（図４０）の、そして２ビットモードでは２つのプレーン（図４２）の画像データが記憶され、それが、たとえばＶ−ＲＡＭ３０（図１）またはＷ−ＲＡＭ２４（図１）に転送される。
【００２１】
このようにして、第１記憶手段に記憶されたビットマップ形式の第１の画像データがキャラクタマップ形式の第２の画像データに変換される。
第２発明では、実施例のＢ−ＲＡＭ３８に相当するメモリに、いわゆるパック形式で、１ワードに複数のドットの色コードが記憶される。たとえば、１ワードが８ビットであり、１つのドットの色コードが４ビットであれば、メモリの１アドレスには、２ドットの色コードが記憶される。１つのドットの色コードが２ビットであれば、１アドレスに４つの色コードが記憶される。また、実施例ではＢＢＣ回路７０（図４）に含まれるＢＢＣアドレス変換回路１０４（図５）に相当するアドレス変換手段が、たとえばＣＰＵから与えられるたとえば６０００００ｈ番地−７ＦＦＦＦＦｈ番地の仮想アドレスを、たとえば４０００００ｈ番地−４７ＦＦＦＦｈ番地のメモリの実アドレスに変換する。応じて、メモリから１ワードのデータが読み出される。仮想アドレスのたとえば最下位２ビットが１ワードに記憶されている複数の色コードのどれかを指定する情報を有するので、実施例でいえばリードデータ変換回路１１６（図５）である色コード取出手段は、仮想アドレスで指定されるドットの色コードのみを取り出す。したがって、いわゆるパック形式で記憶されているビットマップ形式の色コードを、１ドット毎に読み出することができる。
【００２２】
第３発明では、実施例のＢ−ＲＡＭ３８に相当するメモリに、いわゆるパック形式で、１ワードに複数のドットの色コードが記憶される。たとえば、１ワードが８ビットであり、１つのドットの色コードが４ビットであれば、メモリの１アドレスには、２ドットの色コードが記憶される。１つのドットの色コードが２ビットであれば、１アドレスに４つの色コードが記憶される。また、実施例ではＢＢＣ回路７０（図４）に含まれるＢＢＣアドレス変換回路１０４（図５）に相当するアドレス変換手段が、たとえばＣＰＵから与えられるたとえば６０００００ｈ番地−７ＦＦＦＦＦｈ番地の仮想アドレスを、たとえば４０００００ｈ番地−４７ＦＦＦＦｈ番地のメモリの実アドレスに変換する。応じて、メモリから１ワードのデータが読み出される。このリードデータは、実施例のリードデータラッチ１２０（図５）に相当するリードデータラッチ手段にラッチされる。一方、たとえばＣＰＵからライトデータが入力され、このライトデータは、ライトデータ付与手段を構成する実施例のライトデータラッチ１１８（図５）にラッチされる。ライトデータは、４ビットモードのときには「００００＊＊＊＊」、そして２ビットモードのときには「００００００＊＊」のように右詰めで与えられる。そして仮想アドレスのたとえば最下位ビットまたは最下位２ビットが１ワードに記憶されている複数の色コードのどれかを指定する情報を有するので、実施例のライトデータ変換回路１１４（図５）に相当するライトデータ変換手段は、上述の色コードを１ワードのリードデータのその仮想アドレスで指定される位置のデータと置き換えることによって、メモリへ書き込むべきライトデータを作成する。このライトデータがアドレス変換手段によって指定されメモリのアドレスに書き込まれる。したがって、ビットマップ形式の色コードをいわゆるパック形式でメモリに書き込むことができる。
【００２３】
【発明の効果】
第１発明によれば、ビットマップ形式の画像データをキャラクタマップ形式の画像データに変換できる。
第２発明によれば、パック形式のビットマップ形式の画像データをビットマップ形式の１ドット毎の画像データに変換できる。
【００２４】
第３発明によれば、ビットマップ形式の画像データを効率よくメモリに記憶することができる。
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【００２５】
【実施例】
以下に示す実施例では、この発明はビデオゲーム機に適用される。しかしながら、この発明はビデオゲーム機のみならず、他の任意の画像処理装置に適用できることを予め指摘しておく。
図１に示す実施例のビデオゲーム機１０は、本体１２およびその本体１２にたとえば６４ピンのコネクタ１６によって着脱自在に装着されるカートリッジ１４を含む。本体１２は本体側プロセサとしてのＳ−ＣＰＵ１８，およびＰＰＵ（Ｐｉｃｔｕｒｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）  ２０を含む。Ｓ−ＣＰＵ１８は、カートリッジ１４に含まれるＭ−ＲＯＭ２２に予め格納されているプログラムに従って動作する。Ｓ−ＣＰＵ１８にはワーキングＲＡＭ、すなわちＷ−ＲＡＭ２４が結合される。本体１２はまた、発振器２６を含み、この発振器２６からの約２１ＭＨｚの原クロック信号２１Ｍ  は、クロックジェネレータ２８に与えられる。クロックジェネレータ２８は分周器（図示せず）を含み、この分周器によって原クロック信号２１Ｍ  が８分周されて、約２．６８ＭＨｚのシステムクロックＳＹＳＮＣ  としてＳ−ＣＰＵ１８に与えられる。なお、この原クロック信号２１Ｍ  は、システムクロック信号ＳＹＳＮＣ  とともに、カートリッジ１４のクロックジェネレータ３０に与えられる。
【００２６】
本体１２に含まれるＰＰＵ２０は、Ｓ−ＣＰＵ１８の制御の下で、Ｖ−ＲＡＭ３２と協働して画像処理を実行し、ビデオ信号をモニタ３２に与える。したがって、モニタ３４の画面上にはゲーム画像が表示される。なお、本体１２のＳ−ＣＰＵ１８やＰＰＵ２０の一般的な動作それ自体は既に周知であるばかりでなく、この発明には直接関係しないので、ここでは、詳細な説明は省略する。
【００２７】
カートリッジ１４は、上述のＭ−ＲＯＭ２２のほかに、コプロセサ３６およびＢ−ＲＡＭ３８を含み、コプロセサ３６は、Ｓ−ＣＰＵ１８に対して補助演算機能を達成するためのＣＰＵコアとしてのＣ−ＣＰＵ４０，アクセス制御回路４２，およびＩ−ＲＡＭ４４を含む。Ｃ−ＣＰＵ４０は、クロックジェネレータ３０からのクロック信号ＰＨＩ２を受ける。Ｂ−ＲＡＭ３８は、たとえばリチウム電池等でバックアップされたＲＡＭであり、たとえば４Ｍビットの記憶容量を有する。Ｉ−ＲＡＭ４４は、たとえば１６ＫビットのＳ−ＲＡＭで構成される。Ｂ−ＲＡＭ３８およびＩ−ＲＡＭ４４は、ともに、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０の外部ＲＡＭとして機能する。なお、Ｍ−ＲＯＭ２２は、たとえば最大６４ＭビットのマスクＲＯＭで構成され、その中には、ゲーム用プログラムが格納されている。Ｍ−ＲＯＭ２２のアクセスタイムは、一例として、１６ビット幅で約１２０ナノ秒である。
【００２８】
図１に示す実施例では、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０は、たとえばウエスタンデザインセンター（ＷＤＣ）製の“６５Ｃ８１６”のような同じＣＰＵコアを用いる。ただし、この実施例では、Ｃ−ＣＰＵ４０の動作周波数は１０．７３ＭＨｚであり、Ｓ−ＣＰＵ１８の動作周波数は２．６８ＭＨｚである。すなわち、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０は、同じＣＰＵコアを用いるために同じアーキテクチュアで動作するが、動作速度についていえば、Ｃ−ＣＰＵ４０はＳ−ＣＰＵ１８の最大４倍である。すなわち、８ビットＣＰＵであるＳ−ＣＰＵ１８のサイクルタイムは約３７２ナノ秒であり、Ｃ−ＣＰＵ４０のサイクルタイムは約９３ナノ秒である。他方、Ｍ−ＲＯＭ２２のアクセスタイムは、上述のように、８ビット幅で約６０ナノ秒であるため、Ｍ−ＲＯＭ２２のアクセスタイムはＣ−ＣＰＵ４０のサイクルタイムより短い。そこで、この実施例では、このようなタイム差を利用して、Ｓ−ＣＰＵ１８にはＭ−ＲＯＭ２２をアクセスしてそこからプログラムデータを読み出すに十分なたとえば１８６ナノ秒を割り当て、Ｃ−ＣＰＵ４０にも１８７ナノ秒を割り当てることによって、Ｓ−ＣＰＵ１８とＣ−ＣＰＵ４０とが、実質的に同時に、Ｍ−ＲＯＭ２２にアクセスできるようにしている。しかしながら、このような動作速度については単なる一例であり、他の任意の動作速度が利用可能であることはいうまでもない。
【００２９】
図１のビデオゲーム機１０において、Ｓ−ＣＰＵ１８，Ｗ−ＲＡＭ２４およびコプロセサすなわちＣ−ＣＰＵ４０は、アドレスバス４６で結合され、Ｓ−ＣＰＵ１８，ＰＰＵ２０，Ｗ−ＲＡＭ２４およびコプロセサ３６すなわちＣ−ＣＰＵ４０は、データバス４８で結合される。コプロセサ３６すなわちＣ−ＣＰＵ４０とＭ−ＲＯＭ２２とはアドレスバス５０およびデータバス５２によって結合され、コプロセサすなわちＣ−ＣＰＵ４０とＢ−ＲＡＭ３８とは、アドレスバス５４およびデータバス５６によって結合される。アドレスバス４６は２４ビットであり、データバス４８は８ビットであり、アドレスバス５０は２３ビットであり、データバス５２は１６ビットであり、アドレスバス５４は１９ビットであり、データバス５６は８ビットである。そして、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０は、同じアクセス制御回路４２を介して、Ｍ−ＲＯＭ２２またはＢ−ＲＡＭ３８をアクセスする。したがって、図２および図３に示すように、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０には、Ｓ−ＣＰＵ１８のみがアクセスできるＷ−ＲＡＭ２４のアドレススペースを除き、同じたとえば２４ビットのアドレススペースが割り付けられている。
【００３０】
図２には、Ｓ−ＣＰＵ１８から見たメモリマップが示され、図３にはＣ−ＣＰＵ４０から見たメモリマップが示される。図２および図３はほぼ同じである。図２および図３から明らかなように、Ｂ−ＲＡＭ３８は、アドレスの４０００００ｈ番地から４７ＦＦＦＦｈ番地に割り付けられていて、そこに、ビットマップ形式の各ドットの色コード（ドットデータ）が、いわゆるパック形式で記憶される。たとえば、色コードが２ビットの場合、すなわち４色モードの場合には、１アドレス（１ワード＝８ビット）に４ドット分の色コードが記憶される。色コードが４ビットの場合、すなわち１６色モードの場合には１アドレスに２ドット分の色コードが記憶される。ただし、色コードが８ビット、すなわち２５６色モードの場合には、１アドレスに１ドットの色コードが記憶され、この場合、１ドット／１アドレスとなる。
【００３１】
なお、図３に示すように、Ｃ−ＣＰＵ４０のアドレス６０００００ｈ番地−７ＦＦＦＦＦｈ番地にもＢ−ＲＡＭエリアが割り付けられているが、これは仮想アドレスとして機能する。すなわち、Ｃ−ＣＰＵ４０がアドレス６０００００ｈ番地−７ＦＦＦＦＦｈ番地をアクセスすると、そのアドレスは、後に詳細に説明するＢＢＣアドレス変換回路１０４（図５）によって、実アドレスである４０００００ｈ番地−４７ＦＦＦＦｈ番地に変換され、それによってＣ−ＣＰＵ４０がビットマップ形式のドットデータをリードまたはライトできるように構成されている。
【００３２】
なお、Ｉ−ＲＡＭ４４のアドレスマッピングは、Ｓ−ＣＰＵ１８とＣ−ＣＰＵ４０とでは多少異なる。
図４は図１実施例を詳細に示すブロック図であり、この図４では、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０が一緒に図示されていて、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０が共通のアクセス制御回路４２によってＭ−ＲＯＭ２２，Ｂ−ＲＡＭ３６およびＩ−ＲＡＭ４４にアクセスできることがわかる。なお、図４では、図面の複雑化を避けるために、Ｓ−ＣＰＵ１８のアドレスバスをアドレスバス５８として図示し、Ｓ−ＣＰＵ１８のデータバスをデータバス６０として図示し、Ｃ−ＣＰＵ４０のアドレスバスをアドレスバス６２として図示し、Ｃ−ＣＰＵ４０のデータバスをデータバス６４として図示する。したがって、これらバス５８−６４は、図１の各バスを含むものとして理解されたい。
【００３３】
Ｓ−ＣＰＵ１８のアドレスバス５８およびＣ−ＣＰＵ４０のアドレスバス６２にそれぞれ結合されたアドレスデコーダ６６が設けられ、このアドレスデコーダ６６は、両方のアドレスをデコードする。アドレスデコーダ６６の出力は、種々のレジスタ等のイネーブル信号あるいはクロック信号などとして与えられ、アクセス制御装置４２の各コンポーネントがアドレスデコーダ６６によって制御される。
【００３４】
ＢＳＭＭＣ回路６８は、Ｂ−ＲＡＭ３８（図１）のバンク切り換えを行うとともに、Ｓ−ＣＰＵ１８およびＣ−ＣＰＵ４０のＢ−ＲＡＭ３８へのアクセスを制御する。そのために、ＢＳＭＭＣ回路６８は、Ｓ−ＣＰＵ１８のアドレスバス５８に結合されるとともに、ＢＢＣ回路７０を介してＣ−ＣＰＵ４０のアドレスバス６２に結合される。また、ＢＳＭＭＣ回路６８には、ＢＤＭＡ回路７２を介してＳ−ＣＰＵ１８のデータバス６０が結合される。そして、ＢＳＭＭＣ回路６８の出力は、Ｂ−ＲＡＭ３８のアドレス端子７４に与えられる。ＢＤＭＡ回路７２は、Ｂ−ＲＡＭ３８からのデータをＤＭＡ方式で転送するための回路であって、Ｓ−ＣＰＵ１８のデータバス６０からＤＭＡソースアドレスを受ける。
【００３５】
なお、ＢＢＣ回路７０は、後に詳細に説明するように、ビットマップ形式の画像データを別のビットマップ形式の画像データに変換するための回路である。したがって、このＢＢＣ回路７０は、Ｃ−ＣＰＵ４０からのＢ−ＲＡＭ３８のリード／ライト信号ＣＲＷＢを受ける。なお、“Ｂ”は反転：￣を意味する。以下同様である。それとともに、このＢＢＣ回路７０は、Ｂ−ＲＡＭ３８のリード／ライト信号入力端子７６に、書込信号ＲＡＭＷＥＢおよび読出信号ＲＡＭＯＥＢを与える。
【００３６】
Ｂ−ＲＡＭ３８のデータ端子７８には、Ｓ−ＣＰＵ１８のデータバス６０およびＣ−ＣＰＵ４０のデータバス６４がそれぞれ結合される。すなわち、Ｓ−ＣＰＵ１８のデータバス６０はＢＤＳＥＬ回路（Ｂ−ＲＡＭ３８のデータセレクタ）８０に与えられる。また、Ｃ−ＣＰＵ４０のデータバス６４はＢＢＣ回路７０に結合され、そのＢＢＣ回路７０を通して、Ｃ−ＣＰＵ４０からのデータがＢＤＳＥＬ回路８０に与えられ、あるいはＢ−ＲＡＭ３８からのデータがＣ−ＣＰＵ４０に与えられる。ＢＤＳＥＬ回路８０は、Ｓ−ＣＰＵ１８からのライトデータまたはＣ−ＣＰＵ３８からのライトデータを切り換えてＢ−ＲＡＭ３８のデータ端子７８に与える。一方、Ｂ−ＲＡＭ３８のデータ端子７８から出力されたリードデータは、上述のＢＢＣ回路７０に与えられるとともに、転送ゲート８２を介してＳ−ＣＰＵ１８のデータバス６０に与えられる。Ｂ−ＲＡＭ３８からのリードデータは、さらに、ＢＣＣ回路８４に与えられる。ＢＣＣ回路８４は、後に詳細に説明するように、Ｂ−ＲＡＭ３８からリードされたビットマップ形式の画像データをキャラクタマップ形式の画像データに変換する際に用いられる。
【００３７】
そして、ＢＣＣ回路８４から出力されたキャラクタマップ形式の画像データへ変換する途中のデータは、ＩＤＳＥＬ回路８６に与えられる。このＩＤＳＥＬ回路８６は、Ｉ−ＲＡＭ４４へのデータを切り換えるためのセレクタであり、Ｓ−ＣＰＵ１８のデータバス６０からのライトデータおよびＣ−ＣＰＵ４０のデータバス６４からのライトデータを受ける。一方、Ｓ−ＣＰＵ１８のアドレスバス５８およびＣ−ＣＰＵ４０のアドレスバス６２はＩＳＭＭＣ回路８８に与えられる。ＩＳＭＭＣ回路８８は、Ｉ−ＲＡＭ４４のバンク切り換えを制御するための回路である。このＩＳＭＭＣ回路８８には、さらに、ＩＤＭＡ回路９０からのアドレスが与えられる。なお、このＩＤＭＡ回路９０は、Ｓ−ＣＰＵ１８がＩ−ＲＡＭ４４からのデータをＤＭＡ方式によって転送するための回路であって、Ｓ−ＣＰＵ１８のデータバス６０からのディスティネーション
（目的）アドレスを受ける。そして、ＩＳＭＭＣ回路８８からのアドレスがＩ−ＲＡＭ４４に与えられる。Ｉ−ＲＡＭ４４へのライトデータは上述のＩＤＳＥＬ回路８６から与えられる。また、Ｉ−ＲＡＭ４４からのリードデータは、転送ゲート９２および９４を介して、Ｓ−ＣＰＵ１８のデータバス６０およびＣ−ＣＰＵ４０のデータバス６４にそれぞれ与えられる。
【００３８】
図４実施例において、アクセス制御回路４２に含まれる各コンポーネントは、シーケンサ９６から与えられる各タイミング信号によって制御される。ただし、図４では、このようなタイミング信号は、図面の複雑化を避けるために省略されている。
図４に示すＢＢＣ回路７０が図５に詳細に示される。ＢＢＣ回路７０は、アドレスバス６２（図４）を介して与えられるＣ−ＣＰＵ４０のアドレスデータＡ０−Ａ２０を受け、そのアドレスデータはアドレスデコーダ・ＢＢＣコントロール回路９８およびアドレスラッチ回路１００ならびに２−１セレクタ１０２に与えられる。ただし、アドレスデコーダ・ＢＢＣコントロール回路９８には、アドレスの上位３ビットＡ２０−Ａ１８  のみが与えられる。アドレスラッチ回路１００はアドレスデコーダ・ＢＢＣコントロール回路９８から与えられるラッチ信号に応答して、アドレスの１９ビットＡ０−Ａ１８をラッチする。アドレスラッチ回路１００でラッチされたアドレスがまた２−１セレクタ１０２に与えられ、したがって、２−１セレクタ１０２は、アドレスバス６２から与えられるアドレスまたはアドレスラッチ回路１００から与えられるアドレスのいずれかを選択してＢＢＣアドレス変換回路１０４に与える。具体的には、先に図３で説明したように、Ｂ−ＲＡＭ３８には、アドレスの４０００００ｈ番地−４７ＦＦＦＦｈ番地（最大容量４Ｍビット）が割り当てられる。なお、“ｈ”は１６進数を示す。このアドレスの４０００００ｈ番地−４７ＦＦＦＦｈ番地には、図６（Ｂ）または図７（Ｂ）で示すように、ビットマップ形式のドットデータがいわゆるパック形式で書き込まれる。一方、Ｃ−ＣＰＵ４０が仮想アドレスの６０００００ｈ番地−７ＦＦＦＦＦｈ番地をアクセスしたときには、このアドレスを４０００００ｈ番地−４７ＦＦＦＦｈ番地に変換する必要があるが、ＢＢＣアドレス変換回路１０４はこのようなアドレス変換を行う。
【００３９】
図６は、ドットデータが４ビットのとき、すなわち１６色モードの場合を示し、図６（Ａ）はＣ−ＣＰＵ４０がＢ−ＲＡＭ３８へドットデータをライトするときにＣ−ＣＰＵ４０から出力されるＣ−ＣＰＵライトデータ、およびＢ−ＲＡＭ３８からドットデータをリードするときにＣ−ＣＰＵ４０に入力されるＣ−ＣＰＵリードデータを示す。したがって、図６（Ａ）におけるアドレスｎ，ｎ＋１，…は、仮想アドレス６０００００ｈ番地−７ＦＦＦＦＦｈ番地までの６０＊＊＊＊ｈ番地−７Ｆ＊＊＊＊ｈ番地を意味する。ただし、「＊」で示す部分がｎ，ｎ＋１，…に該当する。なお、図６（Ａ）において、各々のアドレスにおける余白ビット「０」は図示が省略されている。たとえば、図６（Ａ）のアドレスｎにおいては「００００ｄ３  ｄ２  ｄ１  ｄ０  」のドットデータの「ｄ３  ｄ２  ｄ１  ｄ０  」のみが図示されている。他のアドレスについても同様である。
【００４０】
他方、図６（Ｂ）は、Ｂ−ＲＡＭ３８にビットマップ形式のドットデータがいわゆるパック形式で記憶されることを示す。すなわち、図６（Ｂ）のアドレスｎ，ｎ＋１，…は、Ｂ−ＲＡＭ３８の実アドレスの４０００００ｈ番地−４７ＦＦＦＦｈ番地までの４０＊＊＊＊ｈ番地−４７＊＊＊＊ｈ番地を意味する。ただし、「＊」で示す部分がｎ，ｎ＋１，…に該当する。たとえば図６（Ｂ）の１つのアドレスｎにおいては、２つのドットのドットデータ「ｄ３  ｄ２  ｄ１  ｄ０  」および「ｄ７  ｄ６  ｄ５  ｄ４  」が記憶されている。
【００４１】
図７はドットデータが２ビットのとき、すなわち４色モードの場合を示す。したがって、図７（Ａ）の仮想アドレス６０＊＊＊＊ｈ番地−７Ｆ＊＊＊＊ｈ番地では、各々のアドレスｎ，ｎ＋１，…が２ビットのドットデータ（色コード）を含む。そして、Ｂ−ＲＡＭ３８には、図７（Ｂ）で示すように、実アドレス４０＊＊＊＊ｈ番地−４７＊＊＊＊ｈ番地の各々には、４ドット分のドットデータが記憶される。
【００４２】
図５のアドレスデコーダ・ＢＢＣコントロール回路９８は、図８に示すようにモードレジスタ１０６を含み、このモードレジスタ１０６には、Ｃ−ＣＰＵ４０のデータビットＣＤ７  によって、４色モードを表す「１」または１６色モードを表す「０」のモードデータが書き込まれる。このモードデータはＡＮＤゲート１０８の一方入力に与えられるとともに、ＡＮＤゲート１１０の一方入力に反転されて与えられる。ＡＮＤゲート１０８および１１０のそれぞれの他方入力には、ＡＮＤゲート１１２の出力が与えられる。ＡＮＤゲート１１２はＣ−ＣＰＵ４０のアドレスバス６０の上位３ビットＡ２０−Ａ１８  を受け、その上位３ビットが「０１１」になったとき、信号ＢＢＣＨＩＴを出力する。すなわち、アドレスデコーダ・ＢＢＣコントロール回路９８は、Ｃ−ＣＰＵ４０のアドレスの上位３ビットを見て、これが「０１１」であると信号ＢＢＣＨＩＴを出力する。上位３ビットＡ２０−Ａ１８  が「０１１」であるということは、アドレスが６０００００ｈ番地（０１１０…）から７ＦＦＦＦＦｈ番地（０１１１…）までの間にあることを意味し、ＡＮＤゲート１１２がそれを検出し、信号ＢＢＣＨＩＴを出力する。したがって、モードレジスタ１０６に４色モード（２ビットモード）が設定されかつＡＮＤゲート１１２から「１」の信号ＢＢＣＨＩＴが出力されると、ＡＮＤゲート１０８から「１」の信号ＳＥＬ２が出力される。同じように、モードレジスタ１０６に１６色モード（４ビットモード）が書き込まれると、ＡＮＤゲート１１０から信号ＳＥＬ４が出力される。この信号ＢＢＣＨＩＴ，ＳＥＬ２，およびＳＥＬ４は、アドレスデコーダ・ＢＢＣコントロール回路９８から、ＢＢＣアドレス変換回路１０４，ＢＢＣライトデータ変換回路１１４，およびＣ−ＣＰＵリードデータ変換回路１１６に与えられる。
【００４３】
なお、アドレスデコーダ・ＢＢＣコントロール回路９８は、Ｃ−ＣＰＵ４０からのリード／ライト信号ＣＲＷＢを受け、Ｃ−ＣＰＵ４０がＢ−ＲＡＭ３８へデータをライトするとき、アドレスラッチ１００，ライトデータラッチ１１８およびリードデータラッチ１２０にラッチ信号を出力する。すなわち、リード／ライト信号ＣＲＷＢが「０」であるときには、全てのラッチ１００，１１８および１２０にラッチ信号が与えられる。
【００４４】
Ｃ−ＣＰＵ４０のライトデータ（８ビット）はラッチ信号に応答してライトデータラッチ１１８にラッチされ、データＷＤ０−ＷＤ７  としてＢＢＣライトデータ変換回路１１４に与えられる。一方、Ｂ−ＲＡＭ３８からのリードデータは、ラッチ信号に応答して、リードデータラッチ１２０にラッチされ、データＢＲ０−ＢＲ７  として、ＢＢＣライトデータ変換回路１１４に与えられる。ＢＢＣライトデータ変換回路１１４は、後に詳細に説明するように、データＷＤ０−ＷＤ７  を適当にシフトし、データＢＲ０−ＢＲ７  と合成して、ライトデータＢＷＤ０−ＢＷＤ７  を出力する。
【００４５】
また、Ｂ−ＲＡＭ３８のリードデータＢＲＤ０−ＢＲＤ７  は、ＢＢＣリードデータ変換回路１１６に与えられる。ＢＢＣリードデータ変換回路１１６は、後に詳細に説明するように、データＢＲＤ０−ＢＲＤ７  を右詰めにするためのシフト動作を行い、有効ビットと余白の「０」を含むリードデータＲＤ０−ＲＤ７  、たとえば「００００＊＊＊＊」（４ビットモード）または「００００００＊＊」（２ビットモード）もしくは「＊＊＊＊＊＊＊＊」（８ビットモード）を出力する。
【００４６】
ＢＢＣアドレス変換回路１０４は、図６に示す１６色モード（４ビットモード）の場合には、図９に従ってアドレス変換し、図７に示す４色モード（２ビットモード）では図１０に従ってアドレス変換する。すなわち、１６色モードにおいては、信号ＢＢＣＨＩＴおよびＳＥＬ４がＢＢＣアドレス変換回路１０４に与えられるので、図９の第２行目のように、アドレス変換回路１０４は、２−１セレクタ１０２から与えられる２１ビットのアドレスＡ２０−Ａ０を１ビットシフトして、１９ビットのアドレスＡ１９−Ａ１として出力する。１６色モードにおいてこのように１ビットシフトする理由は、Ｂ−ＲＡＭ３８には、図６（Ｂ）に示すように、２ドット分のドットデータが１アドレスにパック形式で書き込まれるので、２ドットのどちらかを識別するために、最下位ビットＡ０が用いられる。すなわち、最下位ビットＡ０が「１」のとき、上位４ビットｄ４  −ｄ７  がアドレスされ、最下位ビットＡ０が「０」のとき、下位４ビットｄ０  −ｄ３  がアドレスされる。
【００４７】
また、図７に示す４色モード（２ビットモード）においては、Ｂ−ＲＡＭ３８の１アドレスには４ドット分のドットデータがパック形式で書き込まれるので、そのいずれのドットであるかを識別するためにアドレスの下位２ビットＡ０およびＡ１を用いる。したがって、４色モードでは、図１０の第２行目で示すように、アドレスＡ２０−Ａ０を２ビットシフトしてアドレスＡ２０−Ａ２を１９ビットのアドレスＲＡ０−ＲＡ１８として出力する。そして、２ビットＡ０およびＡ１が「００」のとき、最下位２ビットｄ０  およびｄ１  がアドレスされ、「０１」のとき下位２ビットｄ２  およびｄ３  がアドレスされ、「１０」のとき上位２ビットｄ４  およびｄ５  がアドレスされ、「１１」のとき、最上位２ビットｄ６  およびｄ７  がアドレスされる。
【００４８】
また、ＢＢＣライトデータ変換回路１１４は、Ｃ−ＣＰＵ３８から与えられる「００００ｄ３  ｄ２  ｄ１  ｄ０  」あるいは「００００００ｄ１  ｄ０  」のような１アドレス１ドットの右詰めデータをＢ−ＲＡＭ３８の４０００００ｈ番地−４７ＦＦＦＦｈ番地の１つのアドレスのどのビットに書き込むかを決める。すなわち、Ｃ−ＣＰＵ４０が６０００００ｈ番地−７ＦＦＦＦＦｈ番地のアドレスを指定し、ＢＢＣアドレス変換回路１０４によって、Ｂ−ＲＡＭ３８の４０００００ｈ番地−４７ＦＦＦＦｈ番地のアドレスが指定され、Ｂ−ＲＡＭ３８から書き換えたいドットのドットデータを含む１ワード（８ビット）のデータＢＲＤ０−ＢＲＤ７  が出力され、それがリードデータラッチ１２０にラッチされ、データＢＲ０−ＢＲ７  として出力される。一方、Ｃ−ＣＰＵ４０から出力される上述のようなライトデータが、ライトデータラッチ１１８からデータＷＤ０−ＷＤ７  として出力される。そして、ＢＢＣライトデータ変換回路１１４には、Ｃ−ＣＰＵ４０が６０００００ｈ番地−７ＦＦＦＦＦｈ番地を指定したので、上述のように、信号ＢＢＣＨＩＴ，およびＳＥＬ２またはＳＥＬ４が与えられる。したがって、上述のように、アドレスビットＡ０，またはＡ０およびＡ１によって、データＷＤ０−ＷＤ７  に含まれる４ビットまたは２ビットの有効データがＢ−ＲＡＭ３８からの１ワードのデータＢＲ０−ＢＲ７  のどのビットに該当するかがわかる。したがって、ＢＢＣライトデータ変換回路１１４では、図１１または図１２に示すように、データＷＤ０−ＷＤ７  の４ビットまたは２ビットを上述のアドレスビットで示されるビット数だけシフトして、データＢＲ０−ＢＲ７  の書き換えないデータと合成して、８ビット（１ワード）のライトデータＢＷＤ０−ＢＷＤ７  として出力する。
【００４９】
より詳しく述べると、図６に示す４ビットモード（１６色モード）の場合には、アドレスビットＡ０によって、Ｃ−ＣＰＵ４０からの有効データ４ビットが、１ワード（１アドレス）の上位へライトされるべきか、下位へライトされるべきかがわかる。Ｃ−ＣＰＵ４０からのライトデータが１つのアドレスの下位４ビットにライトされるべきときには、アドレスビットＡ０が「０」であり、図１１の第１行目に示すように、ＢＢＣライトデータ変換回路１１４は、リードデータラッチ１２０からのデータＢＲ０−ＢＲ７  の上位４ビットＢＲ４−ＢＲ７  と、ライトデータラッチ１１８からのデータＷＤ０−ＷＤ３  とを合成して、「ＢＲ７  ＢＲ６  ＢＲ５  ＢＲ４  ＷＤ３  ＷＤ２  ＷＤ１  ＷＤ０  」のライトデータを作成して、Ｂ−ＲＡＭ３８に与える。同様に、アドレスビットＡ０が「１」のときには、データＢＲ０−ＢＲ７  の下位４ビットＢＲ０−ＢＲ３  と、データＷＤ４−ＷＤ７  とが合成されて、「ＷＤ７  ＷＤ６  ＷＤ５  ＷＤ４  ＢＲ３  ＢＲ２  ＢＲ１  ＢＲ０  」のライトデータが作成される。
【００５０】
図７に示す２ビットモード（４色モード）の場合には、アドレスビットＡ０およびＡ１によって、Ｃ−ＣＰＵ４０からの有効データ２ビットが、１ワードのどの位置にライトされるべきかがわかる。たとえば、Ｃ−ＣＰＵ４０からのライトデータが１つのアドレスの第５ビット目および第６ビット目にライトされるべきであるときには、アドレスビットＡ０およびＡ１が図１２の第３行目に示すように「０１」となる。この場合、リードデータラッチ１２０からのデータＢＲ０−ＢＲ７  のビットＢＲ４  およびＢＲ５  が、ライトデータラッチ１１８からの２ビットデータＷＤ４  およびＷＤ５  と置き換えられ、ライトデータ「ＢＲ７  ＢＲ６  ＷＤ５  ＷＤ４  ＢＲ３  ＢＲ２  ＢＲ１  ＢＲ０  」がライトデータ変換回路１１４から出力される。図１２の他の場合も同様である。
【００５１】
このように、Ｂ−ＲＡＭ３８のライトデータを作成するためには、Ｂ−ＲＡＭ３８からのリードデータを用いる必要があるため、リードデータラッチ１２０が設けられる。
また、ＢＢＣリードデータ変換回路１１６は、Ｂ−ＲＡＭ３８のリードデータＢＲＤ０−ＢＲＤ７  から、指定されたドットのドットデータだけを抽出する。すなわち、リードデータは１ワード（８ビット）に２ドット分または４ドット分のドットのデータを含むが、アドレスビットＡ０，またはＡ０およびＡ１によって指定されるドットのドットデータだけを抽出する必要がある。そこで、ＢＢＣリードデータ変換回路１１６は、図６に示す１６色モードのときには図１３に従って、また図７に示す４色モードのときには図１４に従って、リードデータＢＲＤ０−ＢＲＤ７  をＣ−ＣＰＵ４０のリードデータＲＤ０−ＲＤ７  に変換する。
【００５２】
詳しく述べると、図６の１６色モードのとき、Ｂ−ＲＡＭ３８の１つのアドレスには２ドット分のドットデータが記憶されていて、アドレスビットＡ０が「０」のときには、Ｂ−ＲＡＭ３８からのリードデータの下位４ビットのデータが抽出されるべきであり、「１」のときには上位４ビットのデータが抽出されるべきである。そこで、リードデータ変換回路１１６は、Ａ０＝「０」のとき、図１３の第１行目に示すように、Ｂ−ＲＡＭ３８からのリードデータＢＲＤ０−ＢＲＤ７  の上位４ビットを余白ビット「０」で置き換えて「００００  ＢＲＤ３  ＢＲＤ２  ＢＲＤ１  ＢＲＤ０」をＣ−ＣＰＵ４０のリードデータＲＤ０−ＲＤ７  として入力する。Ａ０＝「１」のとき、図１３の第２行目に示すように、Ｂ−ＲＡＭ３８からのリードデータＢＲＤ０−ＢＲＤ７  を下位方向に４ビットシフトするとともにシフトによって空白となる上位４ビットに余白ビット「０」を加え、リードデータ「００００  ＢＲＤ７  ＢＲＤ６  ＢＲＤ５  ＢＲＤ４」を出力する。
【００５３】
図７に示す４色モードのとき、Ｂ−ＲＡＭ３８の１つのアドレスには４ドット分のドットデータが記憶されていて、アドレスビットＡ０およびＡ１によって、取り出すべきドットデータが決まる。アドレスビットＡ０およびＡ１がたとえば「０」であるとき、図１４の第３行目に示すように、Ｂ−ＲＡＭ３８からのリードデータＢＲＤ０−ＢＲＤ７  の第５ビットおよび第６ビットのみが取り出されるべきである。したがって、この場合には、リードデータ変換回路１１６は、Ｂ−ＲＡＭ３８からのリードデータＢＲＤ０−ＢＲＤ７  を４ビット右シフトするとともにシフトによって空白となる上位６ビットに余白ビット「０」を加える。したがって、この場合、Ｃ−ＣＰＵ４０のリードデータは「００００００  ＢＲＤ６  ＢＲＤ５」となる。図１４の他の場合も同様である。
【００５４】
なお、アドレスラッチ１００は次のような理由で設けられる。すなわち、Ｃ−ＣＰＵ４０がＢ−ＲＡＭ３８をリードするときには、アドレスＡ２０−Ａ０はそのまま２−１セレクタ１０２に入る。他方、Ｃ−ＣＰＵ４０がＢ−ＲＡＭ３８にライトするときには、先に説明したように、Ｂ−ＲＡＭ３８を一旦リードした後ライトするので、リードアドレスをそのままライトアドレスとして用いる必要がある。すなわち、Ｃ−ＣＰＵ４０がライトするタイミングと、Ｂ−ＲＡＭ３８にライトデータがライトされるタイミングとが異なり、その間にアドレスが変化しないようにするために、アドレスラッチ９０を用いるのである。
【００５５】
ここで、２ビットモード（４色モード）を示す図１５を参照して、ＢＢＣ７０の動作について説明する。まず、Ｃ−ＣＰＵ４０がＢ−ＲＡＭ３８の任意のアドレスにパック形式で記憶されている特定のドットのドットデータを書き換える場合について説明する。この場合、Ｃ−ＣＰＵ４０からは、たとえば６００００２ｈ番地のアドレスを出力する。このとき、Ｃ−ＣＰＵ４０は「ＦＦｈ」のライトデータを出力したものとする。このライトデータが信号ＣＲＷＢに応答してライトデータラッチ１１８にラッチされる。応じて、そのアドレスがＢＢＣアドレス変換回路１０４によって４０００００ｈ番地に変換され、Ｂ−ＲＡＭ３８の４０００００ｈ番地がアドレス指定される。ＢＢＣアドレス変換回路１０４から出力される４０００００ｈ番地のアドレスによって指定されるＢ−ＲＡＭ３８からリードデータが出力され、それがリードデータラッチ１２０にラッチされる。なお、リードデータは「００ｈ」であると想定している。そして、６００００２番地ということは図１２の第３行目であることを意味しているので、次のタイミングで、ＢＢＣライトデータ変換回路１１４によって、ライトデータラッチ１１８にラッチされたライトデータが「ＦＦｈ」とリードデータラッチ１２０にラッチされたリードデータ「００ｈ」とが合成されて、「３０ｈ」すなわち「００１１００００」のライトデータがライトデータ変換回路１１４から出力され、Ｂ−ＲＡＭ３８のアドレス４０００００ｈ番地に書き込まれる。
【００５６】
次に、Ｃ−ＣＰＵ４０がＢ−ＲＡＭ３８をリードする場合、Ｃ−ＣＰＵ４０が６００００２番地のアドレスが指定されたとすると、同じようにＢＢＣアドレス変換回路１０４によって、６００００２ｈ番地がＢ−ＲＡＭ３８の４０００００ｈ番地に変換され、Ｂ−ＲＡＭ３８の４０００００ｈ番地から「３０ｈ」のリードデータが出力される。そのリードデータがＢＢＣリードデータ変換回路１１６によって、有効ビットを右詰めにした８ビット（１ワード）のデータ「０３ｈ」すなわち「００００００１１」として読み出される。
【００５７】
このように、Ｂ−ＲＡＭ３８にはいわゆるパック形式で１アドレスに複数ドット分のドットデータを効率よく記憶した場合であっても、各ドット毎にリードしあるいはライトすることができるので、ドット毎の種々の演算操作を加え易く、しかもＢ−ＲＡＭ３８のメモリ容量を無駄遣いすることがない。
次に、図１６を参照して、Ｂ−ＲＡＭ３８からビットマップ形式のドットデータをリードして、それをキャラクタマップ形式のドットデータへ変換する動作の概要を説明する。このようなデータ変換は、Ｓ−ＣＰＵ１８（図１）がＢ−ＲＡＭ３８のビットマップデータをキャラクタデータとしてＷ−ＲＡＭ２４またはＶ−ＲＡＭ３０に取り込むときに実行される。すなわち、ＢＤＭＡ回路７２（図４）に含まれるソースアドレスカウンタ１２２にＳ−ＣＰＵ１８によってＢＤＭＡソースアドレスがプリセットロードされる。ソースアドレスカウンタ１２２はそのソースアドレスからインクリメントが開始され、第１アドレス変換回路１２４がソースアドレスカウンタ１２２のカウント値に基づいて、Ｂ−ＲＡＭ３８のアドレスを出力し、それによってＢ−ＲＡＭ３８から、いわゆるパック形式で記憶されているビットマップデータがリードされる。
【００５８】
Ｂ−ＲＡＭ３８から出力されるビットマップデータは、ＢＣＣ回路８４に含まれるキャララインバッファ１２６または１２８に、ＢＤＭＡによって、１キャラクタライン毎にロードされる。このとき、ＢＣＣ回路８４に含まれるライトアドレスカウンタ１３０のアドレスに従って、第２アドレス変換回路１３２がキャララインバッファ１２６または１２８をアドレスし、それによってキャララインバッファ１２６または１２８にビットマップデータがロードされる。
【００５９】
ついで、キャララインバッファ１２６または１２８からＩ−ＲＡＭ４４に、ＩＤＭＡによって、キャラクタマップ形式へ変換する途中のデータをライトする。このとき、ＢＣＣ回路８４に含まれるリードデータカウンタ１３４のカウント値に従ってリードセレクト信号変換回路１３６がキャララインバッファ１２６または１２８に含まれるセレクタ（図２８のセレクタＳ０〜Ｓ７）を制御することによって、キャララインバッファ１２６または１２８から、キャラクタ形式の各ドットの各プレーンのデータが出力される。
【００６０】
このデータはＩＤＭＡによってＩ−ＲＡＭ４４に書き込まれる。このとき、Ｉ−ＲＡＭ４４は、２つのキャラクタバッファを含み、その各々はキャラクタ形式の画像データを各プレーン毎に記憶するように構成されているため、ＩＤＭＡ回路９０に含まれるディスティネーションアドレスカウンタ１３８のカウント値に応じて、第３アドレス変換回路１４０がキャラクタバッファのアドレスを制御することによって、ＢＣＣ回路８４から出力されるデータを複数のプレーンからなるキャラクタマップ形式の画像データに変換しながら、Ｉ−ＲＡＭ４４のキャラクタバッファに画像データがライトされる。なお、ディスティネーションアドレスカウント１３８には、Ｓ−ＣＰＵ１８からディスティネーションアドレスがプリセットロードされ、ディスティネーションアドレスカウント１３８はそのディスティネーションアドレスからインクリメントが開始される。
【００６１】
そして、Ｉ−ＲＡＭ４４のキャラクタバッファに１キャラクタ分の画像データすなわち、キャラクタ形式の全てのプレーンのデータががライトされると、Ｓ−ＣＰＵ１８にシーケンサ（図示せず）からＩＲＱインタラプト（ＣＨＤＩＲＱ）がかけられ、Ｓ−ＣＰＵ１８が汎用ＤＭＡを起動して、Ｉ−ＲＡＭ４２からＶ−ＲＡＭ３０またはＷ−ＲＡＭ２４に汎用ＤＭＡによってキャラクタマップ形式の画像データをライトする。この間、Ｓ−ＣＰＵ１８はクロックを止められるので、停止する。そして、汎用ＤＭＡが始動すると、以後、ＢＤＭＡ，ＩＤＭＡおよび汎用ＤＭＡが連動する。そして、Ｓ−ＣＰＵ１８が必要な数のキャラクタの画像データを取り込むと、すなわち、汎用ＤＭＡで設定した転送バイト数のデータを受け取ると、汎用ＤＭＡがＳ−ＣＰＵ１８のクロックを再開する。応じてＳ−ＣＰＵ１８がイネーブルされ、ＢＤＭＡおよびＩＤＭＡに対して、シーケンサ内のフラグＤＭＡＥＮＤをセットする。したがって、シーケンサがＢＤＭＡおよびＩＤＭＡを停止する。
【００６２】
上述のように、ＢＤＭＡは、ＢＤＭＡ回路７２（図４）が制御する。ＢＤＭＡ回路７２の詳細が図１７および図１８に示される。ＢＤＭＡ回路７２は、ＢＤＭＡの実行に際して、Ｓ−ＣＰＵ１８によって指定されたソースアドレスに基づいて、Ｂ−ＲＡＭ３８のアドレスを順次出力するための回路である。
図１７に示すように、ＢＤＭＡ回路７２は２−１セレクタ１４２を含む。このセレクタ１４２には、Ｓ−ＣＰＵ１８からのデータおよびＣ−ＣＰＵ４０からのデータが与えられる。セレクタ１４２は、信号ＣＤＥＮに応じて、Ｓ−ＣＰＵ１８からのデータＳＤ０−ＳＤ７  またはＣ−ＣＰＵ４０からのデータＣＤ０−ＣＤ７  を選択し、出力する。Ｂ−ＲＡＭ３８のビットマップデータのキャラクタデータへの変換はＳ−ＣＰＵ１８の要求に従って実行されるのであるから、信号ＣＤＥＮが「１」となり、セレクタ１４２はＳ−ＣＰＵ１８からのデータＳＤ０−ＳＤ７  を選択する。Ｓ−ＣＰＵ１８からはまず、１画面中のキャラクタの数「１」，「２」，「１６」または「３２」を表すサイズデータＳＩＺＥ０−ＳＩＺＥ２  を出力する。したがって、そのサイズデータがラッチ１４４にラッチされる。次いで、Ｓ−ＣＰＵ１８は４色モード（２ビットモード），１６色モード（４ビットモード）または２５６色モード（８ビットモード）のいずれかを示すモードデータＣＢ０−ＣＢ１  を出力する。したがって、このモードデータがセレクタ１４２を介してラッチ１４４にラッチされる。次いで、Ｓ−ＣＰＵ１８は、ＢＤＭＡを開始する先頭アドレスであるソースアドレスを出力する。
【００６３】
ソースアドレスデータは、アドレスデータラッチ１４６にラッチされる。アドレスデータラッチ１４６は１９ビットであり、８ビットの下位ラッチ１４６Ｌ，８ビットの中位ラッチ１４６Ｍおよび３ビットの上位ラッチ１４６Ｈを含む。そして、それぞれのラッチ１４６Ｌ，１４６Ｍおよび１４６Ｈが、ライト信号セレクタ１４８から同期化回路１５０を介して与えられるイネーブル信号によって個別にイネーブルされる。
【００６４】
ライト信号ラッチ１４８は、Ｃ−ＣＰＵ４０からのソースアドレスデータのライト信号ＣＳＤＡＬＷ，ＣＳＤＡＭＷおよびＣＳＤＡＨＷおよびＣ−ＣＰＵ４０からのディスティネーションアドレスの書込信号ＣＤＤＡＬＷ，ＣＤＤＡＭＷおよびＣＤＤＡＨＷならびにＳ−ＣＰＵ１８からのソースアドレス書込信号ＳＳＤＡＬＷ，ＳＳＤＡＭＷおよびＳＳＤＡＨＷおよびＳ−ＣＰＵ１８からのディスティネーションアドレス書込信号ＳＤＤＡＬＷ，ＳＤＤＡＭＷおよびＳＤＤＡＨＷを受ける。そして、信号ＣＤＥＮおよびＤＤ０  およびＳＤ０１に従って、これらの書込信号のいずれかを選択する。ビットマップデータのキャラクタデータへの変換であるから、信号ＣＤＥＮが「１」となり、信号ＳＤ０１が「１」となる。したがってライト信号セレクタ１４８は、Ｓ−ＣＰＵ１８からのソースアドレスデータを書き込むためのライト信号ＳＳＤＡＬＷ，ＳＳＤＡＭＷおよびＳＳＤＡＨＷを順次出力する。このライト信号が同期化回路１５０を経て、ラッチ１４６Ｌ，１４６Ｍおよび１４６Ｈに順次与えられる。なお、同期化回路１５０は、Ｓ−ＣＰＵ４０との先に説明したような動作速度の差を補償するためのものであり、Ｃ−ＣＰＵ４０のためのクロックＰＨＩ２に従って、Ｓ−ＣＰＵ１８からのライト信号をＣ−ＣＰＵ４０に同期化する。同期化回路１５０から出力されるライト信号を受けるＯＲゲート１５２が設けられ、このＯＲゲート１５２はカウンタロード信号ＣＬを出力する。したがって、ラッチ１４６へソースアドレスデータがラッチされる都度、図１８に示すソースアドレスカウンタ１２２にソースアドレスデータがプリセットロードされる。
【００６５】
また、図１７のソースアドレスラッチ１４６のデータは３−１セレクタ１５４に与えられる。３−１セレクタ１５４では、モードデータＣＢ０ＥＮ  およびＣＢ１ＥＮ  に従って、ラッチ１４６から出力されるデータをシフトしてソースアドレスカウンタ１２２へのプリセットカウント値データＣＩ０−ＣＩ２０を出力する。信号ＣＢ０ＥＮ  およびＣＢ１ＥＮ  が「００」のとき、すなわち８ビットモード（２５６色モード）のときには、３−１セレクタ１５４は、ラッチ１４６のデータをそのままスルーさせる。４ビットモード（１６色モード）のときには、信号ＣＢ０ＥＮ  およびＣＢ１ＥＮ  が「０１」になるため、セレクタ１５４は、ローラッチ１４６Ｌの最下位ビットＳＣＤ０を出力ビットＣＩ１  として出力し、他のビットも同様に１ビット上にシフトされる。したがって、１６色モードのときには、３−１セレクタ１５４からは、プリセット値データとして、ＣＩ１−ＣＩ２０が出力される。さらに、４色モード（２ビットモード）へは、信号ＣＢ０ＥＮ  およびＣＢ１ＥＮ  が「１０」となるため、セレクタ１５４は、ローラッチ１４６Ｌの最下位ビットＳＣＤ０を出力ビットＣＩ２  とし、他のビットも２ビットずつ上にシフトされる。したがって、４色モードでは、セレクタ１５４からは、プリセット値データとして、ＣＩ２−ＣＩ２０が出力される。
【００６６】
３−１セレクタ１５４の出力は、図１８に示すソースアドレスカウンタ１２２に与えられる。ソースアドレスカウンタ１２２はこのカウンタ１２２の下位２ビットを構成する２つの１ビットカウンタ１２２ａおよび１２２ｂと、残りの１９ビットを構成する１９ビットカウンタ１２２ｃとを含む。各カウンタ１２２ａ，１２２ｂおよび１２２ｃには、カウンタロード信号ＣＬが与えられる。また、このカウンタ１２２のインクリメントを指示する信号ＢＤＭＡＱＰがカウンタ１２２ａ，１２２ｂおよび１２２ｃのそれぞれのイネーブル信号として与えられる。キャラクタ変換を指示する信号ＣＤＥＮがＡＮＤゲート１５６および１５８に与えられ、ＡＮＤゲート１５６の他方入力にはモードデータＣＢ０  が与えられ、ＡＮＤゲート１５８の他方入力にはモードデータＣＢ１  が与えられる。なお、カウンタ１２２のクロックとしては、クロック信号ＰＨＩ２Ｂ  が与えられる。Ｂ−ＲＡＭ３８のビットマップデータがキャラクタデータに変換されるのであるから、信号ＣＤＥＮ１  が「１」となり、したがって、ＡＮＤゲート１５６および１５８からは、モードデータＣＢ０  およびＣＢ１  に応じたイネーブル信号が出力される。すなわち、８ビットモードのときには、信号ＣＢ０  およびＣＢ１  が「００」になるため、カウンタ１２２は、最下位ビットのフリップフロップ１２２ａ、すなわち最下位ビットＣＩ０  からインクリメントされる。４ビットモードでは信号ＣＢ０  およびＣＢ１  が「０１」となるため、下位第２ビットＣＩ１  すなわち、フリップフロップ１２２ｂからインクリメントが開始される。２ビットモードでは下位第３ビットＣＩ２  すなわちフリップフロップ１２２ｃからインクリメントが開始される。先に述べたように、３−１セレクタ１５４によって各モード毎にビットシフトしたプリセット値を出力するようにしているので、カウンタ１２２においてもそのシフトしたビット数に応じてインクリメントをスタートするビット数を決定している。
【００６７】
信号ＣＤＥＮおよびサイズデータＳＩＺＥ０−ＳＩＺＥ２  がデコーダ１６０に与えられ、デコーダ１６０は、サイズデータＳＩＺＥ０−ＳＩＺＥ２  に応じて、セレクタ１６２を制御する。
セレクタ１６２は２−１セレクタ１６２ａおよび１６２ｈ，３−１セレクタ１６２ｂおよび１６２ｇ，４−１セレクタ１６２ｃおよび１６２ｆ，および５−１セレクタ１６２ｄおよび１６２ｅを含む。セレクタ１６２は、図１９，図２０または図２１に従って、ＢＤＭＡソースアドレスをＢ−ＲＡＭアドレスに変換する。図１９，図２０および図２１は、それぞれ、８ビットモード，４ビットモードおよび２ビットモードを示し、サイズデータＳＩＺＥ０−ＳＩＺＥ２  によって２キャラクタ，４キャラクタ，８キャラクタ，１６キャラクタあるいは３２キャラクタのようなビットの切り換えを行う。
【００６８】
たとえば図１９を参照して、サイズデータＳＩＺＥ０−ＳＩＺＥ２  が「０１０」である場合、デコーダ１６０から「０１００００」が出力される。一方、２−１セレクタ１６２ａはカウンタ１２２の出力ビットＣ３とＣ６とを受けるため、デコーダ１６０の出力に応じて、出力ビットＣ６を選択する。３−１セレクタ１６２ｂは、カウンタ１２２の出力ビットＣ３，Ｃ４およびＣ８を受け、デコーダ１６０からの信号に応じて、カウンタ１２２の出力ビットＣ３を選択する。４−１セレクタ１６２ｃはカウンタ１２２の出力ビットＣ３，Ｃ４，Ｃ５およびＣ９を受け、デコーダ１６０からの信号に応じて、出力ビットＣ５を選択する。５−１セレクタ１６２ｄは、カウンタ１２２の出力ビットＣ３，Ｃ４，Ｃ５，Ｃ６およびＣ９を受け、デコーダ１６０からの信号に応じて、出力ビットＣ６を選択する。５−１セレクタ１６２ｅは、カウンタ１２２の出力ビットＣ３，Ｃ４，Ｃ５，Ｃ７およびＣ１０  を受け、デコーダ１６０からの信号に応じて、出力ビットＣ３を選択する。４−１セレクタ１６２ｆはカウンタ１２２の出力ビットＣ３，Ｃ４，Ｃ５およびＣ８を受け、デコーダ１６０からの信号に応じて、出力ビットＣ８を選択する。３−１セレクタ１６２ｇは、カウンタ１２２の出力ビットＣ４，Ｃ５およびＣ９を受け、デコーダ１６０からの信号に応じて、カウンタ１２２の出力ビットＣ９を選択する。２−１セレクタ１６２ｈはカウンタ１２２の出力ビットＣ５およびＣ１０  を受け、デコーダ１６０の出力に応じて、出力ビットＣ１０  を選択する。
【００６９】
すなわち、水平方向のキャラクタ数が「２」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第３番目の出力ビットに、第３番目の入力ビットを第４番目の出力ビットに、第４番目の入力ビットを第５番目の出力ビットに、そして第５番目の入力ビットを第２番目の出力ビットに、それぞれ、接続する。水平方向のキャラクタ数が「４」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第４番目の出力ビットに、第３番目の入力ビットを第５番目の出力ビットに、第４番目の入力ビットを第６番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、そして第６番目の入力ビットを第３番目の出力ビットに、それぞれ、接続する。水平方向のキャラクタ数が「８」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第５番目の出力ビットに、第３番目の入力ビットを第６番目の出力ビットに、第４番目の入力ビットを第７番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、第６番目の入力ビットを第３番目の出力ビットに、そして第７番目の入力ビットを第４番目の出力ビットに、それぞれ、接続する。水平方向のキャラクタ数が「１６」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第６番目の出力ビットに、第３番目の入力ビットを第７番目の出力ビットに、第４番目の入力ビットを第８番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、第６番目の入力ビットを第３番目の出力ビットに、第７番目の入力ビットを第４番目の出力ビットに、そして第８番目の入力ビットを第５番目の出力ビットに、それぞれ、接続する。水平方向のキャラクタ数が「３２」のとき、最下位ビットから第２番目の入力ビットを最下位ビットから第７番目の出力ビットに、第３番目の入力ビットを第８番目の出力ビットに、第４番目の入力ビットを第９番目の出力ビットに、第５番目の入力ビットを第２番目の出力ビットに、第６番目の入力ビットを第３番目の出力ビットに、第７番目の入力ビットを第４番目の出力ビットに、そして第８番目の入力ビットを第５番目の出力ビットに、それぞれ、接続する。
【００７０】
このようにしてセレクタ１６２によって選択された出力ビットは３−１セレクタ１６４に与えられる。一方、カウンタ１２２の出力ビットＣ０，Ｃ１およびＣ１１−Ｃ２０  は、そのまま３−１セレクタ１６４に与えられる。３−１セレクタ１６４は、モード信号ＣＢ０ＥＮ  およびＣＢ１ＥＮ  に応じて、各ビットの３入力のいずれかを選択してＢ−ＲＡＭ３８のアドレスＢＤＡ０−ＢＤＡ１８を出力する。すなわち、３−１セレクタ１６４は、図１７の３−１セレクタ１５４によってシフトされたビット数だけ下にシフトしてアドレスを出力する。図１９に示す８ビットモードでは、３−１セレクタ１５４は入力データをスルーさせてプリセット値データを出力した。したがって、この場合には、３−１セレクタ１６４も入力データをスルーさせてアドレスＢＤＡ０−ＢＤＡ１８を出力する。すなわち、８ビットモードにおいては、３−１セレクタ１６４は、３−１セレクタ１５４と同様に、「０」の入力を各ビット毎に選択する。したがって、図１９の左端欄に示す２キャラクタの場合には、ソースアドレスカウンタ１２２の出力ビットＣ３，Ｃ４，Ｃ５およびＣ６が図１９に示すようにアドレスビットＢＤＡ４，ＢＤＡ５，ＢＤＡ６およびＢＤＡ３として出力される。その他のビットについてはビット位置変更は行われない。
【００７１】
図１９，図２０および図２１を参照してわかるように、上述のビット位置変更の態様は、２５６色モード，１６色モードあるいは４色モードのモードに拘わらず、一定である。したがって、この実施例では、セレクタ１６２で位置変更するビットを固定的に設定し、それをサイズデータＳＩＺＥ０−ＳＩＺＥ２  でそのセレクタ１６２の選択ビットを切り換えるようにすることによって、ビット位置変更のためのセレクタ１６２の回路構成を非常に簡単にする。
【００７２】
なお、セレクタ１６２による上述のようなビット位置変更は、Ｂ−ＲＡＭ３８に図２２に示すように一連のドットデータが記憶されているときに、そのドットデータを各キャラクタ毎に図２３−図２６に示すようにキャラクタ変換するのに必要である。なお、図２２−図２６は、８ビットモードすなわちキャラクタデータが８プレーンで構成される場合を示す。
【００７３】
このようにして、ＢＤＭＡ回路７２によって、図１６あるいは図１８に示すソースアドレスカウンタ１２２に設定されたソースアドレスから順次インクリメントされたＢ−ＲＡＭ３８のアドレスＢＤＡ０−ＢＤＡ１９が出力される。したがって、このＢＤＭＡ回路７２を用いることによって、Ｓ−ＣＰＵ１８が要求するＢ−ＲＡＭ３８のビットマップデータをＢＤＭＡによってＢＣＣ回路８４に与えることができる。
【００７４】
次に、図４のＢＣＣ回路８４について説明する。このＢＣＣ回路８４は、図２７に示すように、２つのキャララインバッファ１２６および１２８を含む。キャララインバッファ１２６および１２８の各々は、図２８に示すように、それぞれが８ビットｄ０  −ｄ７  の８つのバッファＢ０−Ｂ７を含む。各バッファＢ０−Ｂ７は、イネーブル信号ＢＭＬ０−ＢＭＬ７  によってイネーブルされ、データＢＭ０−ＢＭ７  をビット並列に受ける。バッファＢ０からは１ビットのデータＢＭ００−ＢＭ０７  が出力され、バッファＢ１，Ｂ２，…Ｂ７からは、それぞれ、データＢＭ１０−ＢＭ１７  ，ＢＭ２０−ＢＭ２７  ，…ＢＭ７０−ＢＭ７７  が出力される。これらのデータＢＭ００−ＢＭ７７  は、それぞれ、対応の８−１セレクタＳ０−Ｓ７に与えられる。セレクタＳ０およびＳ４が信号ＣＨ４ＳＥＬ２  ，ＣＨ４ＳＥＬ１  およびＣＨ４ＳＥＬ０  によって制御され、セレクタＳ１およびＳ５が信号ＣＨ５ＳＥＬ２  ，ＣＨ５ＳＥＬ１  およびＣＨ５ＳＥＬ０  によって制御され、セレクタＳ２およびＳ６が信号ＣＨ６ＳＥＬ２  ，ＣＨ６ＳＥＬ１  およびＣＨ６ＳＥＬ０  によって制御され、セレクタＳ３およびＳ７が信号ＣＨ７ＳＥＬ２  ，ＣＨ７ＳＥＬ１  およびＣＨ７ＳＥＬ０  によって制御される。そして、セレクタＳ０，Ｓ１，Ｓ２，…，Ｓ７からは、キャラクタデータＣＨＤ０，ＣＨＤ１，ＣＨＤ２，…，ＣＨＤ７が出力される。
【００７５】
図２７に示すように、ＢＣＣ回路８４は、ライトアドレスカウンタ１３０を含む。このライトアドレスカウンタ１３０には、Ｓ−ＣＰＵ１８によって、ライトアドレスがプリセットロードされ、インクリメント信号ＲＦＩＮＵＰに応じて、クロック信号ＰＨＩ２Ｂ  毎にインクリメントされる。ライトアドレスカウンタ１３０の出力はラッチ１６８に与えられる。ライトアドレスカウンタ１３０およびラッチ１６８は、ともに４ビットであり、その４ビットによって、図２８の８つのバッファレジスタＢ０−Ｂ７を選択する。すなわち、ラッチ１６８から出力されるライトアドレスカウンタ１３０のカウント値は、図１６の第２アドレス変換回路１３２を構成するイネーブル信号発生回路１７０に与えられる。
【００７６】
イネーブル信号発生回路１７０は、３−１セレクタ１７２を含む。３−１セレクタ１７２は４ビットであり、各ビット毎にラッチ１６８からの出力ビットＣ０−Ｃ３  のうちの３つのビットを受ける。最下位ビットの３入力は、いずれも、ラッチ１６８の最下位ビットＣ０を受ける。下位第２ビットの３入力としては、ラッチ１６８の出力ビットＣ０，Ｃ１およびＣ０を受け、上第２ビットの３入力としてはラッチ１６８の出力ビットＣ２，Ｃ１およびＣ０を受け、最上位ビットの３入力としてはラッチ１６８の出力ビットＣ３，Ｃ２およびＣ０を受ける。この３−１セレクタ１７２には、モード信号ＣＢ０  およびＣＢ１  が与えられる。したがって、２５６色モードにおいては、信号ＣＢ０  およびＣＢ１  が「００」となるため、３−１セレクタ１７２は、各ビットの「０」で与えられる入力ビットを選択する。すなわち、この場合には、３−１セレクタ１７２からは、ラッチ１６８の出力ビットＣ０−Ｃ４  がそのまま出力される。１６色モードにおいては、信号ＣＢ０  およびＣＢ１  が「０１」となるため、３−１セレクタ１７２は、各ビット毎に、「１」で示される入力を選択する。したがって、この場合には、３−１セレクタ１７２からは、ラッチ１６８の出力ビットＣ２，Ｃ１，Ｃ０およびＣ０が出力される。４色モードにおいては、信号ＣＢ０  およびＣＢ１  が「１０」となるため、３−１セレクタ１６８は、各ビット毎に、「２」で示す入力ビットを選択する。したがって、この場合には、３−１セレクタ１７２からは、最上位ビットから順に、ラッチ１６８の出力ビットＣ０，Ｃ０，Ｃ０およびＣ０が出力される。
【００７７】
一方、イネーブル信号発生回路１７０には、キャララインバッファ１２６および１２８の各バッファレジスタＢ０−Ｂ７のライト信号ＢＲＦ０Ｗ−ＢＲＦＦＷ  が与えられる。このライト信号ＢＲＦ０Ｗ−ＢＲＦＦＷ  は、３−１セレクタ１７２の出力とともに、ＯＲゲートを通して、レジスタイネーブル信号ＢＭＡＬ７  ，ＢＭＡＬ６  ，ＢＭＡＬ５  およびＢＭＡＬ４  として出力される。
【００７８】
第２アドレス変換回路１３２は、イネーブル信号発生回路１７０と同じ構成の３つのイネーブル信号発生回路１７４，１７６および１７８を含む。したがって、イネーブル信号発生回路１７４からはレジスタイネーブル信号ＢＭＡＬ３  ，ＢＭＡＬ２  ，ＢＭＡＬ１  およびＢＭＡＬ０  が出力される。イネーブル信号発生回路１７０および１７４からのイネーブル信号ＢＭＡＬ０−ＢＭＡＬ７  によって、図２８に詳細に示すキャララインバッファ１２６のバッファレジスタＢ０−Ｂ７がイネーブルされる。同じように、イネーブル信号発生回路１７６および１７８から出力されるイネーブル信号ＢＭＢＬ０−ＢＭＢＬ７  によって、キャララインバッファ１２８に含まれる各バッファレジスタＢ０−Ｂ７がイネーブルされる。
【００７９】
このようにして、第２アドレス変換回路１３２は、ライトアドレスカウンタ１３０のライトアドレスをキャララインバッファ１２６および１２８のバッファレジスタＢ０−Ｂ７のイネーブル信号に変換する。図２９が８ビットモード（２５６色モード）を示し、図３０が４ビットモード（１６色モード）を示し、そして図３１が２ビットモード（４色モード）を示す。なお、図２９−図３１において、ライトアドレスカウンタ値はラッチ１７０のカウント値を２進化１０進数で示したものであり、ライトアドレスカウンタ１３０のカウント値に応じて異なるイネーブル信号が出力されることがわかる。図２９の２５６色モードにおいては、ライトアドレスカウンタ１３０のカウント値が「０」，「１」，「２」，…「１５」とインクリメントする毎に、キャララインバッファ１２６のバッファレジスタＢ０−Ｂ７およびキャララインバッファ１２８のバッファレジスタＢ０−Ｂ７が順にイネーブルされる。
【００８０】
ところが、図３０に示す１６色モードでは、ライトアドレスカウンタ１３０のカウント値が「０」のときにはキャララインバッファ１２６のバッファレジスタＢ０およびＢ１が同時にイネーブルされ、「１」のときにはバッファレジスタＢ２およびＢ３が同時にイネーブルされ、「２」のときにはバッファレジスタＢ４およびＢ５が同時にイネーブルされ、「３」のときにはバッファレジスタＢ６およびＢ７が同時にイネーブルされる。同じように、キャララインバッファ１２８のバッファレジスタＢ０およびＢ１、Ｂ２およびＢ３、Ｂ４およびＢ５、そしてＢ６およびＢ７が、それぞれ、ライトアドレスカウンタ１３０のカウント値「４」，「５」，「６」および「７」で同時にイネーブルされる。図３１に示す４色モードでは、各キャララインバッファ１２６および１２８において、４つのバッファレジスタＢ０−Ｂ３またはＢ４−Ｂ７が同時にイネーブルされる。
【００８１】
一方、キャララインバッファ１２６および１２８には、図２７に示す２−１セレクタ１８０によって選択されたデータＢＤ０−ＢＤ７  またはＣＤ０−ＣＤ７  が与えられる。すなわち、２−１セレクタ１８０には、セレクト信号として「１」のキャラクタ変換信号ＣＤＳＥＬ  が与えられる。したがって、２−１セレクタ１８０からは、データＢＤ０−ＢＤ７  が出力される。このデータＢＤ０−ＢＤ７  は、Ｂ−ＲＡＭ３８の出力データである。Ｂ−ＲＡＭ３８の出力データＢＤ０−ＢＤ７  は、それぞれ、キャララインバッファ１２６および１２８のデータ入力ＢＭ０−ＢＭ７  に与えられる。先に述べたように、８ビットモードにおいては、バッファＲＡＭＢ０−Ｂ７が順次イネーブル（アドレス）されるので、バッファレジスタＢ０にはデータＢＭ００−ＢＭ０７  がロードされ、バッファレジスタＢ１にはデータＢＭ１０−ＢＭ１７  がロードされる。以下同様に、バッファレジスタＢ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６およびＢ７には、データＢＭ２０−ＢＭ２７  ，ＢＭ３０−ＢＭ３７  ，ＢＭ４０−ＢＭ４７  ，ＢＭ５０−ＢＭ５７  ，ＢＭ６０−ＢＭ６７  およびＢＭ７０−ＢＭ７７  が、各ビットＤ０−Ｄ７にロードされる。ところが、４ビットモードにおいては、先に述べたように２つのバッファレジスタが同時にイネーブル（アドレス）されるので、同時にイネーブルされる２つのバッファレジスタには同じデータがロードされる。２ビットモードにおいては、同時にイネーブルされる４つのレジスタに同じデータがロードされる。
【００８２】
ＢＣＣ回路８４は、さらに、図２７に示すようにリードデータカウンタ１３４を含み、このリードデータカウンタ１３４はインクリメント信号ＲＦＯＯＴＵＰ  を受け、クロック信号ＰＨＩ２Ｂ  に応じてインクリメントされる。モード信号ＣＢ０  およびＣＢ１  が、ＡＮＤゲート１８２および１８４のそれぞれの一方入力に与えられ、ＡＮＤゲート１８２および１８４の他方入力にはキャラクタ変換信号ＣＤＳＥＬ  が共通に与えられる。したがって、ＡＮＤゲート１８２および１８４からは、キャラクタ変換を実行するときに、モードに応じて「００」，「０１」または「１０」を出力する。そして、リードデータカウンタ１３４の４ビットの出力の下位３ビットは３−１セレクタ１８６に与えられ、この３−１セレクタ１８６の出力はキャララインバッファ１２６および１２８の出力を選択する２−１セレクタ１８８のセレクト信号として与えられる。ＡＮＤゲート１８２および１８４の出力すなわちモード信号は、さらに図１６に示すリードセレクト信号変換回路１３６に与えられる。
【００８３】
リードセレクト信号変換回路１３６は、リードデータカウンタ１３４のカウント値に応じて、図２８に示すバッファレジスタＢ０−Ｂ７のどのビットを出力するかを選択するためのセレクタＳ０−Ｓ７のセレクト信号（ＣＨ４ＳＥＬ２，ＣＨ４ＳＥＬ１  ，ＣＨ４ＳＥＬ０），（ＣＨ５ＳＥＬ２，ＣＨ５ＳＥＬ１  ，ＣＨ５ＳＥＬ０），（ＣＨ６ＳＥＬ２，ＣＨ６ＳＥＬ１  ，ＣＨ６ＳＥＬ０），および（ＣＨ７ＳＥＬ２，ＣＨ７ＳＥＬ１  ，ＣＨ７ＳＥＬ０）を出力するための回路である。
【００８４】
リードセレクト信号変換回路１３６はＯＲゲート１８８，１９０，１９２および１９４，およびＡＮＤゲート１９６を含む。ＯＲゲート１８８は３入力ＯＲゲートであり、リードデータカウンタ１３４の上位第２ビットおよびＡＮＤゲート１８２および１８４の出力を受ける。ＯＲゲート１９０は２入力ＯＲゲートであり、ＡＮＤゲート１８４の出力とリードデータカウンタ１３４の上第２ビットを受ける。ＯＲゲート１９２は２入力ＯＲゲートであり、ＡＮＤゲート１８４の出力とリードデータカウンタ１３４の下第２ビットを受ける。ＯＲゲート１９４もまた２入力ＯＲゲートであり、ＡＮＤゲート１８２の出力とリードデータカウンタ１３４の上第２ビットを受ける。ＡＮＤゲート１９４には、ＡＮＤゲート１８４の出力とＯＲゲート１９４の出力とが与えられる。そして、リードセレクト信号変換回路１３６からは、先に述べたセレクト信号が出力される。
【００８５】
図２８を参照して、セレクト信号ＣＨ４ＳＥＬ２  ，ＣＨ４ＳＥＬ１  ，ＣＨ４ＳＥＬ０  はセレクタＳ０およびＳ４に共通に与えられ、セレクト信号ＣＨ５ＳＥＬ２  ，ＣＨ５ＳＥＬ１  ，ＣＨ５ＳＥＬ０  はセレクタＳ１およびＳ５に共通に与えられ、セレクト信号ＣＨ６ＳＥＬ２  ，ＣＨ６ＳＥＬ１  ，ＣＨ６ＳＥＬ０  はセレクタＳ２およびＳ６に共通に与えられ、そしてセレクト信号ＣＨ７ＳＥＬ２  ，ＣＨ７ＳＥＬ１  ，ＣＨ７ＳＥＬ０  はセレクタＳ３およびＳ７に共通に与えられる。一方、セレクト信号ＣＨ４ＳＥＬ２  ，ＣＨ４ＳＥＬ１  およびＣＨ４ＳＥＬ０  は、それぞれ、リードデータカウンタ１３４の上位第２ビット（またはＡＮＤゲート１８２または１８４の出力），リードデータカウンタ１３４の下位第２ビット，およびリードデータカウンタ１３４の最下位ビットである。同じように、セレクト信号ＣＨ５ＳＥＬ２  ，ＣＨ５ＳＥＬ１  およびＣＨ５ＳＥＬ０  は、リードデータカウンタ１３４の上位第２ビット（またはＡＮＤゲート１８４の出力），リードデータカウンタ１３４の下位第２ビット，およびリードデータカウンタ１３４の最下位ビットである。セレクト信号ＣＨ６ＳＥＬ２  ，ＣＨ６ＳＥＬ１  およびＣＨ６ＳＥＬ０  は、リードデータカウンタ１３４の上位第２ビット（またはＡＮＤゲート１８２の出力）とＡＮＤゲート１８４の出力のＡＮＤ，リードデータカウンタ１３４の下位第２ビット（またはＡＮＤゲート１８４の出力）およびリードデータカウンタ１３４の最下位ビットである。セレクト信号ＣＨ７ＳＥＬ２  ，ＣＨ７ＳＥＬ１  およびＣＨ７ＳＥＬ０  は、それぞれ、リードデータカウンタ１３４の下位３ビットである。
【００８６】
したがって、リードデータカウンタ１３４のカウント値が「＊＊１０」または「＊＊００」のときにセレクト信号ＣＨ４ＳＥＬ０  ，ＣＨ５ＳＥＬ０  ，ＣＨ６ＳＥＬ０  およびＣＨ７ＳＥＬ０  が出力され、リードデータカウンタ１３４のカウント値が「＊＊１０」または「＊＊１１」のときにセレクト信号ＣＨ４ＳＥＬ１  ，ＣＨ５ＳＥＬ１  ，ＣＨ６ＳＥＬ１  およびＣＨ７ＳＥＬ１  が出力され、リードデータカウンタ１３４のカウント値が「＊１００」，「＊１０１」，「＊１１０」，または「＊１１１」のときセレクト信号ＣＨ４ＳＥＬ２  ，ＣＨ５ＳＥＬ２  ，ＣＨ６ＳＥＬ２  およびＣＨ７ＳＥＬ２  が出力される。
【００８７】
セレクタＳ０−Ｓ７は、上述のようなセレクト信号に応じて各バッファレジスタＢ０−Ｂ７の各ビットｄ０  −ｄ７  のいずれかを選択して、キャラクタデータＣＨＤ０−ＣＨＤ７  を出力する。したがって、セレクタＳ０−Ｓ７からは、図３２，図３３または図３４に従って、キャラクタ形式の画像データを構成する各プレーン毎のキャラクタデータＣＨＤ０−ＣＨＤ７  が出力される。
【００８８】
より詳細に説明すると、図３２，および図３５および３６に示す８ビットモードにおいては、図３６の第１プレーンでは、１ラインのデータＣＨ０−ＣＨ７  として、データＢＭ００−ＢＭ０７  が出力され、第２プレーンの１ラインのデータとしてデータＢＭ１０−ＢＭ１７  が出力される。以下、同様にして、第３プレーン，第４プレーン，第５プレーン，第６プレーン，第７プレーンおよび第８プレーンの各々１ラインのデータとして、データＢＭ２０−ＢＭ２７  ，ＢＭ３０−ＢＭ３７  ，ＢＭ４０−ＢＭ４７  ，ＢＭ５０−ＢＭ５７  ，ＢＭ６０−ＢＭ６７  およびＢＭ７０−ＢＭ７７  が出力される。
【００８９】
図３３，および図３７および図３８に示す４ビットモードでは、図３８の第１プレーンでは、１ラインのデータＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４，ＣＨ５，ＣＨ６，およびＣＨ７  として、データＢＭ０４，ＢＭ１０，ＢＭ２４，ＢＭ３０，ＢＭ４４，ＢＭ５０，ＢＭ６４，  およびＢＭ７０が出力される。第２プレーンでは、１ラインのデータＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４，ＣＨ５，ＣＨ６，およびＣＨ７  として、データＢＭ０５，ＢＭ１１，ＢＭ２５，ＢＭ３１，ＢＭ４５，ＢＭ５１，ＢＭ６５，  およびＢＭ７１が出力される。第３プレーンでは、１ラインのデータＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４，ＣＨ５，ＣＨ６，およびＣＨ７  として、データＢＭ０６，ＢＭ１２，ＢＭ２６，ＢＭ３２，ＢＭ４６，ＢＭ５２，ＢＭ６６，  およびＢＭ７２が出力される。第４プレーンでは、１ラインのデータＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４，ＣＨ５，ＣＨ６，およびＣＨ７  として、データＢＭ０７，ＢＭ１３，ＢＭ２７，ＢＭ３３，ＢＭ４７，ＢＭ５３，ＢＭ６７，  およびＢＭ７３が出力される。
【００９０】
図３４，および図３９および図４０に示す２ビットモードでは、図４０の第１プレーンでは、１ラインのデータＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４，ＣＨ５，ＣＨ６，およびＣＨ７  として、データＢＭ０６，ＢＭ１４，ＢＭ２２，ＢＭ３０，ＢＭ４６，ＢＭ５４，ＢＭ６２，  およびＢＭ７０が出力される。第２プレーンでは、１ラインのデータＣＨ０，ＣＨ１，ＣＨ２，ＣＨ３，ＣＨ４，ＣＨ５，ＣＨ６，およびＣＨ７  として、データＢＭ０７，ＢＭ１５，ＢＭ２３，ＢＭ３１，ＢＭ４７，ＢＭ６５，ＢＭ６３，  およびＢＭ７１が出力される。
【００９１】
このようにして、リードデータ信号変換回路１３６によって、キャララインバッファ１２６および１２８の適宜のビットがセレクタＳ０−Ｓ７によって読み出されるように、セレクト信号が与えられる。すなわち、８ビットモードでは、各バッファレジスタＢ０−Ｂ７からデータｄ０  −ｄ１  が１ビットずつ読み出される。４ビットモードでは、対を構成するバッファレジスタの一方からは下位ビットが順に、他方からは上位ビットが順に、それぞれ、読み出される。２ビットモードでは、１組の４つのバッファレジスタから、最下位２ビット，下位２ビット，上位２ビットおよび最上位２ビットが順に読み出される。
【００９２】
このようなキャララインバッファ１２６および１２８からのデータの読出の一例が図４１に示される。
次に、図４２を参照して、図４に示すＩＤＭＡ回路９０について説明する。ＩＤＭＡ回路９０は図１６に示すディスティネーションアドレスカウンタ１３８を含み、このディスティネーションアドレスカウンタ１３８には、Ｓ−ＣＰＵ１８（またはＣ−ＣＰＵ４０）からのディスティネーションアドレスデータＳＣＤ０−ＳＣＤ７  が与えられ、ロード信号に応じてプリセットロードされる。
【００９３】
ディスティネーションアドレスカウンタ１３８は、下位５ビットのカウンタ１３８ａ，３つの１ビットカウンタ１３８ｂ，１３８ｃおよび１３８ｄ，および上位３ビットのカウンタ１３８ｅを含む。５ビットカウンタ１３８ａと１ビットカウンタ１３８ｂとの間には５ビットカウンタ１３８ａのキャリー信号を１ビットカウンタ１３８ｂのイネーブル信号として与えるためのＡＮＤゲート１３８ｆを含む。１ビットカウンタ１３８ｂのキャリー信号がＡＮＤゲート１３８ｇを介して１ビットカウンタ１３８ｃのイネーブル信号に与えられ、この１ビットカウンタ１３８ｃのキャリー信号がＡＮＤゲート１３８ｈを介して１ビットカウンタ１３８ｄのイネーブル信号に与えられ、１ビットカウンタ１３８ｄのキャリー信号がＡＮＤゲート１３８ｉを介して３ビットカウンタ１３８ｅのイネーブルとして与えられる。なお、５ビットカウンタ１３８ａのイネーブル信号としてはインクリメント信号ＩＤＭＡＵＰが与えられる。
【００９４】
Ｓ−ＣＰＵ１８のプリセットデータＳＣＤ０−ＳＣＤ４  がＡＮＤゲート１９８を介して５ビットカウンタ１３８ａの対応のプリセット入力に与えられる。プリセットデータのビットＳＣＤ５がＡＮＤゲート２００を介して１ビットカウンタ１３８ｂのプリセット入力に与えられる。プリセットデータのビットＳＣＤ６がＡＮＤゲート２０２を介して１ビットカウンタ１３８ｃのプリセット入力に与えられる。プリセットデータのビットＳＣＤ７，ＳＣＤ０（８）−ＳＣＤ２（１０）はそのまま１ビットカウンタ１３８ｄおよび３ビットカウンタ１３８ｅのプリセット入力に与えられる。ＡＮＤゲート１９８のそれぞれの制御入力として、キャラクタ変換信号ＣＤＥＮの反転が与えられる。この信号ＣＤＥＮの反転は、さらに、ＯＲゲート２０４および２０６，およびＡＮＤゲート１３８ｈおよび１３８ｉに与えられるとともに、さらに反転されてＮＡＮＤゲート２０８および２１０の一方入力に与えられる。ＯＲゲート２０４の他方入力にはモード信号ＣＢ１  の反転が与えられ、このＯＲゲート２０４の出力がインクリメント信号ＩＤＭＡＵＰとともにＡＮＤゲート１３８ｆの残余の入力に与えられる。モード信号ＣＢ１  の反転がＮＡＮＤゲート２０８の他方入力に与えられるとともに、ＡＮＤゲート２１２の一方入力に与えられる。このＡＮＤゲート２１２の他方入力はモード信号ＣＢ０  の反転を受け、ＡＮＤゲート２１２の出力はＯＲゲート２０６の他方入力に与えられるとともに、ＮＡＮＤゲート２１０の他方入力に与えられる。ＮＡＮＤゲート２０８の出力はＡＮＤゲート２００の制御信号となり、ＯＲゲート２０６の出力はインクリメント信号ＩＤＭＡＵＰとともにＡＮＤゲート１３９ｇの残余の入力に与えられる。ＮＡＮＤゲート２１０の出力はＡＮＤゲート２０２の制御信号となる。
【００９５】
図１７の２−１セレクタ１４８および同期化回路１５０と同様の２−１セレクタ２１２および２１４が設けられ、同期化回路２１４から各カウンタ１３８ａ−１３８ｅのロード信号が与えられる。したがって、ディスティネーションアドレスカウンタ１３８に、Ｓ−ＣＰＵ１８からのディスティネーションアドレスデータＳＣＤ０−ＳＣＤ１０（２）  がプリセットロードされる。その後、クロック信号ＰＨＩ２Ｂ  に応じてカウンタ１３８がインクリメントされる。
【００９６】
このディスティネーションアドレスカウンタ１３８からはカウント値ＩＡＣ０−ＩＡＣ１０が出力される。ビットＩＡＣ０，ＩＡＣ６，ＩＡＣ７，ＩＡＣ８，ＩＡＣ９およびＩＡＣ１０  はそのままＩ−ＲＡＭ４４のアドレスビットＩＤＡ０，ＩＤＡ６，ＩＤＡ７，ＩＤＡ８，ＩＤＡ９およびＩＤＡ１０  として出力される。ディスティネーションカウンタ１３８の出力ビットＩＡＣ１−ＩＡＣ３  は３−１セレクタ２１６に与えられる。３−１セレクタ２１６は３ビットであり、その最下位ビットの３入力としては、出力ビットＩＡＣ１，ＩＡＣ２およびＩＡＣ３が与えられ、中位ビットの３入力としては出力ビットＩＡＣ２，ＩＡＣ３およびＩＡＣ４が与えられ、そして最上位ビットの３入力としては出力ビットＩＡＣ３，ＩＡＣ４およびＩＡＣ５が与えられる。この３−１セレクタ２１６のセレクト信号としては、キャラクタ変換信号ＣＤＥＮおよびモード信号ＣＢ０  およびＣＢ１  を受けるデコーダ２１８からの３ビットが与えられる。
【００９７】
８ビットモードの場合には、モード信号ＣＢ０  およびＣＢ１  がともに「０」となるため、３−１セレクタ２１６は各ビット毎に、「２」の入力を選択する。したがって、この場合には、３−１セレクタ２１６からのアドレスビットＩＤＡ１，ＩＤＡ２およびＩＤＡ３としては、ディスティネーションアドレスカウンタ１３８の出力ビットＩＡＣ３，ＩＡＣ４およびＩＡＣ５が与えられる。４ビットモードではモード信号ＣＢ１  が「１」となりモード信号ＣＢ０  が「０」となる。したがって、デコーダ２１８からは３−１セレクタ２１６に「１」のセレクト信号を与える。応じて、３−１セレクタ２１６から出力されるアドレスビットＩＤＡ１，ＩＤＡ２およびＩＤＡ３としては、ディスティネーションアドレスカウンタ１３８の出力ビットＩＡＣ２，ＩＡＣ３およびＩＡＣ４が選択される。同じように、２ビットモードにおいては、３−１セレクタ２１６からのアドレスビットＩＤＡ１，ＩＤＡ２およびＩＤＡ３として、ディスティネーションアドレスカウンタ１３８ａの出力ビットＩＡＣ１，ＩＡＣ２およびＩＡＣ３が与えられる。
【００９８】
さらに、ディスティネーションアドレスカウンタ１３８の出力ビットＩＡＣ１およびＩＡＣ４が２−１セレクタ２２０に与えられる。このセレクタ２２０は４ビットモードのとき「１」の入力を選択し、２ビットモードのとき「０」の入力を選択する。したがって、４ビットモードのときには、アドレスビットＩＤＡ４としてディスティネーションアドレスカウンタ１３８の出力ビットＩＡＣ１が与えられ、２ビットモードにおいては、出力ビットＩＡＣ４がアドレスビットＩＤＡ４としてそのまま出力される。２−１セレクタ２２２はディスティネーションアドレスカウンタ１３８の出力ビットＩＡＣ５およびＩＡＣ２を受け、このセレクタ２２２は８ビットモードのとき「１」を選択し、それ以外のモードのとき「０」を選択する。したがって、８ビットモードのときには、アドレスビットＩＤＡ５として、ディスティネーションアドレスカウンタ１３８の出力ビットＩＡＣ２が出力され、それ以外のモードのとき出力ビットＩＡＣ５がそのままアドレスビットＩＤＡ５として出力される。すなわち、セレクタ２１６，２２０および２２２によって、図１６に示す第３アドレス変換回路１４０が構成される。
【００９９】
このようにして、この第３アドレス変換回路１４０は、図４３に従って、ディスティネーションアドレスカウンタ１３８のカウント値をＩ−ＲＡＭ４４のアドレスに変換する。
すなわち、先の図３６，図３８あるいは図４０に示すように、キャララインバッファ１２６および１２８からのデータがＩ−ＲＡＭ４４に記憶されるとき、Ｉ−ＲＡＭ４４のアドレスを必ずしも順番には指定しない。したがって、第３アドレス変換回路１４０は、ディスティネーションアドレスカウンタ１３８からの入力ビットの位置を図４３に示すように変更する。図３６の８ビットモードの場合、Ｖ−ＲＡＭ３０（図１）の１アドレスに１つのプレーンの１行のデータｄ０  −ｄ７  が記憶されることになるが、Ｖ−ＲＡＭ３０のアドレスｎに図３５のＢ−ＲＡＭ３８のアドレスｎ，ｎ＋１，…からデータｄ０  ，ｄ０  ，…を読み出す必要がある。ところが、Ｉ−ＲＡＭ４４には、セレクトＳ０−Ｓ７（図２８）からのデータｄ０  −ｄ７  が順次入力される。そこで、セレクトＳ０−Ｓ７からのデータをＩ−ＲＡＭ４４に書き込む際に、Ｓ−ＣＰＵ１８の汎用ＤＭＡでＩ−ＲＡＭ４４のアドレスを順番に指定するだけで、図３６，図３８あるいは図４０に示すように、Ｖ−ＲＡＭ３０またはＷ−ＲＡＭ２４（図１）に各プレーン毎の画像データが書き込まれるようにするために、第３アドレス変換回路１４０は、図４３に従って、ディスティネーションアドレスをＩ−ＲＡＭ４４のアドレスに変更する。
【０１００】
なお、図４４に示すように、Ｉ−ＲＡＭ４４の２つのキャラクタバッファは、交互に読み出し（Ｒ）および書き込み（Ｗ）を繰り返す。
そして、図４５（８ビットモード），図４６（４ビットモード），あるいは図４７（２ビットモード）に示すように、ＢＤＭＡによってＢ−ＲＡＭ３８から１つのドットの色コードを読み出すまでは、Ｉ−ＲＡＭ４４のＩＤＭＡはスタートしない。そして、Ｉ−ＲＡＭ４４に１つのキャラクタの画像データが記憶されると、図４５−図４７において点線矢印で示すように、Ｓ−ＣＰＵ１８の汎用ＤＭＡと連動する。
【図面の簡単な説明】
【図１】この発明の一実施例を示すブロック図である。
【図２】図１実施例のＳ−ＣＰＵから見たメモリマップを示す図解図である。
【図３】図１実施例のＣ−ＣＰＵから見たメモリマップを示す図解図である。
【図４】図１実施例を詳細に示すブロック図である。
【図５】図４のＢＢＣ回路を詳細に示すブロック図である。
【図６】図５実施例によって達成されるビットマップ−ビットマップのデータ変換の一例を示す図解図であり、（Ａ）が図４のＣ−ＣＰＵのライトデータおよびリードデータを示し、（Ｂ）が図１のＢ−ＲＡＭの記憶フォーマットを示す。
【図７】図５実施例によって達成されるビットマップ−ビットマップのデータ変換の一例を示す図解図であり、（Ａ）が図４のＣ−ＣＰＵのライトデータおよびリードデータを示し、（Ｂ）が図１のＢ−ＲＡＭの記憶フォーマットを示す。
【図８】図５実施例のアドレスデコーダ・ＢＢＣコントロール回路の一例を示すブロック図である。
【図９】図５実施例のＢＢＣアドレス変換回路によって達成されるアドレス変換の一例を示す図解図である。
【図１０】図５実施例のＢＢＣアドレス変換回路によって達成されるアドレス変換の一例を示す図解図である。
【図１１】図５実施例のＢＢＣライトデータ変換回路によって達成されるライトデータ変換の一例を示す図解図である。
【図１２】図５実施例のＢＢＣライトデータ変換回路によって達成されるライトデータ変換の一例を示す図解図である。
【図１３】図５実施例のＢＢＣリードデータ変換回路で達成されるリードデータ変換の一例を示す図解図である。
【図１４】図５実施例のＢＢＣリードデータ変換回路で達成されるリードデータ変換の一例を示す図解図である。
【図１５】図５実施例の動作を示すタイミング図である。
【図１６】図４実施例によって達成されるビットマップ−キャラクタ変換の概要を示す図解図である。
【図１７】図４実施例のＢＤＭＡ回路の一部を示すブロック図である。
【図１８】図４実施例のＢＤＭＡ回路の一部を示すブロック図である。
【図１９】図１８のセレクタによって達成されるアドレスビットの切り換えの一例を示す図解図である。
【図２０】図１８のセレクタによって達成されるアドレスビットの切り換えの一例を示す図解図である。
【図２１】図１８のセレクタによって達成されるアドレスビットの切り換えの一例を示す図解図である。
【図２２】８ビットモードの４つのキャラクタが連続して配置される場合のＢ−ＲＡＭの記憶フォーマットを示す図解図である。
【図２３】図２２のキャラクタ１のビットマップデータをキャラクタデータに変換した状態を示す図解図である。
【図２４】図２２のキャラクタ２のビットマップデータをキャラクタデータに変換した状態を示す図解図である。
【図２５】図２２のキャラクタ３のビットマップデータをキャラクタデータに変換した状態を示す図解図である。
【図２６】図２２のキャラクタ４のビットマップデータをキャラクタデータに変換した状態を示す図解図である。
【図２７】図４実施例のＢＣＣ回路を示すブロック図である。
【図２８】図２７実施例のキャララインバッファを示す回路図である。
【図２９】図２７実施例の第２アドレス変換回路によって達成されるライトアドレス変換の一例を示す図解図である。
【図３０】図２７実施例の第２アドレス変換回路によって達成されるライトアドレス変換の一例を示す図解図である。
【図３１】図２７実施例の第２アドレス変換回路によって達成されるライトアドレス変換の一例を示す図解図である。
【図３２】図２７実施例のリードセレクト信号変換回路によって達成されるリードセレクト信号変換の一例を示す図解図である。
【図３３】図２７実施例のリードセレクト信号変換回路によって達成されるリードセレクト信号変換の一例を示す図解図である。
【図３４】図２７実施例のリードセレクト信号変換回路によって達成されるリードセレクト信号変換の一例を示す図解図である。
【図３５】８ビット（２５６色モード）のＢ−ＲＡＭの記憶フォーマットの一例を示す図解図である。
【図３６】図３５のビットマップデータを変換したキャラクタデータの一例を示す図解図である。
【図３７】４ビットモード（１６色モード）におけるＢ−ＲＡＭのビットマップデータの記憶フォーマットの一例を示す図解図である。
【図３８】図３７のビットマップデータを変換したキャラクタデータの一例を示す図解図である。
【図３９】２ビットモード（４色モード）におけるＢ−ＲＡＭのビットマップデータの記憶フォーマットの一例を示す図解図である。
【図４０】図３９のビットマップデータを変換したキャラクタデータの一例を示す図解図である。
【図４１】図２８のセレクタからのキャラクタデータの読み出しの一例を示す図解図である。
【図４２】図４実施例のＩＤＭＡ回路を詳細に示すブロック図である。
【図４３】図４２実施例の第３アドレス変換回路によって達成されるディスティネーションアドレス変換の一例を示す図解図である。
【図４４】図１６に示す実施例の動作を示すタイミング図である。
【図４５】８ビットモードのとき、Ｉ−ＲＡＭの２つのキャラクタバッファの動作を示すタイミング図である。
【図４６】４ビットモードのとき、Ｉ−ＲＡＭの２つのキャラクタバッファの動作を示すタイミング図である。
【図４７】２ビットモードのとき、Ｉ−ＲＡＭの２つのキャラクタバッファの動作を示すタイミング図である。
【符号の説明】
１０  …ビデオゲーム機
１８  …Ｓ−ＣＰＵ
２４  …Ｗ−ＲＡＭ
３２  …Ｖ−ＲＡＭ
３８  …Ｂ−ＲＡＭ
４０  …Ｃ−ＣＰＵ
４２  …アクセス制御回路
４４  …Ｉ−ＲＡＭ
７０  …ＢＢＣ回路
７２  …ＢＤＭＡ回路
８４  …ＢＣＣ回路
９０  …ＩＤＭＡ回路
１０４  …ＢＢＣアドレス変換回路
１１４  …ＢＢＣライトデータ変換回路
１１６  …ＢＢＣリードデータ変換回路
１２２  …ソースアドレスカウンタ
１２４  …第１アドレス変換回路
１２６，１２８  …キャララインバッファ
１３０  …ライトアドレスカウンタ
１３２  …第２アドレス変換回路
１３４  …リードデータカウンタ
１３６  …リードセレクト信号変換回路
１３８  …ディスティネーションアドレスカウンタ
１４０  …第３アドレス変換回路
【図１】
0003571380.tif 000002
【図２】
0003571380.tif 000003
【図３】
0003571380.tif 000004
【図４】
0003571380.tif 000005
【図５】
0003571380.tif 000006
【図６】
0003571380.tif 000007
【図７】
0003571380.tif 000008
【図８】
0003571380.tif 000009
【図９】
0003571380.tif 000010
【図１０】
0003571380.tif 000011
【図１１】
0003571380.tif 000012
【図１２】
0003571380.tif 000013
【図１３】
0003571380.tif 000014
【図１４】
0003571380.tif 000015
【図１５】
0003571380.tif 000016
【図１６】
0003571380.tif 000017
【図１７】
0003571380.tif 000018
【図１８】
0003571380.tif 000019
【図１９】
0003571380.tif 000020
【図２０】
0003571380.tif 000021
【図２１】
0003571380.tif 000022
【図２２】
0003571380.tif 000023
【図２３】
0003571380.tif 000024
【図２４】
0003571380.tif 000025
【図２５】
0003571380.tif 000026
【図２６】
0003571380.tif 000027
【図２７】
0003571380.tif 000028
【図２８】
0003571380.tif 000029
【図２９】
0003571380.tif 000030
【図３０】
0003571380.tif 000031
【図３１】
0003571380.tif 000032
【図３２】
0003571380.tif 000033
【図３３】
0003571380.tif 000034
【図３４】
0003571380.tif 000035
【図３５】
0003571380.tif 000036
【図３６】
0003571380.tif 000037
【図３７】
0003571380.tif 000038
【図３８】
0003571380.tif 000039
【図３９】
0003571380.tif 000040
【図４０】
0003571380.tif 000041
【図４１】
0003571380.tif 000042
【図４２】
0003571380.tif 000043
【図４３】
0003571380.tif 000044
【図４４】
0003571380.tif 000045
【図４５】
0003571380.tif 000046
【図４６】
0003571380.tif 000047
【図４７】
0003571380.tif 000048