aki_iic’s blog

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

Motorola MC6800(その6)

 昨日は34℃、今日も32℃を超える予想最高気温な文月最終週だがメディア様は岸田首相の9基程度の原発再稼働を報道はするものの読売と産経は評価、朝日と変態は何でも反対(特に朝日は石炭火力発電:日本独自技術導入版:も科学に基づかない文系官能反応に基づき反対:)とまあエネルギー危機よりは子供の絵日記(但し件数のみ)な1次元伝搬がメディア様の実力なのでしょうねぇ(一次情報取材能力欠乏症という死に至る病を抱えながらの衰退死)。まあ永遠に続く産業なんて無いから貴方方が唱える自由競争による自然淘汰で「ガラケー並のメディア技術である新聞・テレビ」は好まない表現だがネットスラングで言うところの「オワコン」なのでしょうかね。そういえばオワコンなる造語は終わったコンテンツの略だそうでワンチップマイコンを超える和製造語でこれを考えたSNSの方々のセンスが垣間見えるのも興味深い。流行らせてしまえば勝ちみたいな価値観はメディア様と広告業界にも共通する価値観なのかもしれませんな(勝手な想像です)。

--------------------------------------------------------------------------------------------------------------------

(前回からのつづき)

 80x25のCRTCを用いた表示機能で補助記憶?はカセットテープのままではあるが機械語或いはセルフアセンブラMC6809:インタフェースの記事を移植)でプログラム(但し実用系のツールに近いレベルのみ。これは目的関数が○○マイコンを使ったある程度実用的(定義は人によって異なる)な構成を実現で目的達成であった為、それ以降のビジョンも展開も皆無であったのが大きい(多分きっとみなさんの身近にもそういう性癖の人がいらしたりするのでは。単機能型というかそういう感じの「使えなさそうな人」:)。それではつまらないのでIO拡張ボードに戻って何となく作ったIOボード2(仮称)について。

1.MC146818

 MC146818RTCとは後にIBM PC(初代)に搭載されたReal Time Clockチップである。このチップはMOTELと呼ばれるMotorola系とIntel系の両方のプロセサとインタフェース出来る機能を備えた面白いチップであった↓

https://www.nxp.com/docs/en/data-sheet/MC146818.pdf

 NXP(旧Freescale部門)は産業用機器も供給している為か供給期間が長い印象でデータシートの様な技術情報もMotorola時代からの紙ベースのデータシートがスキャンされ(場合によっては再度PDF化され)Updateされる今時奇特な文化を持つ米国企業である。さてMOTELの実態は8085風なマルチプレクスバスが基本でMotolora側はMC6801(後のMC68HC11にも繋がる)ASを使ったマルチプレクスバスとインタフェースが可能な点を称してMOTEL(MOtorola inTELの略だった様な。。。)なるインタフェースを提唱したが追従者は無くこれで終りだったような気もするが投資は回収しなければならないから他にもIPを流用した可能性はあるのだろう(例は異なるがMC6801/6803を内蔵したMC68121等)。このチップを使った理由は:

当時最新のRTCでMotora系のチップを使ってみたかった。

バッテリバックアップされた時計情報(つまりはReal Time Clock)を搭載したかった。

 であったのだろうと推測しているが別段必然性があった訳でも無くせいぜい機械語モニタの起動メッセージに日付と時間を表示する程度で正直当時は実用性は無く後々FlexOS-9を移植した際に役立った記憶がある。

2.MC146818とMC6800/6809とのインタフェース

 MC146818がMC6801系のマルチプレクスバス故、ノンマルチプレクスなMC6800/6809(無論Z80系とも)相性が悪いというか何らかの回路を追加する必要がある。まともに考えればAS相当をEクロックから16Mhzのクロックでシフトレジスタを通してASモドキを生成しデータセレクタでAddress/Dataを切り替える回路を構成すれば良いのだろうがそんな複雑な回路を構成する力量が無かったので(トホホ:)

最初のサイクルでアドレスを設定し

次のサイクルで設定したアドレスのデータをリード/ライトする

 ような構成(40年近く前で且つ関心が薄いアイテムだったので記憶があいまいでスミマセン)とした(ような気がする)。とにかく怪しげな回路ではあるがRTCをアクセス出来る様になってユアサのNi-cd(当時は一般的だったボタン型を直列にした5V回路でトリクル充電出来るタイプ)バッテリを直付けでNo.807基板に搭載し当方初のバッテリバックアップ可能なRTCボードとなったのでありました。

 このMC146818を知ったのは多分当時大手本屋さん(確か地元の紀伊国屋かもしかしたらどこかの通販)で入手したMotorolaの黒本と赤本(The complete motorola data libraryとかいう名前だったような):

www.amazon.com

 多分こっちの黒本ではなく書名忘れたけど赤本の方に掲載されていたと記憶している。Motorola系は当時セカンドソースだった日立含めてCPUから周辺、ファミリ、開発ツールが分厚い一冊の本に纏められ且つ大手洋書を扱う書店に陳列される事がまれにあってかの赤本(お世話になったのに書名思い出せなくてすいません)を参考にして設計した。前後するがこのチップはRTCの他に40バイトぐらいのSRAMを搭載しておりバックアップしたい情報を少量保存するには便利であったが機種情報とか何かのカウンタぐらいしか用途を思いつかず所詮機械語モニタ配下だったのでコマンドも追加せず、YYMMDDHHMMSSの設定と参照が出来ておしまいだったような手間を掛けた割には使いこなせていなかったのは今となっては思い出。

 MC146818はそのレジスタモデルがDallasやMaxim、ST等でさまざまなバリエーションのRTC(+RAM)チップへと進化し今でも定番のRTCとなっているのは今では儚い命のプロセッサ(特にPC用)と比べ地味に必要とされている周辺LSIは予想以上にロングライフ(というかモデル・アーキテクチャ)の品種が少なくなかったというお話。