MOS 6502
Channel: 宇宙のすべての知識 プリンシピア
Date: 2021-04-05

MOS 6502, by Wikipedia https://ja.wikipedia.org/wiki?curid=2179 / CC BY SA 3.0

#マイクロプロセッサ
MOS 6502はアメリカのモステクノロジーが1975年に発表した8ビット MPU (CPU) である。
 1977年に発売されたApple II に搭載されて一躍有名になり、その後PET 2001（1977年1月発表、10月発売）、CBM3032、VIC-1001等、主にコモドール社の製品で採用されていた。
日本ではパソコン用のCPUとしての採用例は比較的少ないほうだが、互換CPUがファミリーコンピュータやPCエンジンに採用されている。
 モステクノロジー 6502 マイクロプロセッサ モトローラのMC6800をモデルに、レジスタセットの簡素化をはかり、多彩なアドレッシングモードと良く練られたパイプライン機構を持ち、同時期に設計された同一程度動作クロックの他CPU (MPU) 群に比べて格段に高速に演算処理を実行できた。
レジスタを小さく、少なくし、ハードウェア規模を減らして高速化を図ったのではないかと見られる節がある一方で、以下のような特徴を持つ。
 当時の競合製品と比較して破格の安値がつけられたことでアメリカのホビーストの間ではポピュラーな存在となった。
設計はMC6800によく似ていて、バスが互換のほか、ピン配置も一部を除いて揃っている（完全ではないのは後述の訴訟の影響による）。
68系と同様に「MPU」と呼称されることがあるが、MC6800シリーズと違ってバイトオーダはリトルエンディアンである。
 モステクノロジーはモトローラからスピンアウトしたチームで、当初に発表したMCS6501で起こったモトローラとの特許係争（ピン配列が完全互換だった問題）もあって、1976年に資金難から、コモドール傘下のコモドールSemiconductor Group (CSG) となっていたが、ICのマーキングにはMOSブランドがしばらく使用されていた。
同社は1994年にコモドールごと倒産した（モステクノロジー社はMostek社とは別の会社である）。
セカンドソースは多社にわたるが、ロックウェル・インターナショナル (Rockwell international) 社やウェスタンデザインセンター（Western Design Center、1977年にモステクノロジーのメンバーがスピンアウトした会社）、Synertek、GTEなどがあり、モステクノロジーの後を引き継ぐ形になっている。
 最初、NMOSプロセスで生産されたが、後にロックウェルとウエスタンデザインセンターからCMOS版の65C02が登場した。
65C02では、STZ（値$00のストア）やBRA（無条件相対分岐）といった命令が追加され、6502にあったバグが修正されたが、つくられた65C02の拡張命令のコードは両者で異なっていた。
 周辺チップとしては、6502用のタイミングにあわせた6521（6821互換）PIAや6522、6551 (ACIA) などが用意されていた。
 ただし、nには16進1桁の数値を指定する。
 6502の割り込み処理は三種類ある。
それぞれの割り込みにつき、所定のアドレスに割り込み処理ルーチンの先頭アドレスが記載されており、割り込みが入るとそこへ制御を移す。
割り込み処理ルーチンを終了して元のルーチンに復帰するにはRTI 命令 (0x40) を使用する。
 W65C02 65C02 (Rockwell) CMOS版で、命令が拡張されている。
 W65C02 (Western Design Center) CMOS版で、Rockwellのものとは別の形で命令が拡張されている。
Apple IIe, IIcなどに採用。
 6507 6502のアドレスを13ビットに削減したもの。
Atari 2600（アタリ）で使用。
 6510 6502にクロック入力ピンとI/Oポートを追加。
VIC-20 (VIC-1001) の後継機、コモドール64、マックスマシーンで使用。
改良版の7501/8500/8501というバリエーションも存在する。
 8502 6510を高速化、コモドール128で使用。
 RP2A03E RP65C02 (RICOH) CMOS版6502。
Rockwell製NMOS版6502とピンコンパチブル、命令コンパチブルであり、さらに59の命令の追加、パワーダウン、スタンバイモードなどCMOSの特長を備える。
 RP2A03 (RICOH) 6502から10進演算関連の機能が削除され、サウンド機能が追加されているもの。
ファミリーコンピュータで使用。
CPUのIPコア...