EP-ROM 1M(128K byte) , 4M(512K byte) type emurator for PC/AT. romem.exe Version 1.0 June 24,1997 T.Tsuda ,DSA §1 概要 及び 説明 ・1MB、又は4MBのEP−ROMエミュレータ−の回路図とソフトです。 IBM-PC/AT互換機のプリンターポートに接続して使用します。 コントロールソフトはMS−DOS上で動作します。 シングルボードコンピュータのデバッグをする時に、修正をする度にEP−ROMを 焼いているとROMを消去するまで待っているか、たくさんのROMを用意して ローテーションする必要があります。 これでは、時間が掛り効率が悪過ぎるので、RAMをROMの代わりに使う ROMエミュレ−ターを作りました。 このROMエミュレーターはPC/ATのプリンタポートに接続して、直接データを ダウンロードしますので、RS−232を使ったROMライターよりも高速です。 1Mバイトをダウンロードするのは10秒程度です。 Motorora-S , Intel-HEX , Binary フォーマットのファイルの読み込みと書き込みが できます。 ・このアーカイブには以下のファイルが含まれています。 ./ROMEM/isp1m256/* ispLSI2032と256K RAMを4個使用した1M(128K BYTE)の回路図 ./ROMEM/isp1m256/pld/* ispLSI2032のAbel-HDLソース及びJEDECファイル ./ROMEM/isp1m/* ispLSI2032と1M RAMを使用した1M(128K BYTE)の回路図 ./ROMEM/isp1m/pld/* ispLSI2032のAbel-HDLソース及びJEDEC ファイル ./ROMEM/ttl1m/* 標準TTLと1M RAMを使用した1M(128K BYTE)の回路図 ./ROMEM/ttl4m/* 標準TTLと4M RAMを使用した4M(512K BYTE)の回路図 ./ROMEM/src/* AT用コントロールソフト(DOS用)ソ−ス ./ROMEM/src/romem.exe AT用コントロールソフト(DOS用)実行ファイル ./ROMEM/doc/* 説明 ・このプログラムは、AT互換機上で Power C Version 1.1.6 でコンパイル しました。 §2 動作環境 ・このROMエミュレーターとソフトは、IBM-PC/AT互換機専用です。 他の機種では動作しません。 ・以下の環境で動作を確認しています。 PC/AT互換機 , AM5x86 -120 , AWARD BIOS , オンボードI/O IBM OS/2 Warp4 のDOS窓 PC/AT互換機 , Pentium -100 , AMI BIOS , オンボードI/O IBM PC-DOS J6.3C/V IBM OS/2 Warp 4 のDOS窓 (VDM) 実際に作成して動作を確認したのは、./ROMEM/isp1m256/ ディレクトリの ispLSI2032(Lattice社のCPLD)とHM62256(256K RAM)を4個使用した1M bit (128K BYTE)タイプの回路だけです。 §3 使用方法 ・ROMエミュレーターのROMコネクタをターゲット基板のROMソケットに接続 します。 ・ROMエミュレーターのRESETコネクタとターゲット基板の-RESET信号を接続 します。 -RESET は負論理のオープンコレクタ出力です。 ターゲット基板の -RESET 回路はオープンコレクタ出力になってなければいけません そうでないと、回路が壊れます。 -RESET を接続できない場合には、ダウンロード中はCPUがROMをアクセス 出来ずに暴走するので、ターゲット基板の電源を切って下さい。 ・ソフトを起動しデータ(ターゲットのプログラム)をダウンロードします。 C:>ROMEM command [argument] [command [argument]] [....] で起動します。 コマンドは、全て環境変数 "ROMEMOPT" 及びコマンドラインで指定します。 デバッグ中は、コンパイル・リンク・エミュレーターへのダウンロードを バッチファイルやMakefileで行うことを想定しているため、入力プロンプト等は 一切使用しません。 環境変数 "ROMEMOPT" とコマンドラインは、一旦1つに結合してから評価します。 したがって、 Prompt>SET ROMEMOPT=l 2 f i Prompt>ROMEM r sample.hex d p t と Prompt>SET ROMEMOPT=l 2 f i r sample.hex d p t Prompt>ROMEM は、全く同じになります。 Makefile 等を使用しない場合には、環境変数 "ROMEMOPT" に全てのコマンドを指定 しておけば、 romem.exe 起動時にコマンドを指定する必要がなくなります。 §4 コマンドの説明 ・コマンド一覧 引数の {a|b|c} は a と b と c の内どれか1つを選択することを意味します。 コマンド、引数 説明 ------------------------------------------------------------------------------- l {1|2|3} PCのプリンタポート番号を指定。デフォルトは lpt1 f {m|i|b} ファイルのフォーマットを指定。デフォルトは Motorora-S m:Motorora-S , i:Intel-HEX , b:Binary e ダウンロードするアドレスを Even にする。 o ダウンロードするアドレスを Odd にする。 b ダウンロードするアドレスを even と odd (全部)にする。 r file_name file_name のファイルをPCのメモリーに読み込む。 ファイル名を - にすると stdin から読み込む。 w file_name PCのメモリーを file_name のファイルに書き込む。 ファイル名を - にすると stdout に書き込む。 c src dist size PCのメモリーの src から size バイトを dist にコピーする 移動ではないので src のデータものこっている。 m start size data PCのメモリーの start から size バイトに dara を書き込む a end_address ダウンロードする最終アドレスを指定する。デフォルトは 1ffff 作成したROMエミュレーターのRAM容量−1を指定すること。 1M bit(128K byte)は、1ffff 4M bit(512K byte)は、7ffff d ROMエミュレーターのバスバッファーをPC側に切り換えて、 PCのメモリーからROMエミュレーターにデータをダウンロード する。コマンド p a を実行した状態になる。 p {a|t} ROMエミュレーターのバスバッファーの方向を切り換える。 a:RAMをPC側に繋ぐ。RESET 信号が出力される。 t:RAMをターゲット側に繋ぐ。RESET 信号は出力されない。 h help を表示 ? help を表示 - コマンドを stdin から読み込んで実行する。 stdin のコマンドは - の位置に挿入される。 stdin のコマンドは複数の行に記述できますが、1行毎に評価 されるのでコマンドと引数の間には改行を入れてはいけません。 1行の長さは、1023バイト以内にして下さい。 ・コマンドは1文字のアルファベットです。 いくつかのコマンドは引数が必要です。 ・コマンドや引数はスペースで区切って下さい。 f i e を fie とすると i と e は評価されません。 ・コマンドは、左から順番に実行されます。 C:>romem f i r intel.hex f m w motorora.hex を実行すると、 f i : Intel-HEX フォーマットを指定 r intel.hex : ファイル "intel.hex" を読み込む f m : Motorora-S フォーマットを指定 w motorora.hex : ファイル "motorora.hex" に書き込む の順番で実行されるので Intel-HEX フォーマットのファイルをMotorora-S フォーマットのファイルに変換して書き込むことになります。 ・コマンド - (stdin からコマンドを読み込む)と r コマンドの引数 - (stsin からデータを読み込む)は、両方を指定することはできません。 また、2回以上指定することは出来ません。 w コマンドの引数 - (stdout にデータを書き込む)は、2回以上指定することは 出来ません。 r コマンドと w コマンドの引数 - を使用する時は、ファイルのフォーマットに Binary を指定出来ません。 Binary フォーマットの時には、- はファイル名になります。 §5 免責事項 ・作者は、この回路及びプログラムの動作は保証致しません。 また、この回路及びプログラムを使用した結果について一切の責任を負いません。 自分の責任において作成,使用して下さい。 ・作者は、不具合等を修正する義務を負いません。 しかし、レポートされたバグについては、余裕があれば考慮します。 §6 使用条件 ・このプログラム及び添付されたファイルは、フリーウェア(フリーハード)です。 著作権は作者に有ります。 個人での使用、他の場所への転載や配布の制限は有りません。 転載や配布をする場合には、アーカイブの内容に変更を加えないで下さい。 又、バージョンアップ等のフォローをお願いします。 ・配布する際にはメディア代等の必要経費以上の金銭の授受を禁止します。 ・個人で使用する場合には、ソースの利用や改造も制限しません。 改造したものを配布する場合はフリーウェアとして下さい。 オリジナルのファイルも添付し、私の著作権表示を消さないで下さい。 改造された物に対してもこの使用条件が適用されるものとします。 ・シェアウェアや営利目的の為に、このプログラム,回路,データ等の全て又は一部を 使用する事を禁止します。 ・バグ等を見つけた方は、レポートをお願いします。 §7 補足 ・CEは岡田仁史氏による回路図エディタです。 BIDは下間憲行氏によるユーティリティです。 これらのソフトをフリーウェアとして公開して下さっている両氏にこの場を借りて お礼を申し上げます。 Nifty Serve QFF03672 津田哲郎 (DSA)