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