ROMエミュレータの製作

1.きっかけ
私はCPUボードを使用する時には某H8ボード(not 秋月)を使用してい るのですが、いかんせんマイナーなCPUなので、デバッガが高価でとても購入 なぞ出来ません。しかしMikiさんがやっているように大量のROMをならべ、 紫外線灯とROMライタを連続使用するなぞ私には出来ません。そこで、対抗手 段を得るべく、ROMの代わりができ、かつ簡単に書き込み消去ができるうよう な物の製作を決意したのでした……。
2.回路の原理
2.1.その前に
某トラ技にちょうどよい記事が有りました。
 ・ROMプローブをROMソケットに差す。
 ・パソコンのプリンタコネクタと本機をつなぐ。
 ・パソコンからプリンタ(につながっている本機)へバイナリデータを掃き
  出す。 これだけで使用出来ると言う、まさに今回の課題にぴったりの内容でした。
2.2.で、回路
[参考文献]を見てもらえば、それで済んでしまうんですが(^^;。
2.3.まずはデータを書き込む時
書き込む時は、モード切換スイッチをWRITEにします。すると、プリンタポー ト側のバッファのみENABLE(日本語で言えば、接続許可、と要った所でしょうか) 、ROMプローブ側のバッファはDISENABLE(同じく、接続禁止)となります。
 1)最初にモード切換スイッチをWRITE側にします。
 2)次にRESETを押し、RAMのアドレスバス(以下AB)を設定しているカ
  ウンタを初期化します。
 3)まず、プリンタポートのデータバス(以下DB)へデータが来ると、ST
  Bへ1発パルスが来ます。
 4)そのパルスによって、DBのデータをRAMに書き込みます。
 5)同時に、74123によって、ある程度の長さのパルスをBUSYへ出力し、
  DB,STBを一定時間保持します(多分、そういうつもりの回路だと思
  う)。
 6)次にSTBの立ち上がり(負論理ですから、アクティブ→ノンアクティブ
  への変化時)で、ABのカウンタをインクリメントします。
 7)これで1バイトの書き込みは終了です。あとは3)〜6)を繰り返すだけです。
 8)もしカウンタがRAMの容量を越えてしまうと最初に書き込んだ内容を消
  してしまうので、RAMの容量を越えた時点でBUSYをアクティブにし
  続けます。
回路でやっている事は簡単ですが、DB8本,AB16本と圧巻です。
2.4.そしてROMとして使う
モード切換スイッチをEMULATEにします。するとプリンタポート側のバッファ がDISENABLE、ROMプローブ側がDISENABLEとなります。
 1)最初にモード切換スイッチをEMULATE。
 2)ROMプローブのAB,DBがRAMにつながるので、ROMプローブに
  RAMの内容がそのまま見えます。
……、そのまんまです。
3.製作
まず、部品ですが、カウンタ,バスバッファ,RAM……と、大して珍しいも のはないので、入手に苦労する事は有りません。ケースも好みで決めて問題有り ません。結局、部品代(ケース代含め)¥5,000でおつりが来ました。
デジタル回路ですから、極端に配線を引きまわす事をしなければ、何も問題は ありません。素直に蛇の目基板に作りました。しかしながら、DBが8本,AB が16本、おまけにプリンタポート側,ROMプローブ側で、大量のバスの配線 があり、えらい苦労しました。
結局、3日かかって、どうにかこうにか配線が終わりました。
また、ケースに入れないと、壊してしまうかなくすのが常なので、ケースにい れましょう。ケースの大きさをぎりぎりの大きさにしたので、基板のはじっこを 削る羽目になりましたが、ぴったり収まりました。まぁ、わたしは相変わらずケ ース加工は下手なので、BES氏に「ケース加工に愛が無い」とか言われますが。
また、電源はお手軽に、そこらのDCアダプタから3端子レギュレータに入れ、 5Vを作りました。
4.完成、そして
いきなり使って火を噴いたり、つないだ物を壊したりしたらまずいので、配線 を何度か確認の上、プリンタポートのみつないで、電源を入れました。部室のオ シロでカウンタ出力やSTB,BUSYを確認しましたが、正常に動作しました。
で、実際にH8CPUボードに接続し、プログラムを転送し、動かしてみまし たが、正常に動作しました。
実際に使用してみて確認がとれた事ですが、まず、書き込み中はBUSYへパ ルスをポコポコ出しているので、暗く点灯します。そして、RAMの容量を越え ると突然、パッ,と明るくなりました。
また、約16KBの書き込みに約2秒でした。そして、消去はRESETスイッチ を押し、あとはまた普通に書き込むだけなので、一瞬です。厳密に言えば、書き 込まなかった場所には以前の内容が残ってしまいますが。また、初期値が多分0 FFhでは無いでしょう。
使用に際して、毎回毎回わざわざRESETスイッチを押さなければならないのは わずらわしいです。実際に何度も使用するまで気付きませんでした。WRITEを終 了し、EMULATEにしてから、また追加書き込みをする事は無いでしょうし、また 追加書き込みをするにしても、2〜4秒で終了するので頭から書き込んでもさし て時間を食わないでしょう。ちょうど74123が1回路余っていますから、モード 切換スイッチとRESETスイッチを連動させても良いでしょう。
備考:後日、連動するよう改造しました。
5.The END and……
相模ロボットのプログラムのデバッグに、非常に役立ち、重宝しました。あと は ROM TOASTER + GAL TOASTER ですね。
Special Thanks to
 ラインハルト皇帝陛下、別名Fire氏。
   きっかけで書いたとおり、今回の始まりの全てです。
 作っていた時部室にいた人
   とくにGRIFFさんや、らぴたって人は、ケース加工にてこずっているの
   を見かねてました。
   
 トラ技1994年1月号P.350〜P.352
 「ROMソケット直付け方式ROMエミュレータの製作」永浦 清
  • 回路図(CE+LIB LZH 8KB)
  • 回路図(PNG 23KB)
  • 回路図(GIF 30KB)

    執筆:1996年8月4日〜1996年9月28日、 1996 Nov.10 Sun.
    web 用に修正:1998年9月3日

  • Last modified on Fri,11 Sep,1998.
    FENIX ほめぱげ
    G-HAL ほめぱげ
    ハードヱアに関するウダウダ
    Mail to, メールはこちらへ
    Suggestion Box, 投書箱
    BBS, 掲示板 UserName:BBS、Password:BBS
    (C) 1996 G-HAL