もっと6502
6502は前にも出しましたが、他にも入手しています。
マーキングは「6502A」としかありませんが、ロゴからSynertekのSY6502Aと思われます。1980年製、末尾に「A」が付いているので2MHz版ですね。
もう一つはリコー製のRP65C02Gです。製造年は不明です。
CMOS版の65C02は命令が拡張されているというので調達してみたものです。
6502は前にも出しましたが、他にも入手しています。
マーキングは「6502A」としかありませんが、ロゴからSynertekのSY6502Aと思われます。1980年製、末尾に「A」が付いているので2MHz版ですね。
もう一つはリコー製のRP65C02Gです。製造年は不明です。
CMOS版の65C02は命令が拡張されているというので調達してみたものです。
これはまだ取り上げたこと無いと思うので...
PCIバスのビデオボード、Diamond MultimediaのStealth 64 VIDEO VRAM PCIです。
当時のハイエンドのボードだったと思います。
左上の青いのが目立ちますがこれはコントローラではありません。37RGB526CF22が型番と思われ、「PALETTE DAC」とあるようにパレットレジスタとD/Aコンバータを一体にしたもので「RAMDAC」とも呼ばれます。CRTの時代は画質を左右する重要なデバイスとしてこだわる人も多かったですね。
6502を拡張したのがこのG65SC816です。
プラスチックDIPの4MHz版、1987年製のようです。
データシートに65SC802と65SC816の2種併記されていますが、65SC802は6502とピンコンパチでメモリ空間は64kB、65SC816の方はマルチプレクスバスになってメモリ空間が16MBに拡張されています。
予告どおり富士通のMB8861, MB8870です。
MB8861はMotorola MC6800の相当品ですが、いくつか独自の命令が追加されています。これは1979年製のようですね。
パッケージは中央に大きな円と下側に溝のある富士通独特の特徴あるスタイルです。今回は国内調達したのであまり心配はないのですが、海外からだとこのパッケージは(ニセモノの可能性が低いということで)安心材料の一つといえそうです。
さて、追加された命令の詳細を知りたいところなのですが、富士通のデバイスはデータシートの入手が難しいことが多く、このMB8861も入手できていません。ハード的にはMC6800と差し替え可能ということで、「リンク」に挙げたサイトの情報と実験をもとに動かしていきます。
MB8861とMB8870を手に入れたのですが判定ルーチンと一緒に書こうと思いまして、今回は珍しい74シリーズを取り上げます。
一つ目はTIのSN74L42N、BCD to 10のデコーダです。型番表示が右によっているのは古いTI製にはよくありました。1976年製。
何が珍しいかというと「74L」というところ、以前取り上げた74Hとともに滅多に見かけないシロモノです。すぐに74S, 74LSの時代になったのであまり普及しなかったようです。
最初の74は種類が豊富だった(SやLSが作られなかった品種も多い)ためか生き残ったのですが、74L,74Hにはそういうアドバンテージも無さそうです。
AKI-ROMがなぜかもう1枚出てきちゃいました。
こちらにはDC-DCが搭載されていない他、左下のスイッチやZIFソケットからも別の個体であることがわかります。
2枚作った理由は...、例によって使いたいときに行方不明だったからでしょうね。
秋月のキットとしては高価な部類に入るのでよほど急いで必要だったのでしょう。となると、Flash EEPROMを飛ばしてしまったP/I-P55TP4Nの復活の時かもしれません。数万円のマザーボードの修復のためとなればそう高いとは感じないでしょうから。
せっかく発見したのですが2つもいらないし、今はTL866Aを使っています。
68編に引き続き80編をお送りします。
8080系とZ80系の区別は『I/O』誌の記事を参考にしました。i8080/μPD8080AF, μPD8080A, i8085の判別法は一般的なものがあれば利用するつもりでしたが、見当たらなかったのでデータシートを元に独自に書いたものです。
現在のCPUではその種類や対応する命令の範囲などを取得する命令(例えばx86系のCPUID命令)がありますが、以前は微妙な挙動の違いなどから判別していました。
自作のUniversal Monitorのソースコードを例に解説してみます。
まずは昨日目処が立ったと書いたMC6800系からです。
該当部分のソースは次のようになっています。
8080, Z80, 6809に続いて6800用でもCPU判別を追加しようと思っているのですが情報があまりありません。
わかった範囲ではMC6800 ⇒ MC6801/MC6803 ⇒ HD6301/HD6303と改良されるにしたがって命令は追加されていますが、既存命令の挙動は変化が無いようです。これは互換性という点では非常にありがたいのですが、判別という点では困ったことです。
追加された命令の存在が確認できれば良いのですが、そのオペコードは旧プロセッサでは未定義なので何が起こるかわかりません。データシートにも記載は無いので試してみるしかないのです。
レジスタを設定し、問題の命令を実行し、レジスタがどう変化したかを地道に見ていく必要があります。
そこでレジスタを任意に設定して実行する機能、レジスタの内容を表示する機能を追加することにしました。これはデバッグにも有効です。