タグ「MIC68K」が付けられているもの


MIC68Kワンボードコンピュータで遊んでみた(4)モニタ実装編

前回のHello World編では、MIC68KでEPROMに焼いたプログラムを動かして、シリアルポートからHello Worldの文字列を出力させました。今回はこのシリアルポートをコンソールにしてモニタプログラムを実装しますが、ゼロから実装するのは大変なので、他のシステムで使われたモニタプログラムを移植することにしました。Web検索をしてみると次のような手頃なシステムがありました。

PLCCの68HC000とか、アドレスデコーダにXilinxのCPLDを使ったりと、MIC68Kよりは新しいデバイスが使われていますが、UARTが6850でありここはMIC68Kと同じです。これで使われているモニタプログラムはzBugという名前で、別ソースとなっている逆アセンブラ部分を除いたソースコードも1300行程度なので移植も容易そうです。ライセンスはGPLv2です。

まずは逆アセンブラの機能を除いた基本部分を移植します。ソースファイルをEASy68Kに読み込ませてアセンブルしたところ、アセンブラの文法が異なるため若干修正が必要でした。EASy68Kにもエディタがあるのですが、1300行となると使いなれたものがよいので、Sublime Textというエディタを使いました。このエディタはプラグインを使うことで、viエディタのキーバインドにすることや、68000アセンブラを理解して色分けしてくれることもできます。

sublime_m68k.png

MIC68Kワンボードコンピュータで遊んでみた(3)Hello World編

前回の解析編でこのMIC68Kのメモリマップがわかりましたので、実際にプログラムを動かしてみます。68000のアセンブラはDragonBall-EZ(MC68EZ328)で遊んだときに使ったEASy68Kを使いました。

easy68k_asm.png

このMIC68Kはリセット時はROMが$000000に配置されます。なぜこのような動きになっているのでしょう。68000CPUはリセット時に$000000-$000003の32bitをSSP(Supervisor Stack Pointer)に設定し、$000004-$000008の32bitをPC(Program Counter)に設定して動き出します。

つまりROMの最初に4バイトのスタックポインタの値、次の4バイトにプログラムの開始アドレスの値を書き込んでおけば、リセット時にその値が読み込まれ、指定された開始アドレスからプログラムが実行されます。MIC68KはRAMは$000000-$00FFFF、ROMは$A00000から配置されていますので、スタックポインタはRAMエリアを指すようにし、開始アドレスはROMエリアを指せばよいことになります。

MIC68Kワンボードコンピュータで遊んでみた(2)解析編

前回の調査編である程度の構造は把握できましたが、MIC68Kを実際に動かすためには、ROM/RAM/周辺デバイスがどのアドレスに配置されるのかを調べなければなりません。よく基板上にアドレスが書かれていることがありますが、この基板にはそのような情報はありませんでした。それを知るためにはプリント基板の配線を追って回路図を起こすことになります。ただし、すべてを回路図に起こすのは時間がかかりますので、知りたいところを優先して解析します。

例えば、以下のことだけがわかれば、ある程度のプログラムを動かすことができます。

  • ROM/RAM/周辺デバイスのCS(Chip Select)信号やOE(Output Enable)信号が、どのアドレスでEnableになるのか。
  • 2つあるROM/RAMのどちらが偶数バス、奇数バスに接続されているのか。(CPUのD0信号につながっているのはどっち?)
  • 全体のメモリマップはどのようになっているのか。

まずは回路図を書くために、各デバイスのピン配置をデータシートから抜き出して、基板のICの配置に合わせて大きめの紙に貼り付けます。今回データシートはCQ出版で公開されている'86年度版 主要IC端子接続早見表【PDF版】を使って写真のように切り貼りしました。

mic68k_schematic1.jpg

これを元にプリント基板のパターンを追って、回路図を書いていきます。基板の表面と裏面を見比べながら、ICチップで見えないところはある程度想像しながら、最終的にはテスターで導通を確認していきます。

MIC68Kワンボードコンピュータで遊んでみた(1)調査編

ヤフオクで68000CPUが搭載されたレガシーなワンボードコンピュータが出品されていたので落札しました。出品情報によると「MIC68K」という名称のようです。まずはどんなワンボードコンピュータなのか基板を観察してみます。

mic68k_board1.jpg

基板の中央に68HC000P8が構えています。今ではこんな巨大なICは見る機会はないでしょう。あとは256KbitのSRAMが2つ。8bit×2個で16bitバスに接続されているのでしょう。2つの空きソケットがありますが、ここにはROMを実装するものと思われます。SRAM同様に256KbitのROMが搭載できるでしょう。