aki_iic’s blog

己の欲せざる処人に施す事無かれ、狂人の真似するは即ち狂人なり

Motorola MC6800/MC68HC11(その8)

 MC6800の直系且つバイナリ上位互換のMCUであるMC68HC11について。前にも書いたが1984年に登場した本MCUが39年経過した今でも流通在庫だったり中古だったりではあるがどうにか入手可能な状態なので、密かなブーム(笑)となっているレトロマイコンを楽しまれている方々にも着目頂ける(というかきっと誰かが創っていると想定するのが自然:)と望外の喜びです(心から)。

1.MC68HC11(小松さんのページより↓

www.st.rim.or.jp

2.プログラミングモデル(上記より引用)

MC68HC11プログラミングモデル

 あ〜どこぞのマイクロソフトご出身の社長さんがアーキテクチャがどうちゃらとか抜かしているくせにプログラミングモデルすら出せなかった駄本(自費出版:)があったのでまず最初にプログラミングモデルを示すのが礼儀というか常識だろう。脱線するけどどうもMSご出身の方は一般人と相当に価値観が異なる方が少なくない様で、詐欺師の同義語になりつつあるマッキンゼーとかと同類の根拠の無いエリート意識(或いは願望)がおありな方も一部には居るのかもしれない(根拠の無い個人の勝手な感想です:)。

 話を戻すとMC6800直系のMCUであるMC68HC11は

・M6800とバイナリレベルで完全上位互換

・IYの追加(Dレジスタは6801で拡張済)

・NMI改めXIRQの追加。CCRにXフラグを追加

・乗算、除算命令追加

・これらの命令セット強化により? gccサポート(これは私の私見:)

 プログラミングモデル拡張に伴う命令セット強化は上記を参照にして下さい。というかNXPからデータシートは今でも入手可能なのでそちらがお勧め:

www.nxp.jp

 リファレンスマニュアル(PDF):

www.nxp.com

 まあまあ、ジジイのノスタルジーという事で我慢出来る方はお付き合いの程を。

3.スペシャルブートストラップモード(Special Bootstrap Mode)

 MC68HC11(以下HC11)の特徴は色々あるが、個人的には最初に記したいのがSpecial Bootstrap Modeでして、これは後の多くのROM内蔵マイコンに備わるようになったBoot Modeの先駆けとなったものであると思っている。mode Pinは6801から備わっていたがHC11ではSpecial Bootstrap Mode(以下SBM)では内蔵SCIから所定のボーレート(確か9600bps)でHC11内蔵RAM(HC11Eで512byte,HC11Fで1KB)にSCI経由でプログラムをロード出来る仕掛けでEEPROM構成のHC11ではこの機能を使って自力で内蔵EEPROMのプログラムROMを更新出来た。今ではどのMCUでも何らか形で備わっているこのモードだが、HC11は早期に実装されたチップなのではと理解している。

www.nxp.com

 NXPの元Freescale部門はフリスケ時代というかMotorola時代からの伝統芸能(良い意味です)の大昔のチップの技術情報を公開し続けている(それもMotorolaでなく、Freescaleでなく、NXPロゴで)のは善き伝統でV850ESを封印してしまった旧NEC(現Renesas)ら一部の日本半導体メーカとは企業文化が異なるのかもしれない(どちらがどうとは申しません:)。まあ、そういう仕掛けがあるのでFT232で9600bpsに設定してSBMで512byte以内に書込プログラム(SRAMなりEEPROMなりMRAMなりFRAMなり、Flashなり)を作成すれば比較的入手が容易なSMDのパラレルROMも適用可能と思われるがポイントは512byteで書込プログラムを書けるかに掛かっている。

4.XIRQとOC5とBuffaloのStep機能

 HC11のMotorola標準モニタはBuffaloと前に書いた気がするが例のaslのサンプルディレクトリにbuffaloのソースが収録されているので適時アセンブルして組み込む事が出来る(古風だが現役のMotorola Sformatで:)。16年前に始めてOlimexに基板を発注したのがHC11E+PSD854のボードでモニタプログラムは当然、buffaloを搭載し、PSDのFROMに書込み、使用している。PSDはObsoluteなデバイスなので入手可能なパラレルのEEPROMなりFROMがあればそれを使用すれば良い。BuffaloではHC11のOutput Compare のチャンネル5をXIRQに出力して1命令毎にXIRQ(まあ、NMI相当な割り込み)で外部にタイマを設ける事無く、ステップ機能を実現している。

5.高級言語

 Basicは確かBasic11という浮動小数点サポートのBasicが存在している筈で、Cコンパイラは低級なモノ(失礼)ではSmallc11、高級(相対的に)なモノはgccが提供されている:

aki-iic.hatenablog.com

6.バイナリ互換且つ上位互換

 繰り返しになるがHC11はM6800の完全バイナリ上位互換の為、当然ながらM6800のコードはそのまま動く。つまり理論上はTSC FLEX6800(今はフリーで公開されている、らしい)も動作する筈でDisk driverを今時FDCでも無かろうからSD/CFなりFT245の如きUSB経由でエミュレートするなりすればFDOSも動作する筈。まあ、クロス開発の方が遥かに使い勝手は良いから懐古趣味以外の価値は無いかもしれないが。

 まあ、そういう訳なので私にとっては人生最初のマイコンであったMC6800の命令(機械語レベルで)がそのまま動作するHC11には格別の思い入れがあるのでありました。

7.我が国では知名度はイマイチ?

 1980〜1990年代の世相をリアルで知る方はHD630Xシリーズが圧倒的優勢で高価で性能も2Mhz止まりだったHC11に対して3Mhzバージョンと命令実行高速化で優位であった。しかしながらその後・・・(以下禁則事項:)。

おしまい