/DA61

HD61700 DisAssembler/File converter (unofficial mirror of https://hd61700.yukimizake.net/)

Primary LanguageCOtherNOASSERTION

-------------------------------------------------------------------------
名称      DA61 : HD61700 DISASSEMBLER for Win32 (Rev 0.25)
動作環境  Win95/98/98SE/NT4/2000/XP/VISTA/7/8/10
制作者    あお(QZE12045@nifty.com)
URL       http://hd61700.yukimizake.net/
-------------------------------------------------------------------------
■DA61とは
HD61700用逆アセンブラです。
シンボルラベルの自動生成機能を持つので、JUN AMANO氏のBinToPbf.BAS及び、
添付のBin2AI.B/Bin2PB.B/Bin2VX.Bと組み合わせることで、それなりに使えると思います。
フリーソフトです。添付のSymbol.hを含め好きに使ってください。転載も自由です。
(そのかわり無保証ですが)
#最近は逆アセンブラと言うより、コンバータに近くなってきました。

■特徴
(1)HD61のサポートする全ての命令が逆アセンブル可能です。
(2)以下の拡張子を持つフォーマットを読み込むことが可能です。
   .PBF(PBFファイル)
   .BAS(BASIC DATA文形式)
   .HEX(PJ HEX形式)
   .TXT(ASCII形式 アドレス/チェックサムなし)
   .BIN(バイナリファイル)
   .BMP (Windowsビットマップファイル--モノクロ(2色)画像のみ対応)
(3)Nパス方式によるJR/JP/CAL命令ラベル解析及び、LDW/PRE命令に対する
   データエリア解析を行えます。
   (/S /Dオプション指定にて実行)
   解析により出力されるラベルフォーマットは以下の通りです。
    START ---- 実行開始アドレス
    LBL* ---- JR/JP命令利用ラベル
    MDL* ---- CAL命令利用ラベル
    DAT* ---- LDW/PRE命令利用データラベル
    (* --- 該当ラベルの定義された番地)
(4)DA61と同じフォルダにsymbol.hと言う名称のファイルがあると、
   そこからシンボル情報を読み込むことが出来ます。
   (システム用の固定リソース等を逆アセンブル結果に反映できます)
   書式は、HD61のEQU命令と同じです。
   疑似命令として、#if~#else~#endifが使えます。
   Symbol.h読み込み中にエラーが発生した場合、以降のシンボル情報の
   読み込みを中止して、逆アセンブルを開始します。
(5)上記/S,/Dによる解析にて判明したエリアは、DB命令フォーマットのリストを
   自動生成します。この機能により、ソースを無くしてしまった実行ファイルも、
   ほぼ自動で修復することが可能となります。(ダメな時もあります)
(6)読み込んだファイルを各種フォーマットに変換する事が可能です。
   サポートする出力フォーマットは、以下の通りです。
   ・PBF形式(BAS/HEXからの変換に利用下さい)
   ・BAS形式(PBF/HEXからの変換に利用下さい)
   ・QL形式(クイックローダ形式:後述)
   ・バイナリ形式(BIN)
   ・ビットマップ形式(BMP)
   ・DB形式(アセンブラのDB命令形式です)
   ・PJ HEX形式(PJ誌掲載 HEX形式)
   ・INTEL HEX形式(8ビット)

■アーカイブ内容
Readme.txt --- このファイルです
Bin2AI.b ----- AI-1000用BIOS吸い出し処理(BASIC+マシン語)
Bin2PB.b ----- PB-1000用BIOS吸い出し処理(BASIC+マシン語)
Bin2PBC.b ---- PB-1000C用BIOS吸い出し処理(BASIC+マシン語)
Bin2FX.b ----- FX-870P/VX-4用BIOS吸い出し処理(BASIC+マシン語)
Bin2VX3.b ---- VX-3用BIOS吸い出し処理(BASIC+マシン語)
bin.s    ----- 上記BIOS吸い出し処理マシン語ソース
DA61.exe ----- HD61700逆アセンブラ実行ファイル
QL.zip   ----- クイックローダ本体(PB-1000/C、FX-870P/VX-4、AI-1000、VX-3用)
Symbol.h ----- シンボル定義ファイルサンプル(PB-1000/PB-1000C/AI-1000/FX-870P/VX-4用)

■起動方法
Windowsのコマンドプロンプトで以下を実行します。

>DA61 [ファイル名.拡張子] [オプション(/S /D /M /LV0 /W /NC /B /DB /BMP /MONO /P /BAS /Q /PJ /HEX /NTAB)省略可][Enter]

実行すると逆アセンブル結果を.lstファイル(または変換結果を.pbf/.bas/.bin/.bmp/.ql/.hex/.hx)に出力します。

■入力ファイル形式
以下のフォーマットが利用可能です。
   .PBF(PBFファイル)
   .BAS(BASIC DATA文形式)
   .HEX(PJ HEX形式)
   .TXT(ASCII形式 アドレス/チェックサムなし)
   .BIN(バイナリファイル)
   .BMP (Windowsビットマップファイル--モノクロ(2色)画像のみ対応)

各ファイル形式は、拡張子名で判別されるため、間違った名称では正しく読み込めません。
(不明ファイルは、バイナリ形式(*.bin)で扱われます)
各ファイル形式と拡張子名は、以下の通りです。
(1) *.PBF --- PBF形式。HD61/BinToPbf出力形式です。
  全てのアドレス情報を持つため、/ADR指定は不要です。

(2) *.BAS --- BASIC DATA文形式(16進2桁 チェックサム付)
  BASIC DATA文形式です。
     1000 DATA D162389377AB02D6,F8
     1010 DATA 40D512D600D402D6,A9
                   :
  アドレス情報を持たないため、/ADRオプションで [開始アドレス] [実行アドレス]  の順で
  アドレスを指定してやる必要があります。
   例) DA61 sample.bas /s /adr 0x7000 0x7018

(3) *.HEX --- PJ HEX形式(アドレス/16進2桁 チェックサム付)
  PJ HEX形式とは、以下のようなPJ誌に掲載されているHEX形式を指します。
  アドレス/データ/チェックサムの区切りは、コロン[:]または、カンマ[,]、スペースが使えます。
     2A65 6200C0D6001C2E77,B9
     2A6D 7C2AD16200FFD600,AE
                :
  /ADRオプションで [実行アドレス] を指定することが可能です。(/ADR 省略も可能です)
   例) DA61 sample.hex /s /adr 0x7018

(4) *.TXT --- ASCII形式(アドレス/チェックサム無し)
  TXTは、以下のようにデータ内容がASCII形式になっているファイルです。
  データのみで、アドレス/チェックサム情報は持っていません。
     40D512D600D402D6
     20E502D8D6409513
            :
     D600E602D620F702
   /ADRオプションで [開始アドレス] [実行アドレス] を指定してやる必要があります。
   例) DA61 sample.txt /s /adr 0x7000 0x7018

(5) *.BIN --- バイナリ形式
  上記(1)~(4)は、ASCII形式ですが、バイナリ形式はメモリデータそのものです。
  データのみで、アドレス/チェックサム情報は持っていませんので、 /ADRオプションで 
  [開始アドレス] [実行アドレス]  の順でアドレスを指定してやる必要があります。
   例) DA61 sample.bin /s /d /adr 0x7000 0x7018

(6) *.BMP --- ビットマップ形式
   Windowsビットマップ画像形式です。
   パソコンで作成した画像をPBFフォーマットに変換してポケコンで利用する事ができます。
   読み込みはモノクロ(2色)フォーマットの画像のみ可能です。
   読み込める画像サイズに特に制限はありませんが、CASIOポケコンでの利用を考えると、
   192×32または、192×64のいずれかで運用するのが最も便利でしょう。
   一応、OS2形式も対応していますが、あまり試験していないので、なるべくWindows形式の
   BMP画像を利用してください。(Photoshop Elementsで作ったOS2形式のBMPでのみ確認)
   /ADRオプションで [開始アドレス] [実行アドレス] を指定することが可能ですが、
   省略してもエラーとはなりません。(アドレス省略時は0番地から格納されます)

■オプションの説明
(1)逆アセンブル用オプション
/S  ---- 実行開始アドレスが指定されている場合、そのアドレスから
         命令解析を開始します。
/D  ---- 上記/Sオプション指定時にLDW/PRE命令に対するデータエリア
         解析を実施します。
         (/D単独では使えません。/Sと併用する必要があります)
/M  ---- 1パス目で検出したMDLラベルアドレスを命令のデコードより優先します。
         動作としては2パス目以降、命令語長内のアドレスに1パス目で検出したMDL*ラベルが
         ある場合、命令のデコード(逆アセンブル)を中断(DBに置換)して、MDLラベル以降の
         逆アセンブル動作を再開します。
         説明:データとコードが混在するプログラムの場合、データ領域を逆アセンブルして
              しまう等の誤った解析が発生する場合に、MDLラベル解析結果を優先することで
              データに埋もれた 実行コードを掘り出します。
              /S、/Dオプションと併用かつ、/mオプション有り/無しの結果を比較して隠れた
              コードを探すといった、補助的な使い方を想定しています。
/LV0 --- 最適化レベルを0に戻して、特定インデックスレジスタ(SX/SY/SZ)表示に切り替えます。
         デフォルトは、SX=$31、SY=$30、SZ=$0 固定にて表示されます。
/W  ---- 16ビットアドレッシングにて逆アセンブルします。
         内蔵ROMイメージ用オプションです。
/NC ---- 逆アセンブル時にアドレス及びコードの出力を行いません。
         ソースのみ出力します。(ソース修復専用です)
/NTAB -- リスト出力にTABを使用しません。デフォルトはTAB=8で出力されます。
         (Rev 0.10以降対応)

解析アルゴリズムはかなり適当なものなので、正確にコードエリアとデータエリアを
分離できるとは限りません。上手く行かない可能性も多くあります。
特にBIOS内の処理の様な命令コードとデータエリアが混在するコードには/Dオプションは
全く使えないと思った方が良いです。

(2)データ変換用オプション
/P  ---- 入力されたファイルをPBF形式で出力します。
/BAS --- 入力されたファイルをBAS(BASIC DATA文)形式で出力します。
/Q  ---- 入力されたファイルをQL(クイックローダ用)の形式で出力します。
/DB ---- 入力されたファイルをDB命令フォーマットで出力します。
         /NCオプションとの併用が可能です。
/B  ---- 入力されたファイルをバイナリ形式で出力します。
         出力されるファイルの拡張子は.binとなります。
/BMP (開始アドレス)  ---- 入力されたファイルをビットマップ形式(192×32/192×64)で
         出力します。出力されるファイルの拡張子は.bmpとなります。
         /bmp [開始アドレス] とすると、その物理アドレスからビットマップを作製します。
         開始アドレスは、10進数または16進数(先頭に0xを付ける)指定が可能です。
         画面のスクリーンショット等を撮るのに使ってください。
    (例)>DA61 Graphic.pbf /bmp 0x7010
/MONO (開始アドレス)  ---- 入力されたファイルをビットマップ形式(192×32/192×64)で
         出力します。出力されるファイルの拡張子は.bmpとなります。
         /BMPとほぼ同じ動作ですが、出力される画像がLCD画面風になります。
         (スミマセン。パレット色はかなり適当です。)
/PJ ---- 入力されたファイルをPJ HEXフォーマット(拡張子.hex/.hx)で出力します。※
/HEX --- 入力されたファイルをINTEL HEXフォーマット(拡張子.hex/.hx)で出力します。※
         ※入力ファイルの拡張子が.hexだった場合、出力ファイルの拡張子を.hxとします。

これらデータ変換用のオプションを選択すると、逆アセンブルは行わず終了します。
また、データ変換用オプションを複数指定した場合、最後に指定したオプションのみ有効となります。

(3)アドレス指定用オプション
/ADR (アドレス1) (アドレス2) ---- BAS/HEX/BIN/TXT形式のファイルを読み込むときに、
         逆アセンブル開始アドレス/実行開始アドレス等を指定します。
         入力がPBFファイル時には無視されます。

■クイックローダ(QL)形式ファイルについて
 オプション /Q にて生成される*.ql形式のファイルは、添付の高速ローダサブルーチンにて利用
可能な形式です。この高速ローダはDEFCHR命令を使って高速に読み込むので通常のDATA文による
読み出しの10倍程度高速にロードすることが可能です。(BIN2ai.b/BIN2pb.b/BIN2fx.b/BIN2vx3.b
で使っているのと同じ方法です)

以下の手順で利用下さい。
(1)HD61 にて/p オプション付きでアセンブルしてPBFファイルを作製する。
(2)DA61 [pbfファイル名] /q [Enter] として、QL形式のファイルに変換します。
  (*.qlファイルが出力されます)
(3)作製したファイル内容に添付のQL.aip内のQLpb.b(PB-1000/C用)/QLfx.b(FX-870P/VX-4用)/
  QLai.b(AI-1000用)/QLvx3.b(VX-3用)の内容をヘッダとして張り付けて、BASICサブルーチンと
  して利用します。
(4)任意のプログラムから、GOSUB900を実行すると、目的のエリアにマシン語がロードできます。

注意:本ローダはマシン語エリアのチェックを全くしないので、あらかじめ目的のエリアが
      マシン語用に確保されていない場合の動作は保証されません。(多分、暴走します)
      よって本ローダを利用する場合は、ロード前にあらかじめエリアのチェックをするか、
      BASICシステムが未使用の領域(CALC/FDDBF等)に対してのみ、適用するようにして下さい。
      また、LCD画面エリア先頭(24バイト)を利用しますので、そのアドレスに対するロードは
      利用できません。
      LCD画面アドレスに対するロードを行いたい場合は、上記24バイトのアドレスを避け、
      かつ、980行のCLS命令を削除して利用してください。(少々不便でスミマセン)

■Bin2PB.b/Bin2PBC.b/Bin2FX.b/Bin2AI.b/Bin2VX3.bの使い方
 FX-870P/VX-4、PB-1000/C、AI-1000、VX-3用のBIOS及びRAM内容を吸い出すプログラムを作ってみました。
BANK0、BANK1の任意のアドレスをPBF形式でRS232Cに出力します。
DA61と併用して解析等にご活用下さい。

実行方法(PB-1000C/PB-1000)
 Bin2PB.b --- PB-1000用
 Bin2PBC.b -- PB-1000C用
(1)RS232C通信パラメータを設定(9600,N,8,1)
(2)PBDCを受信状態で待機。
(3)Bin2PB.b/Bin2PBCを実行すると、開始、終了、実行アドレスを聞いてくるので、
それぞれ以下のように入力します。
   START ADR=&H8000[EXE]
   END ADR=&HFFFF[EXE]
   EXEC ADR=&H8DE2[EXE]
(4)入力完了すると、データ送信を開始します。
(5)送信完了にてComplete!を表示して、BEEP音をならして終了します。
10行目のPOKE文を有効にすると、&H8000~指定時にBANK1(RAM)の内容を吸い出します。

実行方法(FX-870P/VX-4)
(1)PBDCのRS232C通信パラメータを設定(9600,N,8,1)
(2)PBDCを受信状態で待機。
(3)Bin2FX.bを実行すると、開始、終了、実行アドレスを聞いてくるので、
それぞれ以下のように入力します。
   START ADR=&HC00[EXE]
   END ADR=&HFFFF[EXE]
   EXEC ADR=&HEBB[EXE]
(4)入力完了すると、データ送信を開始します。
(5)送信完了にてComplete!を表示して、BEEP音をならして終了します。

25行目のPOKE文を有効にすると、BANK1(RAM)の内容を吸い出します。
(POKEするパラメータを変更すると各BANKをアクセスします。
例:BANK1=&H10、BANK2=&H20、BANK3=&H30)

実行方法(AI-1000)
(1)PBDCのRS232C通信パラメータを設定(9600,N,8,1)
(2)PBDCを受信状態で待機。
(3)Bin2AI.bを実行すると、開始、終了、実行アドレスを聞いてくるので、
それぞれ以下のように入力します。
   START ADR=&HC00[EXE]
   END ADR=&HFFFF[EXE]
   EXEC ADR=&HD80[EXE]
(4)入力完了すると、データ送信を開始します。
(5)送信完了にてComplete!を表示して、BEEP音をならして終了します。

25行目のPOKE文を有効にすると、BANK1(RAM)の内容を吸い出します。
(POKEするパラメータを変更すると各BANKをアクセスします。
例:BANK1=&H10、BANK2=&H20、BANK3=&H30)

実行方法(VX-3)
(1)PBDCのRS232C通信パラメータを設定(9600,N,8,1)
(2)PBDCを受信状態で待機。
(3)Bin2VX3.bを実行すると、開始、終了、実行アドレスを聞いてくるので、
それぞれ以下のように入力します。
   START ADR=&HC00[EXE]
   END ADR=&HFFFF[EXE]
   EXEC ADR=&HEB2[EXE]
(4)入力完了すると、データ送信を開始します。
(5)送信完了にてComplete!を表示して、BEEP音をならして終了します。

25行目のPOKE文を有効にすると、BANK1(RAM)の内容を吸い出します。
(POKEするパラメータを変更すると各BANKをアクセスします。
例:BANK1=&H10、BANK2=&H20、BANK3=&H30)

■ 参考文献
1. 「KC-Disasembler」 こたちゃん氏  ポケコンジャーナル1990/8
2.「X-Assembler Ver.6」N.Hayashi(はっくん)氏  ポケコンジャーナル 1995/2
   (Symbol.hは、FX-870P.SRCを元に作成しました)
3. 「バイナリファイル←→テキスト変換プログラム」 JUN AMANO 氏
   (「CASIO PB-1000 Forever!」 URL: http://www.lsigame.com/)
4.「HD61700未公開命令の解析(PSR/GSR/GFLW/GPOW 他多数)」Miyura氏 2006/8
5.「HD61700未公開命令の解析(JP($)/LDL/LDLW/LDLM)」Piotr Piatek氏 2006/9
6.「HD61_DIS.EXE」Piotr Piatek氏 2006/9
   ( http://www.pisi.com.pl/piotr433/index.htm )
7.「IB(旧TS)レジスタの解析」Miyura氏/Piotr Piatek氏 2007/2
8.「HD61700DASM」HD61700逆アセンブラ YKS氏 2020/9
   (「CASIO PB-1000 Forever!」 URL: http://www.lsigame.com/)

■あとがき
 HD61開発も一段落して、命令デコード処理の習作およびシステム解析用として作ってみました。
 一応、ソースコードも公開しておきますので、好きなように改造してみてください。
 ( http://hd61700.yukimizake.net/ )
 と言うわけで、ほとんど出番がないツールかと思いますが、皆さんのお役に立てれば幸いです。

 @あお

2007/02/25 追記。
 Miyuraさん及び、Piotr氏によりIB(旧TS)レジスタの機能が判明したのを受け、DA61、HD61共に
 修正いたしました。今回の修正でHD61700のニモニックは、ほぼ確定したと考えています。

2020/09/19 追記。
 HD61700逆アセンブラの新作がYKS氏により「CASIO PB-1000 Forever!」で公開されました!
 Win32ネイティブでかつGUI対応と言うことで使ってみたところ非常によくできており、かつ
 なんとDA61のバグ(HD61の反映漏れ)まで見つけてしまいました。(おぃ)
 という訳で個人的に解析で利用していたRev.24と併せてRev.25として修正しました。

■ 履歴
Rev : 0.01  2003.04.09  最初のバージョン(JR/JP/CAL命令を対象にラベル出力付きで動作)
Rev : 0.02  2003.04.10  CAL命令にて呼ばれたラベルをMDL*として格納する様に修正。
                        命令解析処理の強化。LDW,PRE命令ラベル解析に対応。
Rev : 0.03  2003.04.14  シンボルの読み込み機能を強化(#if~#else~#endifサポート)
                        BIOS読み出し用処理(Bin2PB.b/Bin2VX.b)を添付開始。
Rev : 0.04  2003.04.15  バイナリ出力機能を追加。(/Bにて指定)
                        (って何に使うんでしょう?)
Rev : 0.04a 2003.04.20  PB-1000修理完了記念。(おい) Symbol.hファイルを更新。
                        #DA61.exeは変更していません。
Rev : 0.05  2003.04.22  /NCオプションによるソース出力を追加。
                        /Sオプション単体動作を改良。
                        データ部が先頭にある場合にデータ出力できるようにした。
Rev : 0.06  2003.04.26  TS(未公開:タイマ制御系レジスタ?)を追加(PST/GST命令にて有効)
Rev : 0.07  2003.05.21  ビットマップ出力用に/BMPオプションを追加。
                        DB命令フォーマット出力用に/DBオプションを追加。
Rev : 0.08  2003.05.23  入力ファイル形式の追加。(.bas/.hex/.bin/.txt)
                        /ADRオプションをサポート。PBF出力を追加。(/pオプション)
Rev : 0.09  2003.06.29  /BAS /Qオプション追加。それぞれBAS、QL形式出力をサポート。
                        クイックローダ(PB-1000/C,FX-870P/VX-4用)を添付開始。
Rev : 0.10  2003.07.25  BMP(モノクロ2色)形式読み込みをサポート。
                        /BMP指定時に入力データサイズに従って出力サイズ(192×32/192×64)を
                        切り替えるようにした。
                        リストをTAB=8指定で出力するようにした。
                        従来通りのリスト出力用に/NTABオプションを追加。
                        コマンドラインオプション指定時の怪しい動作を修正。
                        Symbol.hにAI-1000用のシンボル定義を追加。
                        BIN2ai.b(BIOS DUMP)、QLai.b(クイックローダ)を添付開始。
Rev : 0.11  2003.07.26  BMP形式読み込み処理の改良。きちんとパレットを比較するようにした。
                        OS2/BMP形式の真面目な対応。(それでも怪しい?)
Rev : 0.12  2003.07.29  コマンドライン処理をさらに修正。
                        .BAS/.TXT/.HEXファイル入力時の終了アドレスを補正(-1)。
Rev : 0.12a 2003.08.07  Symbol.hのAI-1000用定義を一部修正/追加。
                        #DA61.exeは変更していません。
Rev : 0.13  2003.10.26  BMP読み込み時にバッファオーバーを起こす場合があるのを修正。
                        BMP出力時にLCD画面風の色合いで出力できるモードを追加(/mono指定)
                        Symbol.hのPB-1000/C/FX-870P(VX-4)/AI-1000用定義を修正/追加。
                        #実は、Symbol.h更新の方がメインかも?
Rev : 0.14  2003.11.21  /pj(PJ HEX形式出力)および、/hex(INTEL 8bit HEX形式)出力を追加。
                        INTEL HEXの読み込みは、あまり需要がなさそうなので今回は入れていません。
Rev : 0.14a 2003.11.28  VX-3対応。Bin2VX3.b/QLvx3.bを添付開始。Symbol.hにVX-3記述を追加。
Rev : 0.14b 2003.12.03  QLvx3.bを一部修正。(スミマセン)
                        #DA61.exeは変更していません。
Rev : 0.15  2006.06.10  バグFix版。
                        特定の解像度のビットマップ(bmp)しか読み込めなかったのを修正。
                        Symbol.h読み込みを逆アセンブル出力時以外は禁止にした。
                        /db出力を修正。その他細かいバグ修正。
                        Symbol.hを更新。(6/24)
Rev : 0.15a 2006.07.23  Symbol.hを更新。英語版のドキュメントを添付。ソースコードを公開。
Rev : 0.16  2006.07.28  PBF,BAS,QL出力時にバイナリ指定だったのを修正。
                        シンボルラベル自動生成時の名称を、通し番号からアドレスへ変更。
                        DOS用のコンパイルオプションを追加。
Rev : 0.17  2006.08.05  ビットマップ読み込み処理を修正。
Rev : 0.18  2006.08.28  未公開命令を追加。
                        (PSR/GSR系、LDC系、SNL系、ST IM8,$、TRP IM8)
                        特定レジスタ( $(SX/SY/SZ) )表示に対応。
                        オプション(/lv0)にて切り替え可能です。
Rev : 0.19  2006.09.04  オペコード(DFH) JP ($)に対応。
                        従来のJP ($) は、JP $ へ変更となります。
Rev : 0.20  2006.09.09  SNL命令の動作が判明した(LCDデータ読みだし)ため、ニモニックを修正。
                        SNL --> LDL(LoaD data from Lcd)
Rev : 0.21  2006.09.29  /Wオプションを追加。16ビットアドレッシングに対応。
Rev : 0.22  2006.11.06  細かいバグを修正。(特定のラベル演算で発生)
Rev : 0.23  2007.02.25  レジスタ名称を修正(TS→IB)
Rev : 0.24  2008.05.25  /Mオプション追加。シンボルラベル解析処理の改良。
                        逆アセンブルした命令語中にMDL*ラベルがある場合、該当ラベル直前
                        までのコードをDB命令に変換し、該当ラベル以降、逆アセンブルを
                        再開するよう処理を修正しました。(BIOS解析等の補助用です)
Rev : 0.25  2020.09.19  命令コード(0xD2~0xDB)に対しJump拡張を禁止。
                        (DIDM,DIUM,BYDM,BYUM,INVM,CMPM)