さあ、考えよう
さて、物を作ったり、プログラムを書くときに、まず初めに何をしなければならないか?
そうです。何をするか考えることです。
目標は少しぐらい高いほうがやりがいがあります。
とはいっても、高すぎるのは問題です。
「EmuZ-2000の上でWindows2000を動かそう!」などはもってのほかです。
あと、EmuZ-2000を使って有効なものにしなければなりません。
「テキストエディタボードを作ろう!」とか「VisualC++に対抗してVirtualC++ボードを作ろう」
とか、最早何を言っているのか訳がわからないものも論外です。
最近、EmuZ-2000君が
「FFTって大変だよね。非力なCPUでは何が高速か!って感じだよね。
そうだ、ボードはFFT演算ボードにしようよ!ハードアシストがあれば、非力なCPUでもいけるよ!
ハミング・ハニング・ブラックマン窓掛けくらいは出来るようにしてさ!
パワー算出も出来るようにしよう!Logとって・・いや、こうなったらDFTだ!DFTボードだ!!」
などと現在はまっている仕事を何とかしたいがために夢を見始めるのも禁止します。
しかも、あなたが期待しているのはH/Wであって、今作ろうとしているのはDLL(S/W)です。
大体EmuZ-2000でFFTやって何するのよ?
さて、何がいいものやら・・・
う〜ん、MZ-2000で欲しかったもの・・・
そういえばMZ-2500って、MZ-2200ユーザーだった私には夢のマシンでした。
結局買えませんでしたが・・・
Z80の6MHzで、メモリマッピングが出来るH/Wがあって、グラフィックメモリも大きくて、
いやぁ、凄いマシンでした。
線とか、円とか、描くって言うより出るって感じでしたね。
ハードウェアのアシストがあると、矢張り凄いなぁ。リードモディファイライト機構は斬新だったなぁ。
ん?これってどう?
スピードや、メモリなどはどうしようもないけど、グラフィックのアシストが出来るボードって?
これって良くないかな?
円とか線とか箱とか、リードモディファイライトとか・・・ATのVGAチックな機構にしようか?
よし!この線で設計して見よう。
じゃあ、欲しい機能を徒然なるままに書き連ねて見よう。
・円が描ける
・線が引ける
・箱が書ける
でも、これってテストモニタとぶつかりすぎだよね。
(大丈夫です。このボード用のテストモニタ作りますよ:EmuZ-2000)
・3プレーン同時に特定の場所に書き込める(RMW)
・3プレーン同時に特定の場所を読み込める(RMW)
・任意の大きさのビットマップを任意の場所に貼り付けれる
ポートアドレス | 読み込み動作 | 書き込み動作 | 備考 |
$08 | × | パラメータメモリアドレスLow | |
$09 | × | パラメータメモリアドレスHigh | |
$0A | RMW(プレーン1) | ← | |
$0B | RMW(プレーン2) | ← | |
$0C | RMW(プレーン3) | ← | |
$0D | × | RMW書き込みモード | |
$0E | ボードステータス | パラメータコマンド実行 | |
$0F | スクロールステータス | スクロール実行 |
コマンド | Bit7 | Bit6 | Bit5 | Bit4 |
上方向へスクロール |
0 |
0 |
0 |
0 |
下方向へスクロール |
0 |
0 |
0 |
1 |
プレーン | Bit2 | Bit1 | Bit0 |
1 |
0 |
0 |
1 |
2 |
0 |
1 |
0 |
3 |
1 |
0 |
0 |
コマンド | 名称 | 機能 |
00h | Graphic Clear | 任意のグラフィックプレーンをクリアする |
01h | Graphic Fill | 任意のグラフィックプレーンをFillする |
02h | Write Line | 任意の色で線を引く |
03h | Write Line Pattern | 任意の色で、任意のパターンラインを引く |
04h | Write Circle | 任意の色で円を書く |
05h | Write Circle Pattern | 任意の色で、任意のパターン円を書く |
06h | Write Box | 任意の色で箱を書く |
07h | Write Box Fill | 任意の色で、塗りつぶされた箱を書く |
08h | Clipping Area Set | クリッピングエリアを設定する |
09h | Area Scrool | 指定されたエリアをスクロールする |
0ah | Pattern Put | モノクロパターンを描画する |
0bh | Pattern Put Color | カラーパターンを描画する |
0ch | Set PCG data | PCGをセットする |
0dh | Get PCG data | セットされたPCGデータをGetする |
0eh | Print Text Graphic | テキストを任意の色でグラフィックに描画する |
0fh | Print PCG | PCGをグラフィック画面へ描画する |
10h | Check 1R13 | 1R13が有るかどうかを調べる |
11h | Check 1R12 | 1R12が有るかどうかを調べる |
12h | Print KANJI | 1R13から漢字データを取得して、任意の色で描画する |
13h | Reserved | 予約 |
14h | Reserved | 予約 |