V20はじめました

話せば長いあれこれをごっそり省略して言うと日本電気のμPD70108いわゆるV20で平凡なコンピュータを作ることにした。オレンジピコショップでV20と、勇み足で本来は不要な128KバイトのSRAMを調達。これで8080のエミュレーションをやってGrant’s BASICを動かすのが当面の目標。先々はZ80onSTM32レトロシールドみたいに周辺部品をマイコンボードで代替するのが目標だが、それは話すと長いから省略したあれこれに含まれる。

V20andSRAM

V20の動かしかたは8088と同じ。厳密にはクロックの使いかたが違うが、V20は8088のクロックで動くし、専用のクロックもピン互換のクロックジェネレータで作ることができる。したがって設計は以前tomi9さんに作ってもらったSBC8088を流用。動作確認用のhello, worldもそのまま使えると思う。上位互換のCPUとはこんなに楽なものかと実感。

sbc8088_fix

回路図を下に示す。メモリは最大1Mバイトまで乗るが64Kバイトにとどめてある。読み書き信号は3ステートで出せるように74257で作った上で普通に出している。この微妙な構造は先々マイコンボードと組み合わせる段階でちょっとした妙案を試す準備だが、マイコンボードと組み合わせないときでもこれといって悪さをするわけではないから問題ない。

sbcv20_sch
別窓でPDFの回路図を開く

ガーバーはこんな感じ。ボクの製作物はケースを省略してプリント基板むき出しで動かす前提なので、いや本当は配線萌えしちゃうタチだから、パターンが少数のビアできれいに流れると嬉しくなる。これは奇跡の部品配置。あくまで個人の感想だけどね。そして、非論理的なことを言ってよければ、こういうふうに仕上がったときはたいてい正しく動く。

SBCV20

そんなわけでまだF8が動いていない段階でV20を始めてしまった。ほかにCOSMACと8749とZ180と68008をやりたいと思っている。一時期、ぶっ散らかった製作物をひとつずつ片付けていこうとしたことがあったけど無理だったから諦めた。行き当たりばったりでいいや、今までそういうやりかたを続けてきて、結局、何とかなっているんだから。

カテゴリー: 8088/V20 | コメントをどうぞ

F8はじめました

秋葉原のコテコテな一帯から少し離れたところにあるaitendoはレトロCPUを気まぐれに並べてくれるから油断がならない。ついこの間はフェアチャイルドF8ファミリーを五月雨式に売り出した。3853かよそれだけあってどうせいっちゅうねんと無視した翌日に一式が揃って瞬殺、日々後悔していたところ、運よく少量再入荷したやつにあり付けた。

F8_family

F8の構造は、仮にインテルの構造を普通の基準とすれば、ものすごく変わっている。そのことは、このブログにたびたびお越しくださるDAIさんからきいていたが、実物を手にして真剣にマニュアルを読むとつくづく実感する。こういうのわくわくするよね。いろいろ検討した結果、3861は置いといて、3850と3853で動かす回路を描いてみた。

F8_rush_sch
別窓でPDFの回路図を開く

実物のメモリをつなぐとプリント基板がサービスサイズに収まらないから拡張コネクタを出しておいてSBC8080サブボードとつなぐことにした。現時点では3853のCPUREADがRD、RAMWRITEWRの想定。そこらへんはいずれ確認することにして関連の信号はGALにつないでおいた。課題をすべて先送りしたプリント基板のガーバーはこんな感じ。

SBCF8DEV

これは開発ボードで、前出の回路に加え、3850のポート10~13にLED点灯回路を追加してある。これでLEDの点滅くらいはできるんじゃないかと思う。うまくいけばSBC8080サブボードの8251がhello, worldを出力するし、もっとうまくいけば割り込みで端末の操作を拾うことができる、はず。知らんけど。まだ始めたばっかりなんで。

カテゴリー: F8 | 2件のコメント

ザイログZ80伝説ついに出来

このブログは年1回だけ告知を認めてもらっておりまして、過去2年、何も告知しなかったのは告知するモノがなかったからなのですが、やっと出来ました。2020年8月31日、全国の書店で『ザイログZ80伝説』(出版社のページはこちら、Amazonのページはこちら)が発売されます。このブログで紹介したZ80のあれこれと、このブログでは紹介していない当時のエピソードを満載しています。よろしければ書店さんで手に取ってご覧ください。

ザイログZ80伝説cover
別窓でPDFを開く(1.2MB)

この本はおかげさまでご好評をいただいております『インテル8080伝説』と『モトローラ6800伝説』の姉妹書です。もしこれらがコケていたらこの本は存在しませんでした。私にこの本を書く機会を与えてくださった皆様に心から感謝いたします。また、執筆に難航している期間、いや急いで読みたい本じゃねえからマイペースでやれよと励ましてくださった皆様どうもありがとうございました。これでライフワークを完結できました。

カテゴリー: Z8, Z80, Z8000, 世間話 | 11件のコメント

SBC6800のプチ改造で6502を動かす

つねづね6502を動かしてみたいと思っていたところ、ツイッターに画期的な情報があがった。ほうめいさんが無改造のSBC6800とゲタで6502を動かせるとツイート。最終形がまごころせいじつ堂のSBC6800を改造せずに6502を動かす&unimon_6502の移植にまとめられている。後を追ってボクなりのやつを作ったので経緯をまとめておく。ボクはプチ改造してるし6502の一部品種に完全対応していないけれど工数がいくらか少ない。

sbc6502_1

SBC6800で修正が必要なのは下の回路図の赤字部分。X印は切断、印はプルアップ。ほうめいさんと違うのはプルアップを抵抗なしの電源直結にして手抜きしたところ。その一環でRDY(2番ピン)を現状のまま電源直結としている。RDYはW65C02でWAI命令を実行したときLを出力するから本当はまずい。しかし元祖6502やR65C02などは(たぶん)大丈夫だと思うのでW65C02の場合はWAI命令を使わないという条件を付けて問題を雑に解決。

sbc6502_4

プリント基板の加工を最小限にとどめるため切断する4か所はICソケット2段重ね方式。すなわちDIP40ピン平ソケットから1番ピン、3番ピン、5番ピン、39番ピンを抜いて、すでにあるICソケットへ重ね、そこへ6502を挿す。このやりかたは何かの事情で6502を取り外すとき重ねたICソケットのあちこちで6502と一緒にピンが抜けるから気を付けてね。

sbc6502_3

プルアップは電線をハンダ付け。一種の改造には違いないが、たった2か所、復元容易なプチ改造。6800に戻したくなったらすぐ戻せると思う。以上で作業が完了。

SBC6502_bottom

Electrelicさん作、ほうめいさんご提供のUniversal Monitorが動いたところ。実をいうとここに至るまでさんざん失敗したから、動くように作ったんだけど、動いてびっくりだよ。

sbc6502_5

試作機に挿さってるのはWAI命令を使ってはいけないと決めたW65C02。うっかり使っちゃうことを防ぐにはBASICを動かすのがいちばん。てことで、お馴染みGrant SearleさんのGrant’s 6502 ComputerからOSI MS-BASICを拝借、ソース3か所の修正で移植完了。移植済みのファイル一式をOneDriveに置いておく。その中のosi_bas.binが2764のイメージ。

sbc6502_rom

6502のMS-BASICについてはCreate your own Version of Microsoft BASIC for 6502に詳しい解説がある。OSI MS-BASICはオハイオサイエンティフィックにライセンスされた版で、年代でいうとコモドールの後、アップルソフトの前。ボクの英語読解力が正しければ浮動小数点計算機能の有効桁数を9桁から6桁へ切り詰めて8KバイトのROMに詰め込んである。それをやってくれたおかげでSBC6800のROMに書き込むことができた。

sbc6502_6

ほうめいさん、Electrelicさん、Grantさん、そしてKuninetさんに感謝します。Kuninetさんは手配線の6502でOSI MS-BASICを動かし、ほうめいさんのやりかたでもボクより先に実物を完成して勇気とアドバイスをくれました(詳細はこちらをご覧ください)。

カテゴリー: 6502, 6800 | 12件のコメント

マザーボード図鑑

古いパソコンの資料写真を撮影する場合、最初にマザボ一発撮りをやっておいて各部のアップを撮る。マザボ一発撮りはアップの位置関係を確認するもので、文書に掲載すると細部がつぶれるから使えない。つまりたいていは日の目を見ない。もったいないのでここに残しておく。いずれもクリックすると別窓で横1920ピクセルの写真が開く。

日立製作所ベーシックマスターレベル2(MB6880L2)
mother_mb6880l2

日本電気PC-8001

シャープX1 CZ-812CE

エプソンQC-10

日本電気PC-9801N(初代98NOTE)

玄人志向 玄箱
kuro-box_s

レトロPCの研究にお役立ていただければ幸いです。

カテゴリー: 世間話 | コメントをどうぞ

SBCZ80、回り道して完成

連ドラを見てると最終回のひとつ前に無理やりな大事件が起きるでしょ、あれいらないよね。みたいな大事件が発生。ROMのプログラムが完璧に動くのにDRAMに読み込んだプログラムが動かない。DRAMの制御回路を精査すると、命令を読み込んだあとリフレッシュへ移るところで両方のRASがつながっちゃってる。ここは本来、MREQをかまして区切りを入れなければならないが、それが入っていない。なお、下の図はたぶんこうなっているんだろうなという想像で描いており、実測値ではありません(実測し忘れた)。

sbcz80_dram6

てことで制御回路を次のように再再再修正。MREQをかますところでNANDを使ったから、RASに合わせてMUXCASを上げるNANDがひとつ足りなくなり、MUXだけダイオードで上げている。そして、長きにわたりああだこうだと検討した時定数も計算し直し。いろいろ手間をかけたあげく何だかダサい回路になってしまったが、LS00とLS04を1個ずつだけで組み立てれば誰がやってもこうなると思う、知らんけど。

sbcz80r5_dram4

はい最終確認ね。これはきっちりロジアナで観測したやつ。

sbcz80r5_dram3

オシロスコープの波形もどうぞ。これはMREQをトリガにしてRASMUXCASを観測し、合成したやつ。目盛はX軸50n秒、Y軸5V。立下がりは計算より早めだが規定の範囲内。立上がりは、苦し紛れにダイオードで上げたMUXのほうがNANDで上げたのより早いや。誤差の範囲だけど、こんなことならCASもダイオードで簡単にやればよかったかな。

sbcz80r5_dram1

こうしてついにSBCZ80が完成、したのに調子に乗って余計なことしちゃう性分なんだよね。わざわざプリント基板を作り直してRTSCTSをつなぐソルダバッドを追加。これ、シリアル端子のRTSが開放になっちゃうときつなぐんだけど、普通のUSB-シリアル変換ケーブルを使えばいらない。いらないのにうっかりつないだら普通のUSB-シリアル変換ケーブルのRTSがショートして壊れる。ああだめだ、またプリント基板を作り直し。リビジョン番号が無駄に上がっていくぞ。

SBCZ80R4_bottom

最終版はこれ、SBCZ80 Rev05。見てもらったのが倍速のデータだからこれもクロックのソルダバッドを切った貼ったして倍速にしたやつ。Z80とSIOは6MHz版、ROMも念のために比較的高速なEEPROMを取り付けてある。これ見よがしの頑張りました感が出てるよね。個人的には昔ながらの標準クロックでのんびり動かすほうがおすすめかな。

SBCZ80R5_top_5M

SBCZ80全回路図はこちら(別窓でPDFが開きます)

子供のころさ、時計やらラジオやら、そこらへんにあるもの片っ端から分解して中身を見てたんだよね。狭いところに部品がいっぱい詰まってるでしょ。ボクもああいう風に作ってちゃんと動かせる大人になりたいなぁと思ったわけ。SBCZ80はこのブログの製作物でいちばんたくさんの部品を使っている。子供のころ夢見た大人になれただろうか。

カテゴリー: DRAM, Z80 | 4件のコメント

SBCZ80のDRAMをプチ変更

SBCZ80は完成したと2回も宣言しているとおりなかなか完成しない。今回もまた問題はDRAMの制御回路。もうすでに格安のロジックアナライザでRASMUXCASの完璧な動作を確認しているが、ほかの製作物をやっているうちにロジックアナライザの精度に疑義が生じた。そこで細かいところのタイミングを改めて格安のオシロスコープで観測した。

sbcz80_dram_osc1

オシロスコープの波形がロジックアナライザの波形とかなり違うため「SBCZ80を再検討」で再検討した回路を再再検討。途中のあれこれを省略して結論だけ言うとC5の10pFを22pFに変更した。最終的な波形を下に示す。X軸目盛50n秒、Y軸目盛5V。RAM(赤)をトリガにしてRAS(黄)とMUX(青)とCAS(緑)を個別に観測して合成。Z80は5MHz。

sbcz80_dram_osc2

オシロスコープの波形はロジックアナライザの波形よりLの期間が長い。DRAMのアクセスタイムは150n秒だからこの調子ならZ80を10MHzで動かしても大丈夫。いやSIOがついてこれらないね。じゃあRASMUXCASの間隔をもう少し広げて余裕をとろうか。みたいな具合で、SBCZ80は現物が正しく動いているにもかかわらず設計が完成しないのだ。

カテゴリー: DRAM, Z80 | コメントをどうぞ

WRT8755を暫定的に完成とする

WRT8755(8755書き込み装置)は手作り基板で動作確認した製作物の焼き直しだからちょろいと思っていたら唯一の変更点、書き込み電圧25Vを作る昇圧回路でつまずいた。詳しく言うと製作過程のテストではきっちり25Vを出していたのに完成したら30V付近をふらふらして安定しない。しかたなくアドリブで変更したかもしれない部品をもとあったんじゃないかと思われる部品に戻してみながら原因を追究。記憶が曖昧で迷走を極める。

WRT8755_closeup

スルーホールにハンダ付けした部品を取り換えるという苦行に耐えて数日、原因が判明。ICソケットのMC34063をNJM2360に挿し替えたら安定的な約25Vが出た。MC34063とNJM2360はピン互換だが電気的特性に差異があるらしい。MC34063は手持ち5個が全部ダメ、NJM2360は手持ち2個が全部OK。SBC8080の12Vの昇圧回路では問題にならなかったから、電圧が出力可能な上限(仕様では40V)に近づいて差異が顕著になったようだ。

WRT8755_vpp

検討を要する問題があとひとつ。ときどき、書き込みを指示したとたんリセットする。考察はこう。書き込みでは昇圧回路の負荷がビシバシ切り替わる。昇圧回路は電圧を維持するためにそのつど大きな電流を消費し、電源を瞬断させているのだと思う。そこで、普段からある程度の負荷がかかるよう電圧調整用の抵抗値を小さくした。現状、普通に使えているので、まだ多少の不安はあるがこれをもって暫定的に完成とする。はい記念写真。

WTR8755
回路図-PDFの回路図
ガーバーデータ-WRT8755.zip
ソフトウェア-Writer55fw.X.zip

ここへ至る過程で多数の8755を破壊した。中にはほぼ正常に見えて一部だけ壊れている8755があったらしい。そういう8755へ書き込みをするとPIC18F4525のファームウェアが書き換わり、書き換わったPIC18F4525が8755を壊すという悪循環に陥る。現在、怪しい8755を廃棄し、PIC18F4525にファームウェアを書き直して、ようやく平穏な日常を取り戻した。こんな状態なので、もう少し使い込んでみるまで、きっぱり完成とは言い難い。

カテゴリー: 8085, 書き込み装置 | 1件のコメント

HD68P05V07でHELLO,WORLD

このブログを始める時点でもう所有していた、いわば創業メンバーのHD68P05V07。いままで話題にしなかった第1の理由はプログラミングモデルがシンプルすぎてまともな仕事をやらせる自信がなかったから。実質2本の8ビットレジスタだけで動かさなければならない上にPUSH/POP命令がなくて使い回しが難しい。あかん、と思っていたらcafe2.54さんがブログに<HD68P05V07で工作>を投稿してくれたんで、じゃあボクもやってみる。

HD68P05V07

いままで手を付けなかった第2の理由は、やろうと思えばいつでもできそうだったから。ピギーバックって電源だけつなげばすぐ動くイメージだよね。実際はクロックジェネレータの外付け部品とかリセット回路とかが必要だし、電源まわりに電源スイッチとパイロットランプを付けようとすればなおのこと面倒になる。ざっと揃えてみた部品が下のとおり。あらら、抵抗2本とICソケットとピンソケットとユニバーサル基板を忘れてる。

HD68P05V07_craft1

実体配線図と回路図を下に示す。実体配線図は秋月電子通商の片面ガラスCタイプのユニバーサル基板に組み立てる想定で描いてあり、配線しやすいよう底面図とした。部品の定数は回路図に書き込んである。抵抗R2は欠番。リセットスイッチと直列に入れてあったのだが大した働きをしていないから省略した。その点と一部の抵抗の定数はこのあと示す製作例の写真と一致していない。雑な設計で作り始めてからいろいろ見直す性分。

HD68P05V07_craft2
別窓でPDFの回路図を開く
別窓でPDFのHD68P05V07日本語データシートを開く

HD68P05V07の両側には必要に応じて回路を追加できるようにピンソケットを立てておいた。このピンソケットは普通に取り付けたらHD68P05V07が押し広げる格好になってしまったので、これから作る人はユニバーサル基板の穴の径が許す限り広げて取り付けるほうがいい。そのほかDCジャックやタクトスイッチの脚がユニバーサル基板にはまらないなどいろいろな問題に直面するだろうが、そこは各自の工夫でうまいこと解決してほしい。

HD68P05V07_craft7

これで何をやるか、作ったあとで考えるのが趣味の電子工作。追加の製作なしにいける面白そうなことといったらHELLO, WOLDかな。ハードウェアはUSB-シリアル変換ケーブルを下のとおりつないでおしまい。あとはソフトウェアシリアルでやる。目標は、1文字出力を作って文字列を出力、ついでに1文字入力も作ってエコーバックを成功させる。製作の担当者としてはそこまでが業務範囲であとは知らんというのがこのブログの方針。

HD68P05V07_craft3

ソフトウェアシリアルは過去に何回か成功させていて複数の作り方を承知している。タイマ割り込みを使う方法が見た目かっこいいが速度が出ない。愚直に命令を並べ、実行クロック数を数えてタイミングをとることにした。この方法は、普通の人には簡単だが、そそっかしいやつはよく足し算を間違える。UV-EPROMを消しては書いているうちにEEPROMが使えるんじゃないかと思って試したらなんとW27C512まで大丈夫なことがわかった。

HD68P05V07_craft4

かくしてHD68P05V07のソフトウェアシリアルが完成、通信速度9600bps、通信形式8N1でHELLO, WORLDとエコーバックテストに成功。アセンブリ言語のソースHELLO05.asmをGistにあげておく。入出力に使うポートはどこにでも設定可能。これがソフトウェアシリアルの利点だよね。ただひとつ残念ながら文字列出力をサブルーチンの形にまとめられなかった。そこはプログラミングモデルがシンプルすぎるHD68P05V07の限界。

HD68P05V07_craft5

面白そうだから作ってみよう、なんていう人はいないと思うが、レポートの様式としていちおう再現性を担保しておく。HD68P05V07は若松通商に在庫がある。ROMは本来2732を使うのだが前述のとおりW27C512が使えて、そのほうが安いし便利。後半の$F000以降が有効で、それより前は無効。W27C512はオレンジピコショップで販売している。あとは現役の平凡な部品。秋月電子通商と千石電商の2件だけで間に合うはず。

HD68P05V07_craft6

このブログでは動作確認に成功したあと次のふたつをやることが恒例になっている。ひとつはプリント基板を頒布すること、なんだけど今回は手配線しても大した手間ではないからやめておく。もうひとつは得意満面で自慢すること。どや!!

カテゴリー: 6805 | コメントをどうぞ

SBCZ80を再検討

SBCZ80は正常に動作していったん開発を終了したが、その後、DRAMの制御回路がまずいんじゃないかというご意見をいただいたので再検討した。まずご意見の趣旨を説明しておくと、下に示す部分で前のCASが終了しないうちに次のRASが始まるおそれがあること。現状、RASMUXCASを下げるのと同じ時間差で上げているが、上げるほうはいっせいに上げるべきだというわけ。

sbcz80_tchrl

ご意見をいただいた時点でDRAMの制御回路は下に示すとおり。RASからMUXまで46n秒、MUXからCASまで52n秒で合計98n秒。許される時間差は最大100n秒だから、どうにか間に合っているもののギリギリ。ちなみに、ご意見ではMREQからRASまでの時間を足してぜんぜん間に合っていないといっているが、RASが遅れた分は次のRASも遅れるわけだから考慮しなくていいと思う。

sbcz80_dram_old

この制御回路はコンデンサC5とC8を調整して最終的に時間差を合計60n秒まで縮めた。それで正常に動作し、オシロスコープで波形を観測してもまったく問題がない。設計の目標はDRAMが動くいちばんシンプルなロジックだったから、これをひとつの答えにしようと思う。ただし、RASMUXCASをいっせいに上げるべきだという意見は正論だし、万が一、できないからやらないんだと思われても困るので、下に示す回路を作った。

sbcz80_dram_new

試作機はもちろん正常に動作した。だって正論に近づく方向で作ったんだから。部品に変更がないためプリント基板はそっくり。抵抗とコンデンサの位置が微妙に違うのとリビジョン番号が03から04に上がっている。痛いな、これで15ドルだよ。

sbcz80_new

というわけで似たようなのふたつも作っちゃったな。まあいいやZ80が好きだから。もしかしたら正式リリースの段階で出版社がリビジョン04にしろっていうかもしれないし。

カテゴリー: Z80 | 3件のコメント