[[[ Z80 disassembler "zdis" MS-DOS version 1.64 for PI-ET1 ]]] Z80 逆アセンブラです。 1. はじめに 電子手帳のソフトの中にはソースリストを公開していないものもありますが、 そんなソフトの中身を見たいと思ったのがこのソフトを作成したきっかけです。 2. 特徴 RST命令を、BCALL / LEA / BRA / BSR / SYS 疑似命令の命令語として逆アセン ブルします。 RST 20HがLEAやBRAに当てはまらない場合には、PUSHEAという命令 語として逆アセンブルします。 ET-BASICで使用されているRST 10Hを、BASとして逆アセンブルします。 インデックスレジスタの上位/下位バイト(IXH,IXL,IYH,IYL)に関する未定義命令 や、その他SLIA AやIN (C)やLD A,RLC(IX+d)などの未定義命令にも対応していま す。 3. 使用法 MS-DOSのコマンドラインから zdis Zファイル または Yファイル と入力します。 例えば、添付のサンプルファイル test_z.et を使用する場合、 zdis test_z.et と入力して下さい。 Zファイル TEST.Z が逆アセンブルされ、test_z.disというファイルに出力 されます。 4. バージョンアップの履歴 version 1.0 92/01/14 初版 version 1.01 92/01/16 相対ジャンプで-128が128になるバグを修正 未定義のコードでアドレスがずれるバグを修正 version 1.1 92/01/23 インデックスレジスタに関する未定義命令をサポート (LD IXL,xx や LD xx,IYH など) version 1.2 92/02/02 (IX+d)に対するビット操作命令が正しく表示されない バグを修正 LD HL,(nn)がLD BC,(nn)と表示されるバグを修正 その他の未定義命令をいくつかサポート version 1.3 92/02/03 (IX+d)に対するビット操作命令が正しく表示されない バグがまだ残っていたのを修正 version 1.31 92/02/04 BSR/BRA/LEAの相対アドレス計算が正しく計算されない バグを修正 version 1.4 92/02/06 SYS命令によるBIOS番号に、BIOSネームをコメントに付 加するよに改良 version 1.5 92/02/15 LD E,IXH / LD E,IXL / LD E,IYH / LD E,IYL が 正しく表示されないバグを修正 version 1.51 92/02/21 LEA IX,xxxx / LEA IY,xxxx が正しく表示されないバ グを修正 version 1.6 92/06/27 ET-BASICコンパイラのオブジェクトに対応 version 1.61 92/06/30 ET-BASICの場合にアイコンデータがあるとうまく認識 しないというバグを修正 version 1.62 92/07/07 IX/IYのディスプレースメントが負数の場合の処理を 忘れていたので、正しく追加した。 version 1.63 92/08/28 未定義命令に関して、IN (HL),(C)からIN (C)など、 いくつかを訂正した。 version 1.64 92/09/11 ET-BASICコンパイラのオブジェクト中のPRINT文の 文字列定数を表示できるようにした。 version 1.0 〜 1.2までは MicrosoftのQuickBASICで作成しました。オブジェク トのサイズがかなり大きくなるのと、実行速度が遅いということで、Cで書き直 しました。その結果、ある程度オブジェクトが小さくなり、実行速度が若干速く なりました。 QuickBASICのオブジェクトは98でしか動作しないですが、Cで書き直したことで 98以外のMS-DOSマシンでも動かすことができるようにできたと思います。 5. 配布や転載について このプログラムはフリーソフトウェアです。著作権は加古英児が保持します。 いちおう、作者は、このソフトウェアにバグを出さないように努めましたが、 このソフトウェアを利用することで損害が発生しても、作者は免責とします。 配布や転載は、改変せずに、営利を目的とせずに、その他の作者の持つ著作上 の権利を侵害しないようにして、あとは自由に配布や転載して下さい。