Tanuki_Bayashin’s diary

電子工作を趣味としています。最近はラズベリーパイPicoというマイコンを使って楽しんでいます

Super AKI-80にてオリジナルのコードを動かす手順

※なにか気になる点がありましたらコメント欄にご記入ください。また、工作や回路を製作する場合には、細かい作業などに対して、細心の注意を払われるようお願いいたします。

【目次】

1.はじめに

秋月電子のSuper AKI-80を入手し、Z80のアセンブリ言語を学びたかったこともあり、オリジナルのコードを動かす手順を調べたのでここに備忘録として残しておきます。

写真1 Super AKI-80用の開発ボード

【参考】
記事の執筆時点で、本商品の扱いはすでに秋月電子では行われていません。(リンクは保守用の基板です)
オークションなどで出品されているかもしれないです。

スーパーAKI-80 (基板単体、保守部品): 開発ツール・ボード 秋月電子通商-電子部品・ネット通販

写真2 Super AKI-80(基板のみ)

またモニター用のROMなら以下のようにまだ扱いはあるようです。

AKI-80用モニターROM&Cコンパイラーセット: 書籍・メディア 秋月電子通商-電子部品・ネット通販

自分はこのROMを利用し、自作したコードをSuper AKI-80内のRAMに転送することができました。

※この記事、どれくらい需要があるでしょうか・・

2.開発環境

PCとSuper AKI-80を結ぶUARTは以下のようにつなぎます。

図1 シリアル通信の接続法

またSuper AKI-80のI/Oポート(8255 PPI)にはスイッチやLED、それと7セグLEDをつなげました。
(以下の書籍に載っていた回路を参考にしました)

図2 I/Oポートに接続した回路(8255はSuper AKI-80の出力ポートとして見ています)

※回路図は一部配線されていないか所があります。また実際の回路と異なる部分もあります。

写真3 参考にした書籍


この回路図、今気が付きましたが、PNPトランジスタを使っていたり、ポートCの出力にNOTゲートを付けていたりして、わざと論理が分かりにくくしてあるのではとうがってしまうところがあるように思います。

3.コードをRAMに書き込む

アセンブラでマシン語化したコードをSuper AKI-80のRAMに書き込む方法はyamayamaruさんのサイトを参考にしました。
(そっくり同じですが)

github.com

以下に自分用に、マシン語を書き込むところだけを分かりやすくまとめます。

  1. Super AKI-80のシリアル通信をPCにつなげる
  2. Tera Termを立ち上げる
  3. 初めに出てくる接続のウィンドウをキャンセルで消し、[設定]-[シリアルポート]を選択する
  4. 通信速度9600bps、8bit、None、1ビットに設定する(8N1などと呼ぶそうです)
  5. さらに遅延時間を1文字50ms、1行10msに設定する(おおよその目安です)
  6. [設定]-[端末]を開き、送信をLFに合わせ、「ローカルエコー」にチェックを入れる
  7. Super AKI-80をリセットする(Tera Termの画面に「@」が表示されます)
  8. Enterを入力すると「RS」と表示されるので、「LH」と入力しEnter(意味は完全に分かっていません)
  9. [ファイル]-[ファイル送信]よりhexファイル(ihxファイルも可能?)を選択し[OK]をクリックする(データが送信開始)
  10. 送信が完了したら1回Enterを押し、「GO8000」と入力しEnter(これにてプログラム開始)

といった具合です。

4.動作するようす

a)バー表示LED


www.youtube.com

数値0x55と0xAAを交互にデータとして出力しています。

b)カウンター(16進表示)


www.youtube.com

下のスイッチを押すごとに1増えていっています(カウンター)。表示は16進表示です。

5.まとめ

要はZ80用の開発ボード(簡易版)の下準備ができたということです。

ROM内のテストコードを動かすことはできてもその先に進めなかったり、ROMを書き換えてコードを動かす場合だと、Super AKI-80だとちょっと都合が悪く、うまく動かせなかったりで(確か)、なかなか自分で作ったコードを動かすという環境を作るのに行き着くのが大変でした。

Z80についてよく勉強して、自作CPUを作る基礎としたいと思っています。



最後までお付き合いくださりありがとうございました。