MC68000
最初のHP LaserJetは8MHzの68000を使ったコントローラを内蔵していた(1984年)。同様に68000を使ったコントローラが多くのレーザープリンターで使われている。例えばAppleのLaserWriterなどである。68000は1980年代を通してレーザープリンターで使用され、1990年代に入ってもローエンドのプリンターに使われ続けた。
また、68000は工業制御システムの分野でも成功を収めた。この種のシステムでは、68000やその派生CPUを中心としたプログラマブルロジックコントローラ (PLC) を利用する。このようなシステムは一般市場に比較して製品寿命が長く、20年前のものでもそのまま使い続けることが多い。そのため、21世紀になっても68000ベースのコントローラが数多く使われ続けている。
コンピュータゲームメーカーはアーケードゲームや家庭用ゲーム機などに68000を使った。アーケードゲームでは1983年にアタリが「Food Fight」で68000を使ったのが最初である。日本での初使用は同年のナムコ(後のバンダイナムコアミューズメント)の「 リブルラブル」である。1980年代後半から1990年代初めごろまでアーケードゲーム基板ではメインCPUとして68000がよく使われた。例えば、セガのセガ・システム16、カプコンのCPS-1とCPS-2、SNKのネオジオなどである。アーケードゲームでは68000を2個使ったり、場合によっては3個使う場合もあった。1990年代、アーケードゲームのメインCPUはもっと高性能なプロセッサが使われるようになっていったが、68000はサウンドコントローラなどとして使われ続けた。
8本の汎用データレジスタ (D0 - D7)と8本のアドレスレジスタ (A0 - A7) を持つ。 アドレスレジスタ (A7) はスタックポインタ (SP) であり、スタック上位のオブジェクトをアクセスする事が容易となった。
68000ファミリでの多バイトデータのメモリ上での配置はビッグ・エンディアンである。
割り込みコントローラは汎用ロジックIC74148のような単純なエンコーダでもよいし、VLSIの周辺チップでもよい。例えばMC68901は、割り込み制御だけでなくUART(シリアル)、タイマー、パラレルI/Oを備えている。
例外テーブル(割り込みベクターテーブル)はアドレス0番地から1023番地まで固定で置かれ、256個の32ビットアドレスを表す。最初のベクターは初期スタックアドレスであり、二番目のベクターは初期コードアドレスである。3番から15番のベクターは各種エラー処理ルーチンのアドレスである。エラーの種類としてはバスエラー、アドレスエラー、不正命令、ゼロによる割り算、CHK/CHK2命令ベクター、特権違反、そして予約されたベクター(後にline 1010エミュレータ、line 1111エミュレータ、ハードウェアブレークポイントに割り当てられた)がある。ベクター24から実際の割り込みに対応する。ハードウェアに対応しない擬似割り込み、レベル1から7のベクター、15個のTRAPベクター、いくつかの予約されたベクター、ユーザ定義ベクターの順番で並んでいる。
リセットされたとき、少なくともスタートコードアドレスのベクターには正しいアドレスが入っている必要がある。
680x0系の最初のプロセッサであるMC68000の仕様は、外部支援なしにはデマンドページングの実現が困難なものであった。
デマンドページングでは、実行中の命令のメモリアクセスがページフォールトを起こしたら、(それが正常なアクセスであれば)その実行中の命令の実行を一旦フリーズし、外部記憶と主記憶の間でスワッピングをおこなってから、実行中だった命令の実行から再開する、という処理が必要である。
しかし、MC68000がページフォールトの際に保存する内部情報は、「実行中だった命令の実行からの再開」ができないものであった。このため、MC68000の通常の割り込みの処理に従ってしまうと、デマンドページングは実現できない。これを、単にそもそもサポートするつもりが無かったものとみるむきもあれば、「仕様のバグ」とみるむきもあれば、後述のようにして実現が可能であるし、MMUも計画中に過ぎなかったのだから「将来仮想記憶をシリコン上に実装することを正当化する需要が発生するまでの暫定的な実装仕様」だったと考えるほうが自然である、とみるむきもある。
そのようなMC68000で仮想記憶を実装するためには、MC68000には次のような機能があった。