読者です 読者をやめる 読者になる 読者になる

Z80カツドウ再開!

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

今後の展望

先週は忙しいのもあって工作にあまり手をつけられませんでした…。「Z80コンピュータを作ろう」企画の現状は、CPU・ROM・RAM・PIOという最小構成でシステムを動かせたところ。しかし本格的にゲーム機なりのシステムを作ろうと思ったら勉強すべきことが山積み…

RAMが仲間になった!

東芝のSRAM、TC55257DPL-85Lです。これ1個で32kBあり、アクセスタイムも85nsとおそらく速い部類で、やはりZ80基準だと未来のデバイスなのでしょう。まぁ、気にせず組み込んでいきます。 ROMとRAMでチップが1個ずつだけあって、それぞれに32kBのアドレス空間…

水晶発振の罠(レベル1)

先日とりあえず完成したミニマルなZ80システムは電源投入時の動作に問題がありました。手持ちの測定器具であれやこれやと調べてるうち、Analog Discovery 2のオシロスコープで次のような波形が… 水色がRESET#信号で、パワーオンリセットが500msほど続いた後…

Z80でLチカ!

思ったより簡単に動いてくれました。手こずったのはICのGNDつなぎ忘れなどの凡ミスばかり。 Lチカプログラムはとてもシンプルです。 PIOAD: equ 0 PIOAC: equ 1 org 0 ; ; PIO初期設定 ld a,11001111b ;ビットモードで動作 out PIOAC,a ld a,00001111b ;出力…

UbuntuでZ80アセンブラを書く

選択肢は色々あるようですが、次のサイトの zasm というZ80専用アセンブラを使うことにしました。 zasm - z80 assembler - download page オプションでCPUサイクル付きのリストが出せるのが面白そうです。導入方法は、Archiveから実行バイナリをダウンロード…

ROM(EN29F002)ライタ完成

RubyでPC側のソフトも作って、ROM書き込み環境が整いました! PC側書き込みソフト Arduino側ファームウェア 64kBまでのバイナリファイルをROMに書き込めます。64kBというのはPC側ソフトを簡単に実装にするための制限(かつ、Z80で使うには十分な容量)で、フ…

ROMライタのファームウェアひとまず完成

EN29F002用ROMライタ ファームウェア ファームウェアのソースだけあってもしょうがないんですが、共有してみます。書き込み、読み込み、チップ全消去できるのは確認済み。 ROMに対する各操作シーケンスのタイミングがイメージしやすいよう、特に構造化もせず…

ROMライタ製作中

オーソドックスなROMライタというのがどんなものか分からないまま作ってます。データシートのタイミング通りに「コマンド書き込み→データ書き込み→書き込み完了をポーリング(異常検出したらリトライor終了)」を繰り返せばいいとは思うのですが。 ターゲッ…

手動クロックで動かすZ80

ようやくZ80(LH0080A)の動作確認できました。 課題になっていた手動クロックは 74HC123 で無事解決。C=0.001μF(1000pF)× R=470Ω の時定数で、タクトスイッチを押したときに 1μsec 弱のLパルスが出る回路を作ってLH0080Aを動作させました。 角のギザギザ…

クロックまわり下調べ

Z80の動作の理解にあたって手動クロックで各マシンサイクルを追いかけていこうと思っているので、そのために調べたことをメモ。 資料を読んでいると「nMOS版は最低クロック周波数がある」という記述あり。WikipediaによるとnMOS版はダイナミック・ラッチとい…

メモリまわり下調べ

Z80写真再掲。 これは純粋にCPUというだけのICで、メモリもありません。メモリがなければプログラムもありません(ストアドプログラム方式ってヤツだ!)。というわけで、まずはメモリについて学ばなければいけません。 「メモリ」というだけだと相当に意味…