2017-01-01から1年間の記事一覧

CPLD試食

PSoCを触って以来、古いLSIを弄るにしても周辺ロジックはプログラマブルなデバイス使ってもいいんじゃないかと思い始めまして。 かといってMPUもアナログも使わないのではPSoCはちょっと場違いなので、CPLDを覚えようと思い立った次第です。 で、これが一応2…

バス・アービトレーション

水平/垂直帰線期間中はVRAM/PCGにCPUがアクセスできるよう、両者のアドレス端子とデータ端子をバスにつなぎます。 一方、モニタが可視範囲を走査中はVRAMのD0~7からキャラクタID(文字ならASCIIコード)が出て、PCGのA3~A10に入っていきます。 ここにデー…

自作ワイヤリングペン

UEW配線用のワイヤリングペンを作りました。 2本失敗して一番右が決定版。この形じゃないとボビンが倒れてしまうのです。 ホルダー状に曲げた平型の針金を瞬着で仮止めし、細い針金できつめに縛ってから2液タイプのエポキシ接着剤で固めています。 材料はダ…

引き続きZ80用グラフィックボード検討

そろそろ回路設計したい! 要件まとめて来週中にハード実装に移りたく思います。 VRAMの容量は1Byte/文字の32*24表示で、最低限768Bytes必要。 マルチスクリーンとか画面外バッファとか後々のオプションで考えるとしても、2kBあればOK。 文字のビットマップ…

HD6445+XGAディスプレイ

HD6445の使い方を勉強中です。 グラフィックボード(CRTC)その1 こちらのページを大いに参考にさせてもらってます。もちろんデータシートも。 で、気付いたことメモ。 同期信号のタイミング指定がキャラ単位なので、先日PSoC5でうまくいったタイミングと同…

キャラクタディスプレイ考

1文字8*8pxを256*192のスクリーンに敷き詰めると32*24文字。1文字(の1ラスタ)のデータを用意するのに使える時間は16MHz/8の逆数で500ns。85nsのSRAMで3メモリサイクルはいける? VRAMから文字コード読み込み キャラクタROMからシフトレジスタへ8bitのラス…

Z80システムのグラフィックボード

解像度256*192でスペック下げたつもりでしたが、8bitCPUのゲーム機と考えたら限界近いサイズな気がしてきました。 ハードで相当工夫しないとMSXとかファミコンみたいにならないですね。当たり前か。 目下の問題は、VRAMから映像信号作るのに、使用予定のSRAM…

PSoCでVGA出力!

PSoCやばいよ。 ものの数時間でカラーバー出せちゃったよ。 これで1000円ぽっちなんて…。 というわけで、何ができるかも良く分からないまま、単に安いからという理由で買っていた PSoC 5LP Prototyping Kit を使ってVGA出力に再挑戦しました。 なんとなく、…

VGA信号解析

DVI-D→VGA変換ケーブルでPCから映像を出せました! 自力で生成するVGA信号の目標が垂直同期60Hzあたりなので、PCからの出力を60Hzに設定して…… こんな形で信号線をブレッドボードに引き出し、AnalogDiscovery2のオシロで波形を観測してみます。 まずは水平同…

VGA出力実験失敗

割り込みでVGA出力の実験。 Arduino でVGA信号生成するのは、少なくともアセンブラ使わないと辛いっぽい。というところで今日は挫折しました……。 GitHub - smaffer/vgax: VGA library for Arduino UNO これ使ってもモニタは NO SIGNAL だったので、まずは今…

BREAK実験

PCからZ80プログラムのデバッグができるよう、BREAKサブルーチンを作ってみました。 call BREAKを実行するとレジスタの内容をRAMにダンプしてHALTします。 PCからはBUSRQでRAMを覗くなり書き換えるなりして、気が済んだらNMIでZ80の実行を再開させます。 ORG…

SRAMの初期状態

前々々回の記事で電源投入直後のSRAMの中身が全部ゼロだと思ってCPUの動作確認したことを書きましたが、実際に確かめてみました。 Z80ボードをON Arduinoをアタッチ(即BUSRQ) PCでRAM全領域を吸い出してdump バイナリエディタで内容確認 結果は… どう見て…

Z80アセンブラでFizzBuzz

レジスタ内容をダンプするシステムコール云々などと言ってましたが、もうちょっと複雑なアセンブラの動作確認がどうしてもしたくなって、BUSRQしてRAMを見にいく方法をさくっと試してみました。 今回のプログラムは遂にLチカを卒業して、FizzBuzzをやってみ…

ブートロード成功

システムとしてはまだ完成してませんが、とりあえずArduinoからZ80のブートロード(と言っていいのか)が上手くいきました。 BUSRQでバス権を取る RAMにプログラムを転送 Z80をリセット(RESETアクティブ中にBUSRQを落とす) 動かしたプログラムはやっぱりL…

Z80カツドウ再開!

仕事落ち着いてきたようなそうでもないような。いろいろ中途半端にぶん投げておりますので、順に消化していきたいと思います。 まずは「Z80コンピュータを作ろう」企画から。 前回、といっても半年…!?近く前ですが、ブレッドボードで作っていた最小構成を…

Haskell 勉強中

引越し後、一向に工作環境が整わないのでZ80プロジェクトも絶賛放置中。ベッドもまだないけど、いい加減に作業机買わないと……。 そんなわけで?最近の家での時間潰しはPCにかじりついてソフトウェア関係の勉強です。「Deep Learning やりたい!」から始まっ…