2023-08-02 21:55 — asano
カテゴリー:
ちょっとTwitter(もう「X」と書かなきゃいけないのか)で話が出たので大昔のマイコン開発について書いてみることにします。
マイコン開発といってもツールに恵まれていたであろう業務でやっていたような人ではなくアマチュアの話です。
今マイコンボードを開発するというと、フラッシュメモリを内蔵したマイコンとPCを接続(接続ケーブルなどは簡単に作れるか個人でも買える程度の価格)して簡単に書き込めますし、書き込むソフトウェアの作成もコンパイラなどのツールも無償で使えるものも多く存在します。マイコンの機能はほぼチップの中で完結しているので基板もI/Oの引き出しがメインになります。
一方で1970年代から80年代の頭にかけてアマチュアがマイコンボードを作るといった場合、パソコンを持っていないからいっちょ作ってみるかというパターンが結構あったのです。
当時の本や記事を読むとこの状況を前提として書かれているものがあります。それらを元に当時の人がどうやって何もないところから作り上げていったか書いてみようと思います。
まず当時はCPU, ROM, RAM, I/Oが一つになったデバイスはほとんどありません。
それぞれ個別のデバイスを用意してバス配線を行ないます。とりあえず必要なのはCPUとRAMです。この時点では容量は小さくて良いのでSRAMを使用します。オシロスコープなど持っていないことも多いですし、後述の手動アクセスに支障があるのでタイミングの難しいDRAMは避けます。
ROMはまだ書き込む手段が無いので使えません。
ROMが無いのでキーボードなどを付けても操作するソフトウェアがありません。
ソフトウェアが無く、入力する手段も無い、早速詰んでいるようですがここはハードウェアで何とかします。
まずバスの各信号にスイッチとLEDを取り付けます。電源を入れたまま何らかの方法でCPUを止めておいて、スイッチを操作しCPUの振りをしてRAMに書き込みます。これは書き込みたいアドレスとデータをセットしておいて書き込み信号を出せば1ワード書き込めます。アドレスとデータを変えながらこれを繰り返してプログラムを書き込むのです。プログラムは事前にCPUのデータシートを見ながら手作業でハンドアセンブルしておきます。最後にCPUを動かせば書き込んだプログラムが実行されます。
これで予定通り動作すればいいのですが......
- 配線が間違っている
- ハンドアセンブルが間違っている
- 入力が間違っている
- CPUの動作を正しく理解していない
- デバイスが不良
などなど動かない理由はいくらでも考えられます。短いプログラム(Z80ならHALT
だけとか)から一歩ずつ進めていくしかありません。
まぁここはROMを書き込む手段があっても似たようなものですが。
とにかくプログラムが正常に実行できる状態までは根気と執念で辿り着かなくてはなりません。
(続く)
コメント
W65C02で最近自作された方
国内の方の動画だとここまで作り込んだ作品は珍しい。3Dプリンタで作られた筐体が超かっこいい。
https://www.youtube.com/watch?v=ANbsiFEsaes
https://www.youtube.com/watch?v=x_tnEaNtuyw
CMOS化以前の古のMOS6502は、バスをHi-ZにできないからDMA回路がちょっとめんどくさかった。
70年代のワンチップマイコンは、intel i8048とGI PIC1650しか知らないが、使ったことはないです。
Re: W65C02で最近自作された方
フロントパネルは憧れますね。
40年前にZ80で手動DMAなマシン作った時には無粋にもロータリDIPスイッチと7セグメントで16進仕様で作ってしまいました。
ワンチップマイコンとしてはMotorola MC6801, Mostek MK3870 がギリギリ70年代末に駆け込みで間に合ってるはずです。
コメントを追加