CPU判別法(80編)
68編に引き続き80編をお送りします。
8080系
8080系とZ80系の区別は『I/O』誌の記事を参考にしました。i8080/μPD8080AF, μPD8080A, i8085の判別法は一般的なものがあれば利用するつもりでしたが、見当たらなかったのでデータシートを元に独自に書いたものです。
マイクロプロセッサ・マイクロコントローラ等です。
68編に引き続き80編をお送りします。
8080系とZ80系の区別は『I/O』誌の記事を参考にしました。i8080/μPD8080AF, μPD8080A, i8085の判別法は一般的なものがあれば利用するつもりでしたが、見当たらなかったのでデータシートを元に独自に書いたものです。
現在のCPUではその種類や対応する命令の範囲などを取得する命令(例えばx86系のCPUID命令)がありますが、以前は微妙な挙動の違いなどから判別していました。
自作のUniversal Monitorのソースコードを例に解説してみます。
まずは昨日目処が立ったと書いたMC6800系からです。
該当部分のソースは次のようになっています。
前からずっと探していたモノを遂に入手できました。
Panafacom MN1613A、初期の16ビットマイコンです。
このシリーズはどれも入手困難なので贅沢は言えないのですが、一応MN1611かMN1613を優先して探していました。
まずMN1610は+12V, +5V, -3Vの3電源、MN1610Aも+5V, -3Vの2電源を要求します。MN1613AはMN1613とピン数が異なる上にデータシートが見当たらず、半導体コレクション展示会場くらいしか情報がありません。MN1617も資料が無い上にパッケージがQFPしかありません。
以前ディスコン半導体を扱う商社にこの両者の見積もりを依頼したこともあるのですが、価格以前に入手不能との回答でした。
Universal Monitor Z8の基本機能が現在対応している全プロセッサで使用可能になりました。
前回はコマンドの概要のみを書きましたが、今回はコマンドラインの形式も書いておきます。
コマンドは原則1文字ですが、PI
などのように2文字のものも一部あります。
<addr>,<offset>といった数値パラメータは16進表記で必要以上の桁数を入力した場合は末尾が使用されます。
英字の大文字小文字は区別されません。
コマンドとパラメータの間・パラメータとカンマの間には空白を入れても構いません。ただし行入力バッファは短いので注意してください。
昨日のF3850と組み合わせて使うメモリインターフェイスも手に入れました。
F3853 SMI(Static Memory Interface)です。末尾「C」ですから動作温度範囲0°C~+70°Cの民生用ですね。1980年のフィリピン製。
前回書いたようにF3850 CPUにはアドレス回路が入っていません。Program Counter, Stack Register, Data CounterのアドレスレジスタはF3851, F3852, F3853, F3856が持っていて、CPUからはコマンドで設定・参照するようになっています。16ビット長なのでメモリ空間は64kBとなります。
以前Twitterで「売ってるよ」という情報があってその時は思いとどまっていたのですが、結局買ってしまいました。
FairchildのF3850、F8ファミリの一員のCPUです。
末尾が「L」なので動作温度範囲が-40°C~+85°Cのいわゆる産業グレードですね。1982年製です。
このCPUはアドレス回路(レジスタもバスも)を持たないというちょっと変わった構成になっています。それらは別のメモリインターフェイスユニットにあり、最低でも2チップが必要となります。
久しぶりのこのシリーズ、ハードウェア関連はネタが無くなってきたのでOS・プログラム言語などソフトウェア関連を書こうと準備していたのですが、そういえば入力装置について書いていないことを思い出したので数回にわたって取り上げてみます。
個人で初めてのコンピュータを自作するとしたらスイッチパネルしかないでしょう。
トグルスイッチ(他のスイッチでも構いませんがすばやく簡単に操作できないと後悔するでしょう)がたくさん並んだパネルです。プロセッサを一時的に止めておき、このスイッチでバスに直接アクセスします。スイッチでアドレスとデータを1バイトずつメモリ(RAM)に書き込んでいくのです。
プロセッサの動作中は邪魔をしないように切り離しておきますが、ソフトウェアからスイッチの状態を読めるようにすることもできます。
これは使い勝手はとても悪いのですが、ソフトウェア無しで使えるという他にないメリットがあります。
W65C51と一緒に入手したもの、というよりこちらが本命でした。
MotorolaのMC146805E2Pというマイコンです。頭に「14」が付くのはCMOSだからでしょう、他にもMC/HD146818なんかが同様の命名ですね。