SBCZ80をつくる

相変わらず台風で強い雨が降ってます。外に出かける気持ちになれないので、はんだ付けで遊びました。

SBCZ80はZ80をCPUとしたワンボードマイコンです。DRAMをワンボードマイコンボードながら使っているのと、シリアルIOに8251 ではなくZ80 SIOを使っているのが特徴です。

ということで、こちらもDRAMのM5M4416の入手に時間がかかった(結局eBay中華)のですが、今日形にしてみました。

CPUは由緒正しいSHARPのLH0080です。SIOはCMOSの10MHz Z80も入手してあるので、Z80B SIO/2 を乗せてありますが、ノスタルジックに標準速(2.4576MHz)で動かします。周辺のTTLは全部CMOSです。HC04は由緒正しいTOSHIBAの部品箱の底に沈んでいたものを使いましたが、例によって昔のDIPICをかなり捨ててしまったため、結局ほかのICは購入する必要がありました。

ということで、電源ONで、いきなりBASICが動きました。終わり。というのも何なので、配布されているデータパックに収録されているマンデルブロ集合を書くプログラムを動かしてみました。

これを計算するのに8分9秒=489秒を要しました。

このデモは8ビットPCとBASICが使われていた時代にはよく見かけたものですが、最近は見ないので、今のマイコンってどれぐらいでこれを計算できるのかな、とふと思い、手元のArduino Megaで同じプログラムを特に工夫もせず書いて実行してみたところ、2秒程度でした。

もちろん、Arduinoはコンパイラーなのですが、圧倒的(?)な速度差です。コンパイラーを使っていることに加え、クロック速度は6.4倍異なり、AVRはRISCで1命令1クロック(?)に対してZ80は1命令4-20+クロックを要すことを考えると当然とは思いますが。。。

ということで、倍速で動かすよりは、標準速で遅さとほんのり温かいCPUでノスタルジーを感じるのがこれの正しい楽しみ方と思いました。まあ、本当のところは私になじみのあるZ80って、標準速より速いZ80A(MSXで採用)なのですが、Z80Aを買ってなくって、CMOSのCPUではノスタルジーにはどうしても浸れませんので。

SBCZ8をつくる

火星最接近したのに曇天続きで、今晩に至っては台風接近。ということで、SBCZ8を作りました。部品は、だいたいオレンジピコさん、多少秋月さんで揃えましたが、案の定28C16 (EEPROM)と 6116 (SRAM)が見つからず、eBayで買いましたので、ちょっと時間がかかりました。とはいえ、9月下旬に国内の部品、eBayで買ったのは中国から黄色い封筒で今日届きましたのでそれほど時間がかかるわけではありませんでした。

Z8はよく知らないので、ノスタルジックな感慨もなく、CMOS版のZ86C911を、他の部品もCMOSで揃えました。6116は由緒正しいHM6116ALP-3(でも中国)。28C16も由緒正しいAtmel AT28C16です(でも中国)。

とりあえず必要部品を並べてみる。抵抗ジャンク箱をあさるのがめんどくさく1/8W抵抗が混じってしまった。

はんだ付けするだけだから秋の夜中のはんだ付けセラピーで完成。

28C16にZilog BASIC/Debug (TINYBASIC+モニタみたいなもの?)を書き込みテスト。

案の定28C16の不良品混じり。しかしこんなこともあろうかと、5個セットを購入したので、OK. 6116に至っては10個入りを買いました。

書き込んだEEPROMをソケットにさしてPWRON。あっさりプロンプトが出て動作確認。

これ使って何かをするわけではないですが。。。

ただ、これってI/Oが簡単に使えてターミナルから対話型でぱちぱちポートの状態を変更できるという意味では,結構尊い感じです。今だとmicropythonがそれ?って感じ?