2017-05-01から1ヶ月間の記事一覧
そろそろ回路設計したい! 要件まとめて来週中にハード実装に移りたく思います。 VRAMの容量は1Byte/文字の32*24表示で、最低限768Bytes必要。 マルチスクリーンとか画面外バッファとか後々のオプションで考えるとしても、2kBあればOK。 文字のビットマップ…
HD6445の使い方を勉強中です。 グラフィックボード(CRTC)その1 こちらのページを大いに参考にさせてもらってます。もちろんデータシートも。 で、気付いたことメモ。 同期信号のタイミング指定がキャラ単位なので、先日PSoC5でうまくいったタイミングと同…
1文字8*8pxを256*192のスクリーンに敷き詰めると32*24文字。1文字(の1ラスタ)のデータを用意するのに使える時間は16MHz/8の逆数で500ns。85nsのSRAMで3メモリサイクルはいける? VRAMから文字コード読み込み キャラクタROMからシフトレジスタへ8bitのラス…
解像度256*192でスペック下げたつもりでしたが、8bitCPUのゲーム機と考えたら限界近いサイズな気がしてきました。 ハードで相当工夫しないとMSXとかファミコンみたいにならないですね。当たり前か。 目下の問題は、VRAMから映像信号作るのに、使用予定のSRAM…
PSoCやばいよ。 ものの数時間でカラーバー出せちゃったよ。 これで1000円ぽっちなんて…。 というわけで、何ができるかも良く分からないまま、単に安いからという理由で買っていた PSoC 5LP Prototyping Kit を使ってVGA出力に再挑戦しました。 なんとなく、…
DVI-D→VGA変換ケーブルでPCから映像を出せました! 自力で生成するVGA信号の目標が垂直同期60Hzあたりなので、PCからの出力を60Hzに設定して…… こんな形で信号線をブレッドボードに引き出し、AnalogDiscovery2のオシロで波形を観測してみます。 まずは水平同…
割り込みでVGA出力の実験。 Arduino でVGA信号生成するのは、少なくともアセンブラ使わないと辛いっぽい。というところで今日は挫折しました……。 GitHub - smaffer/vgax: VGA library for Arduino UNO これ使ってもモニタは NO SIGNAL だったので、まずは今…
PCからZ80プログラムのデバッグができるよう、BREAKサブルーチンを作ってみました。 call BREAKを実行するとレジスタの内容をRAMにダンプしてHALTします。 PCからはBUSRQでRAMを覗くなり書き換えるなりして、気が済んだらNMIでZ80の実行を再開させます。 ORG…
前々々回の記事で電源投入直後のSRAMの中身が全部ゼロだと思ってCPUの動作確認したことを書きましたが、実際に確かめてみました。 Z80ボードをON Arduinoをアタッチ(即BUSRQ) PCでRAM全領域を吸い出してdump バイナリエディタで内容確認 結果は… どう見て…
レジスタ内容をダンプするシステムコール云々などと言ってましたが、もうちょっと複雑なアセンブラの動作確認がどうしてもしたくなって、BUSRQしてRAMを見にいく方法をさくっと試してみました。 今回のプログラムは遂にLチカを卒業して、FizzBuzzをやってみ…
システムとしてはまだ完成してませんが、とりあえずArduinoからZ80のブートロード(と言っていいのか)が上手くいきました。 BUSRQでバス権を取る RAMにプログラムを転送 Z80をリセット(RESETアクティブ中にBUSRQを落とす) 動かしたプログラムはやっぱりL…