1: //======================================================================================== 2: // Disassembler.java 3: // en:Disassembler 4: // ja:逆アセンブラ 5: // Copyright (C) 2003-2025 Makoto Kamada 6: // 7: // This file is part of the XEiJ (X68000 Emulator in Java). 8: // You can use, modify and redistribute the XEiJ if the conditions are met. 9: // Read the XEiJ License for more details. 10: // https://stdkmd.net/xeij/ 11: //======================================================================================== 12: 13: package xeij; 14: 15: import java.lang.*; //Boolean,Character,Class,Comparable,Double,Exception,Float,IllegalArgumentException,Integer,Long,Math,Number,Object,Runnable,SecurityException,String,StringBuilder,System 16: 17: public class Disassembler { 18: 19: public static final String[] DIS_SZ = { ".b", ".w", ".l" }; 20: 21: public static final String[] DIS_CC = { 22: "t", "f", "hi", "ls", "cc", "cs", "ne", "eq", "vc", "vs", "pl", "mi", "ge", "lt", "gt", "le", 23: }; 24: 25: public static final String[] DIS_RCNAME_0XX = { 26: "sfc", //0x000 source function code 27: "dfc", //0x001 destination function code 28: "cacr", //0x002 cache control register 29: "tc", //0x003 mmu translation control register 30: //"asid", //0x003 address space identifier register (ColdFire) 31: "itt0", //0x004 instruction transparent translation register 0 32: //"acr0", //0x004 access control register 0 33: "itt1", //0x005 instruction transparent translation register 1 34: //"acr1", //0x005 access control register 1 35: "dtt0", //0x006 data transparent translation register 0 36: //"acr2", //0x006 access control register 2 37: "dtt1", //0x007 data transparent translation register 1 38: //"acr3", //0x007 access control register 3 39: "buscr", //0x008 bus control register 40: //"mmubar", //0x008 mmu base address register 41: }; 42: public static final String[] DIS_RCNAME_8XX = { 43: "usp", //0x800 user stack pointer 44: "vbr", //0x801 vector base register 45: "caar", //0x802 cache address register 46: "msp", //0x803 master stackpointer 47: "isp", //0x804 interrupt stack pointer 48: "mmusr", //0x805 mmu status register 49: "urp", //0x806 user root pointer 50: "srp", //0x807 supervisor root pointer 51: "pcr", //0x808 processor configuration register 52: //"pc", //0x80f program counter 53: //"rombar0", //0xc00 rom base address register 0 54: //"rombar1", //0xc01 rom base address register 1 55: //"rambar0", //0xc04 ram base address register 0 56: //"rambar1", //0xc05 ram base address register 1 57: //"mpcr", //0xc0c multiprocessor control register 58: //"edrambar", //0xc0d embedded dram base address register 59: //"secmbar", //0xc0e secondary module base address register 60: //"mbar", //0xc0f primary module base address register 61: //"pcr1u0", //0xd02 32 msbs of ram 0 permutation control register 1 62: //"pcr1l0", //0xd03 32 lsbs of ram 0 permutation control register 1 63: //"pcr2u0", //0xd04 32 msbs of ram 0 permutation control register 2 64: //"pcr2l0", //0xd05 32 lsbs of ram 0 permutation control register 2 65: //"pcr3u0", //0xd06 32 msbs of ram 0 permutation control register 3 66: //"pcr3l0", //0xd07 32 lsbs of ram 0 permutation control register 3 67: //"pcr1u1", //0xd0a 32 msbs of ram 1 permutation control register 1 68: //"pcr1l1", //0xd0b 32 lsbs of ram 1 permutation control register 1 69: //"pcr2u1", //0xd0c 32 msbs of ram 1 permutation control register 2 70: //"pcr2l1", //0xd0d 32 lsbs of ram 1 permutation control register 2 71: //"pcr3u1", //0xd0e 32 msbs of ram 1 permutation control register 3 72: //"pcr3l1", //0xd0f 32 lsbs of ram 1 permutation control register 3 73: }; 74: 75: //IOCSコール名(0x00~0xff) 76: public static final String[] DIS_IOCS_NAME = ( 77: "_B_KEYINP," + //0x00 キー入力(入力があるまで待つ,入力したデータはバッファから取り除く) 78: "_B_KEYSNS," + //0x01 キーセンス(入力がなくても待たない,入力したデータをバッファから取り除かない) 79: "_B_SFTSNS," + //0x02 シフトキーとLEDの状態の取得 80: "_KEY_INIT," + //0x03 キーボードインタフェイスの初期化 81: "_BITSNS," + //0x04 キーの押し下げ状態の取得 82: "_SKEYSET," + //0x05 キー入力エミュレーション 83: "_LEDCTRL," + //0x06 キーボードのLEDの状態をまとめて設定 84: "_LEDSET," + //0x07 キーのLEDを再設定する 85: "_KEYDLY," + //0x08 キーリピートのディレイタイム設定 86: "_KEYREP," + //0x09 キーリピートのインターバル設定 87: "_OPT2TVON," + //0x0a OPT.2キーによるテレビコントロールを許可 88: "_OPT2TVOFF," + //0x0b OPT.2キーによるテレビコントロールを禁止 89: "_TVCTRL," + //0x0c テレビコントロール 90: "_LEDMOD," + //0x0d キーのLEDを設定 91: "_TGUSEMD," + //0x0e 画面の使用状態の取得と設定 92: "_DEFCHR," + //0x0f フォントパターン設定 93: "_CRTMOD," + //0x10 画面モードの取得と設定 94: "_CONTRAST," + //0x11 コントラストの取得と設定 95: "_HSVTORGB," + //0x12 HSVからRGBを求める 96: "_TPALET," + //0x13 テキストパレットの取得と設定 97: "_TPALET2," + //0x14 テキストパレットの取得と設定(全色独立) 98: "_TCOLOR," + //0x15 テキスト表示プレーンの設定 99: "_FNTADR," + //0x16 フォントアドレスの取得 100: "_VRAMGET," + //0x17 VRAMからバッファへバイト単位で転送 101: "_VRAMPUT," + //0x18 バッファからVRAMへバイト単位で転送 102: "_FNTGET," + //0x19 フォントパターンの取得 103: "_TEXTGET," + //0x1a テキストVRAMからバッファへドット単位で転送 104: "_TEXTPUT," + //0x1b バッファからテキストVRAMへドット単位で転送 105: "_CLIPPUT," + //0x1c バッファからテキストVRAMへドット単位で転送(クリッピングあり) 106: "_SCROLL," + //0x1d テキスト/グラフィックスのスクロール位置の取得と設定 107: "_B_CURON," + //0x1e テキストカーソルON 108: "_B_CUROFF," + //0x1f テキストカーソルOFF 109: "_B_PUTC," + //0x20 テキスト1文字表示 110: "_B_PRINT," + //0x21 テキスト文字列表示 111: "_B_COLOR," + //0x22 テキストカラーコード設定 112: "_B_LOCATE," + //0x23 テキストカーソル位置設定 113: "_B_DOWN_S," + //0x24 テキストカーソルを下へ1行移動(移動できないときスクロールする) 114: "_B_UP_S," + //0x25 テキストカーソルを上へ1行移動(移動できないときスクロールする) 115: "_B_UP," + //0x26 テキストカーソルを上へn行移動(移動できないときはエラー) 116: "_B_DOWN," + //0x27 テキストカーソルを下へn行移動(移動できないときは最下行で止まる) 117: "_B_RIGHT," + //0x28 テキストカーソルをn桁右へ移動(移動できないときは右端で止まる) 118: "_B_LEFT," + //0x29 テキストカーソルをn桁左へ移動(移動できないときは左端で止まる) 119: "_B_CLR_ST," + //0x2a テキスト画面クリア(クリアする範囲を選択) 120: "_B_ERA_ST," + //0x2b テキスト行クリア(クリアする範囲を選択) 121: "_B_INS," + //0x2c テキストカーソル行から下にn行空行を挿入 122: "_B_DEL," + //0x2d テキストカーソル行からn行削除 123: "_B_CONSOL," + //0x2e テキスト表示範囲を設定 124: "_B_PUTMES," + //0x2f テキスト画面の指定位置に文字列表示 125: "_SET232C," + //0x30 RS-232C通信モードと通信速度の取得と設定 126: "_LOF232C," + //0x31 RS-232C受信バッファ内のデータ数の取得 127: "_INP232C," + //0x32 RS-232C受信(受信があるまで待つ,受信バッファから取り除く) 128: "_ISNS232C," + //0x33 RS-232C受信センス(受信がなくても待たない,受信バッファから取り除かない) 129: "_OSNS232C," + //0x34 RS-232C送信ステータスチェック 130: "_OUT232C," + //0x35 RS-232C送信(送信可能になるまで待つ) 131: "_MS_VCS," + //0x36 マウス受信データ処理の設定 132: "_EXESC," + //0x37 拡張ESCシーケンス処理ルーチンの設定 133: "_CHR_ADR," + //0x38 外字フォントアドレスの設定 134: "_SETBEEP," + //0x39 BEEP処理の設定 135: "_SETPRN," + //0x3a プリンタ環境の設定 136: "_JOYGET," + //0x3b ジョイスティックの状態の取得 137: "_INIT_PRN," + //0x3c プリンタ初期化 138: "_SNSPRN," + //0x3d プリンタ出力センス 139: "_OUTLPT," + //0x3e プリンタ出力(LPT) 140: "_OUTPRN," + //0x3f プリンタ出力(PRN) 141: "_B_SEEK," + //0x40 シーク 142: "_B_VERIFY," + //0x41 ベリファイ 143: "_B_READDI," + //0x42 診断のための読み出し 144: "_B_DSKINI," + //0x43 FDインタフェイスの初期化 145: "_B_DRVSNS," + //0x44 ディスクのステータスを取得 146: "_B_WRITE," + //0x45 ディスクに書き出し 147: "_B_READ," + //0x46 ディスクから読み込み 148: "_B_RECALI," + //0x47 トラック0へのシーク 149: "_B_ASSIGN," + //0x48 代替トラックの設定 150: "_B_WRITED," + //0x49 破損データの書き込み 151: "_B_READID," + //0x4a ID情報を読む 152: "_B_BADFMT," + //0x4b バッドトラックを使用不能にする 153: "_B_READDL," + //0x4c 破損データの読み込み 154: "_B_FORMAT," + //0x4d 物理フォーマット 155: "_B_DRVCHK," + //0x4e ドライブの状態の取得と設定 156: "_B_EJECT," + //0x4f イジェクト(未使用シリンダへのシーク) 157: "_DATEBCD," + //0x50 日付を時計にセットできる形式に変換する 158: "_DATESET," + //0x51 時計に日付を設定する 159: "_TIMEBCD," + //0x52 時刻を時計にセットできる形式に変換する 160: "_TIMESET," + //0x53 時計に時刻を設定する 161: "_DATEGET," + //0x54 時計から日付を読み出す 162: "_DATEBIN," + //0x55 日付をBCDからバイナリに変換する 163: "_TIMEGET," + //0x56 時計から時刻を読み出す 164: "_TIMEBIN," + //0x57 時刻をBCDからバイナリに変換する 165: "_DATECNV," + //0x58 日付を表す文字列をバイナリに変換する 166: "_TIMECNV," + //0x59 時刻を表す文字列をバイナリに変換する 167: "_DATEASC," + //0x5a 日付をバイナリから文字列に変換する 168: "_TIMEASC," + //0x5b 時刻をバイナリから文字列に変換する 169: "_DAYASC," + //0x5c 曜日をバイナリから文字列に変換する 170: "_ALARMMOD," + //0x5d アラームの禁止/許可 171: "_ALARMSET," + //0x5e アラーム起動の時間と処理内容の設定 172: "_ALARMGET," + //0x5f アラーム起動の時間と処理内容の取得 173: "_ADPCMOUT," + //0x60 ADPCM再生 174: "_ADPCMINP," + //0x61 ADPCM録音 175: "_ADPCMAOT," + //0x62 アレイチェーンによるADPCM再生 176: "_ADPCMAIN," + //0x63 アレイチェーンによるADPCM録音 177: "_ADPCMLOT," + //0x64 リンクアレイチェーンによるADPCM再生 178: "_ADPCMLIN," + //0x65 リンクアレイチェーンによるADPCM録音 179: "_ADPCMSNS," + //0x66 ADPCMの実行モードセンス 180: "_ADPCMMOD," + //0x67 ADPCMの実行制御 181: "_OPMSET," + //0x68 FM音源レジスタの設定 182: "_OPMSNS," + //0x69 FM音源のステータス取得 183: "_OPMINTST," + //0x6a FM音源割り込み処理ルーチンの設定 184: "_TIMERDST," + //0x6b Timer-D割り込み処理ルーチンの設定 185: "_VDISPST," + //0x6c Timer-A(垂直同期カウント)割り込み処理ルーチンの設定 186: "_CRTCRAS," + //0x6d CRTCラスタ割り込み処理ルーチンの設定 187: "_HSYNCST," + //0x6e 水平同期割り込み処理ルーチンの設定 188: "_PRNINTST," + //0x6f プリンタのレディー割り込み処理ルーチンの設定 189: "_MS_INIT," + //0x70 マウス処理を初期化する 190: "_MS_CURON," + //0x71 マウスカーソルを表示する 191: "_MS_CUROF," + //0x72 マウスカーソルを消去する 192: "_MS_STAT," + //0x73 マウスカーソルの表示状態を取得する 193: "_MS_GETDT," + //0x74 マウスの状態を取得する 194: "_MS_CURGT," + //0x75 マウスカーソルの座標を取得する 195: "_MS_CURST," + //0x76 マウスカーソルの座標を設定する 196: "_MS_LIMIT," + //0x77 マウスカーソルの移動範囲を設定する 197: "_MS_OFFTM," + //0x78 マウスのボタンが離されるまでの時間を計る 198: "_MS_ONTM," + //0x79 マウスのボタンが押されるまでの時間を計る 199: "_MS_PATST," + //0x7a マウスカーソルパターンを定義する 200: "_MS_SEL," + //0x7b マウスカーソルを選ぶ 201: "_MS_SEL2," + //0x7c マウスカーソルアニメーションの設定 202: "_SKEY_MOD," + //0x7d ソフトキーボードの表示モードの取得と設定 203: "_DENSNS," + //0x7e 電卓センス 204: "_ONTIME," + //0x7f 起動後の経過時間(1/100秒単位)を求める 205: "_B_INTVCS," + //0x80 例外処理またはIOCSコールベクタ設定 206: "_B_SUPER," + //0x81 スーパーバイザモード切り替え 207: "_B_BPEEK," + //0x82 メモリ読み出し(1バイト) 208: "_B_WPEEK," + //0x83 メモリ読み出し(1ワード) 209: "_B_LPEEK," + //0x84 メモリ読み出し(1ロングワード) 210: "_B_MEMSTR," + //0x85 メモリ間転送(a1からa2へ) 211: "_B_BPOKE," + //0x86 メモリ書き込み(1バイト) 212: "_B_WPOKE," + //0x87 メモリ書き込み(1ワード) 213: "_B_LPOKE," + //0x88 メモリ書き込み(1ロングワード) 214: "_B_MEMSET," + //0x89 メモリ間転送(a2からa1へ) 215: "_DMAMOVE," + //0x8a DMA転送 216: "_DMAMOV_A," + //0x8b アレイチェーンによるDMA転送 217: "_DMAMOV_L," + //0x8c リンクアレイチェーンによるDMA転送 218: "_DMAMODE," + //0x8d DMA転送中モードの取得 219: "_BOOTINF," + //0x8e 起動情報の取得 220: "_ROMVER," + //0x8f ROMバージョンの取得 221: "_G_CLR_ON," + //0x90 グラフィックス画面の消去とパレット初期化と表示ON 222: "_G_MOD," + //0x91 グラフィックス画面モードの設定 223: "_PRIORITY," + //0x92 画面間およびグラフィックスページ間のプライオリティの設定 224: "_CRTMOD2," + //0x93 画面表示のON/OFFと特殊モードの設定 225: "_GPALET," + //0x94 グラフィックパレットの取得と設定 226: "_PENCOLOR," + //0x95 ペンカラーの設定 227: "_SET_PAGE," + //0x96 グラフィック描画ページの設定 228: "_GGET," + //0x97 グラフィックス画面からパターン読み出し 229: "_MASK_GPUT," + //0x98 グラフィックス画面にパターン書き込み(スルーカラー指定) 230: "_GPUT," + //0x99 グラフィックス画面にパターン書き込み 231: "_GPTRN," + //0x9a グラフィックス画面にビットパターン書き込み 232: "_BK_GPTRN," + //0x9b グラフィックス画面にビットパターン書き込み(バックカラー指定) 233: "_X_GPTRN," + //0x9c グラフィックス画面にビットパターン書き込み(拡大指定) 234: "," + //0x9d 235: "," + //0x9e 236: "," + //0x9f 237: "_SFTJIS," + //0xa0 SJIS→JIS変換 238: "_JISSFT," + //0xa1 JIS→SJIS変換 239: "_AKCONV," + //0xa2 半角(ANK)→全角(SJIS)変換 240: "_RMACNV," + //0xa3 ローマ字かな変換 241: "_DAKJOB," + //0xa4 濁点処理(直前の文字に゛を付ける) 242: "_HANJOB," + //0xa5 半濁点処理(直前の文字に゜を付ける) 243: "," + //0xa6 244: "," + //0xa7 245: "," + //0xa8 246: "," + //0xa9 247: "," + //0xaa 248: "," + //0xab 249: "_SYS_STAT," + //0xac システム環境の取得と設定 250: "_B_CONMOD," + //0xad テキスト画面のカーソルとスクロールの設定 251: "_OS_CURON," + //0xae カーソル表示 252: "_OS_CUROF," + //0xaf カーソル非表示(_B_CURONによる表示も禁止) 253: "_DRAWMODE," + //0xb0 グラフィックス画面の描画モードの取得と設定 254: "_APAGE," + //0xb1 グラフィックス画面の描画ページの取得と設定 255: "_VPAGE," + //0xb2 グラフィックス画面の表示ページの設定 256: "_HOME," + //0xb3 グラフィックス画面のスクロール位置の設定 257: "_WINDOW," + //0xb4 グラフィックス画面のクリッピングエリアを設定する 258: "_WIPE," + //0xb5 グラフィックス画面をパレットコード0で塗り潰す 259: "_PSET," + //0xb6 グラフィックス画面に点を描く 260: "_POINT," + //0xb7 グラフィックス画面の1点のパレットコードを得る 261: "_LINE," + //0xb8 グラフィックス画面に線分を描く 262: "_BOX," + //0xb9 グラフィックス画面に矩形を描く 263: "_FILL," + //0xba グラフィックス画面の矩形塗り潰し 264: "_CIRCLE," + //0xbb グラフィックス画面に円または楕円を描く 265: "_PAINT," + //0xbc グラフィックス画面の閉領域の塗り潰し 266: "_SYMBOL," + //0xbd グラフィックス画面に文字列表示 267: "_GETGRM," + //0xbe グラフィックス画面の読み出し 268: "_PUTGRM," + //0xbf グラフィックス画面の書き込み 269: "_SP_INIT," + //0xc0 スプライトとBGの初期化 270: "_SP_ON," + //0xc1 スプライト表示ON 271: "_SP_OFF," + //0xc2 スプライト表示OFF 272: "_SP_CGCLR," + //0xc3 スプライトパターンのクリア(16×16) 273: "_SP_DEFCG," + //0xc4 スプライトパターンの設定 274: "_SP_GTPCG," + //0xc5 スプライトパターンの取得 275: "_SP_REGST," + //0xc6 スプライトレジスタの設定 276: "_SP_REGGT," + //0xc7 スプライトレジスタの取得 277: "_BGSCRLST," + //0xc8 BGスクロールレジスタの設定 278: "_BGSCRLGT," + //0xc9 BGスクロールレジスタの取得 279: "_BGCTRLST," + //0xca BGコントロールレジスタの設定 280: "_BGCTRLGT," + //0xcb BGコントロールレジスタの取得 281: "_BGTEXTCL," + //0xcc BGテキストのクリア 282: "_BGTEXTST," + //0xcd BGテキストの設定 283: "_BGTEXTGT," + //0xce BGテキストの取得 284: "_SPALET," + //0xcf スプライトパレットの取得と設定 285: "," + //0xd0 286: "," + //0xd1 287: "," + //0xd2 288: "_TXXLINE," + //0xd3 テキスト画面に水平線を描画 289: "_TXYLINE," + //0xd4 テキスト画面に垂直線を描画 290: "_TXLINE," + //0xd5 テキスト画面に直線を描画 291: "_TXBOX," + //0xd6 テキスト画面に矩形の枠を描画 292: "_TXFILL," + //0xd7 テキスト画面に矩形を描画 293: "_TXREV," + //0xd8 テキスト画面の矩形を反転 294: "," + //0xd9 295: "," + //0xda 296: "," + //0xdb 297: "," + //0xdc 298: "," + //0xdd 299: "," + //0xde 300: "_TXRASCPY," + //0xdf テキストラスタブロックコピー 301: "," + //0xe0 302: "," + //0xe1 303: "," + //0xe2 304: "," + //0xe3 305: "," + //0xe4 306: "," + //0xe5 307: "," + //0xe6 308: "," + //0xe7 309: "," + //0xe8 310: "," + //0xe9 311: "," + //0xea 312: "," + //0xeb 313: "," + //0xec 314: "," + //0xed 315: "," + //0xee 316: "," + //0xef 317: "_OPMDRV," + //0xf0 318: "_RSDRV," + //0xf1 319: "_A_JOY," + //0xf2 320: "_MIDI," + //0xf3 321: "," + //0xf4 322: "_SCSIDRV," + //0xf5 323: "," + //0xf6 324: "," + //0xf7 325: "_HIMEM," + //0xf8 326: "," + //0xf9 327: "," + //0xfa 328: "," + //0xfb 329: "," + //0xfc 330: "_ABORTRST," + //0xfd 331: "_IPLERR," + //0xfe 332: "_ABORTJOB" //0xff 333: ).split (",", 256); 334: 335: //DOSコール名(0xff00~0xffff) 336: public static final String[] DIS_DOS_NAME = ( 337: "_EXIT," + //0xff00 プロセスの終了(終了コード指定なし) 338: "_GETCHAR," + //0xff01 標準入力から1バイト入力(標準出力にエコーバックする) 339: "_PUTCHAR," + //0xff02 標準出力に1バイト出力 340: "_COMINP," + //0xff03 標準シリアル入出力から1バイト入力 341: "_COMOUT," + //0xff04 標準シリアル入出力に1バイト出力 342: "_PRNOUT," + //0xff05 標準プリンタ出力に1バイト出力 343: "_INPOUT," + //0xff06 標準ハンドラへの入出力 344: "_INKEY," + //0xff07 標準入力から1バイト入力(^C,^P,^Nを処理しない) 345: "_GETC," + //0xff08 標準入力から1バイト入力(^C,^P,^Nを処理する) 346: "_PRINT," + //0xff09 標準出力に文字列を出力 347: "_GETS," + //0xff0a 標準入力から文字列を入力(^C,^P,^Nを処理する) 348: "_KEYSNS," + //0xff0b 標準入力から1バイト先読み 349: "_KFLUSH," + //0xff0c 標準入力バッファをフラッシュしてから標準入力から入力 350: "_FFLUSH," + //0xff0d バッファフラッシュ 351: "_CHGDRV," + //0xff0e カレントドライブの変更 352: "_DRVCTRL," + //0xff0f ドライブコントロール 353: "_CONSNS," + //0xff10 標準出力への出力の可・不可を調べる 354: "_PRNSNS," + //0xff11 標準プリンタ出力への出力の可・不可を調べる 355: "_CINSNS," + //0xff12 標準シリアル入出力からの入力の可・不可を調べる 356: "_COUTSNS," + //0xff13 標準シリアル入出力への出力の可・不可を調べる 357: "," + //0xff14 358: "," + //0xff15 359: "," + //0xff16 360: "_FATCHK," + //0xff17 ファイルやディレクトリのFATの繋がりを調べる 361: "_HENDSP," + //0xff18 かな漢字変換ウインドウの表示 362: "_CURDRV," + //0xff19 カレントドライブ番号を得る 363: "_GETSS," + //0xff1a 標準入力から文字列を入力(^C,^P,^Nを処理しない) 364: "_FGETC," + //0xff1b ハンドラから1バイト入力 365: "_FGETS," + //0xff1c ハンドラから文字列を入力 366: "_FPUTC," + //0xff1d ハンドラへ1バイト出力 367: "_FPUTS," + //0xff1e ハンドラへ文字列を出力 368: "_ALLCLOSE," + //0xff1f 実行中のプロセスとその子プロセスがオープンしたハンドラをすべてクローズする 369: "_SUPER," + //0xff20 スーパーバイザモードの切り替え 370: "_FNCKEY," + //0xff21 再定義可能キーの読み込みと設定 371: "_KNJCTRL," + //0xff22 かな漢字変換の制御 372: "_CONCTRL," + //0xff23 コンソール出力の制御 373: "_KEYCTRL," + //0xff24 コンソール入力の制御 374: "_INTVCS," + //0xff25 例外処理ベクタの設定 375: "_PSPSET," + //0xff26 プロセス管理テーブルの作成 376: "_GETTIM2," + //0xff27 時刻を得る(ロングワード) 377: "_SETTIM2," + //0xff28 時刻を設定する(ロングワード) 378: "_NAMESTS," + //0xff29 ファイル名の分解 379: "_GETDATE," + //0xff2a 日付を得る 380: "_SETDATE," + //0xff2b 日付を設定する 381: "_GETTIME," + //0xff2c 時刻を得る(ワード) 382: "_SETTIME," + //0xff2d 時刻を設定する(ワード) 383: "_VERIFY," + //0xff2e verifyのモードの設定 384: "_DUP0," + //0xff2f 標準ハンドラの変換 385: "_VERNUM," + //0xff30 Humanのバージョンの取得 386: "_KEEPPR," + //0xff31 プロセスの常駐終了 387: "_GETDPB," + //0xff32 DPBの取得 388: "_BREAKCK," + //0xff33 breakおよびoffの取得と設定 389: "_DRVXCHG," + //0xff34 ドライブの入れ換え 390: "_INTVCG," + //0xff35 例外処理ベクタの取得 391: "_DSKFRE," + //0xff36 ドライブの空容量の取得 392: "_NAMECK," + //0xff37 ファイル名のチェック 393: "," + //0xff38 394: "_MKDIR," + //0xff39 ディレクトリの作成 395: "_RMDIR," + //0xff3a ディレクトリの削除 396: "_CHDIR," + //0xff3b カレントディレクトリの設定 397: "_CREATE," + //0xff3c 新規ファイルの作成 398: "_OPEN," + //0xff3d ファイルのオープン 399: "_CLOSE," + //0xff3e ハンドラのクローズ 400: "_READ," + //0xff3f ハンドラから指定されたサイズのデータを読み込む 401: "_WRITE," + //0xff40 ハンドラへ指定されたサイズのデータを書き込む 402: "_DELETE," + //0xff41 ファイルの削除 403: "_SEEK," + //0xff42 ハンドラのシーク位置の変更 404: "_CHMOD," + //0xff43 ファイルまたはディレクトリの属性の読み込みと設定 405: "_IOCTRL," + //0xff44 デバイスによるハンドラの直接制御 406: "_DUP," + //0xff45 ハンドラの複製 407: "_DUP2," + //0xff46 ハンドラの複写 408: "_CURDIR," + //0xff47 カレントディレクトリの取得 409: "_MALLOC," + //0xff48 メモリブロックの確保(下位から) 410: "_MFREE," + //0xff49 メモリブロックの開放 411: "_SETBLOCK," + //0xff4a メモリブロックのサイズの変更 412: "_EXEC," + //0xff4b 子プロセスの実行 413: "_EXIT2," + //0xff4c プロセスの終了(終了コード指定あり) 414: "_WAIT," + //0xff4d 子プロセスの終了コードの取得 415: "_FILES," + //0xff4e ディレクトリエントリの検索(最初) 416: "_NFILES," + //0xff4f ディレクトリエントリの検索(次) 417: "_SETPDB," + //0xff50 プロセス管理テーブルの移動 418: "_GETPDB," + //0xff51 プロセス管理テーブルの取得 419: "_SETENV," + //0xff52 環境変数の設定 420: "_GETENV," + //0xff53 環境変数の取得 421: "_VERIFYG," + //0xff54 verifyのモードの取得 422: "_COMMON," + //0xff55 common領域の制御 423: "_RENAME," + //0xff56 ファイル名またはディレクトリ名の変更およびファイルの移動 424: "_FILEDATE," + //0xff57 ハンドラの更新日時の取得と設定 425: "_MALLOC2," + //0xff58 メモリブロックの確保(モード指定あり) 426: "," + //0xff59 427: "_MAKETMP," + //0xff5a テンポラリファイルの作成 428: "_NEWFILE," + //0xff5b 新規ファイルの作成(非破壊) 429: "_LOCK," + //0xff5c ハンドラのロックの制御 430: "," + //0xff5d 431: "," + //0xff5e 432: "_ASSIGN," + //0xff5f 仮想ドライブおよび仮想ディレクトリの取得と設定 433: "," + //0xff60 434: "," + //0xff61 435: "," + //0xff62 436: "," + //0xff63 437: "," + //0xff64 438: "," + //0xff65 439: "," + //0xff66 440: "," + //0xff67 441: "," + //0xff68 442: "," + //0xff69 443: "," + //0xff6a 444: "," + //0xff6b 445: "," + //0xff6c 446: "," + //0xff6d 447: "," + //0xff6e 448: "," + //0xff6f 449: "," + //0xff70 450: "," + //0xff71 451: "," + //0xff72 452: "," + //0xff73 453: "," + //0xff74 454: "," + //0xff75 455: "," + //0xff76 456: "," + //0xff77 457: "," + //0xff78 458: "," + //0xff79 459: "_FFLUSH_SET," + //0xff7a fflushのモードの取得と設定 460: "_OS_PATCH," + //0xff7b Humanの変更 461: "_GET_FCB_ADR," + //0xff7c FCBテーブルの取得 462: "_S_MALLOC," + //0xff7d メインスレッドのメモリ管理からメモリブロックを確保 463: "_S_MFREE," + //0xff7e メインスレッドのメモリ管理からメモリブロックを削除 464: "_S_PROCESS," + //0xff7f サブのメモリ管理の設定 465: "_SETPDB," + //0xff80 プロセス管理テーブルの移動 466: "_GETPDB," + //0xff81 プロセス管理テーブルの取得 467: "_SETENV," + //0xff82 環境変数の設定 468: "_GETENV," + //0xff83 環境変数の取得 469: "_VERIFYG," + //0xff84 verifyのモードの取得 470: "_COMMON," + //0xff85 common領域の制御 471: "_RENAME," + //0xff86 ファイル名またはディレクトリ名の変更およびファイルの移動 472: "_FILEDATE," + //0xff87 ハンドラの更新日時の取得と設定 473: "_MALLOC2," + //0xff88 メモリブロックの確保(モード指定あり) 474: "," + //0xff89 475: "_MAKETMP," + //0xff8a テンポラリファイルの作成 476: "_NEWFILE," + //0xff8b 新規ファイルの作成(非破壊) 477: "_LOCK," + //0xff8c ハンドラのロックの制御 478: "," + //0xff8d 479: "," + //0xff8e 480: "_ASSIGN," + //0xff8f 仮想ドライブおよび仮想ディレクトリの取得と設定 481: "," + //0xff90 482: "," + //0xff91 483: "," + //0xff92 484: "," + //0xff93 485: "," + //0xff94 486: "," + //0xff95 487: "," + //0xff96 488: "," + //0xff97 489: "," + //0xff98 490: "," + //0xff99 491: "," + //0xff9a 492: "," + //0xff9b 493: "," + //0xff9c 494: "," + //0xff9d 495: "," + //0xff9e 496: "," + //0xff9f 497: "," + //0xffa0 498: "," + //0xffa1 499: "," + //0xffa2 500: "," + //0xffa3 501: "," + //0xffa4 502: "," + //0xffa5 503: "," + //0xffa6 504: "," + //0xffa7 505: "," + //0xffa8 506: "," + //0xffa9 507: "_FFLUSH_SET," + //0xffaa fflushのモードの取得と設定 508: "_OS_PATCH," + //0xffab Humanの変更 509: "_GET_FCB_ADR," + //0xffac FCBテーブルの取得 510: "_S_MALLOC," + //0xffad メインスレッドのメモリ管理からメモリブロックを確保 511: "_S_MFREE," + //0xffae メインスレッドのメモリ管理からメモリブロックを削除 512: "_S_PROCESS," + //0xffaf サブのメモリ管理の設定 513: "," + //0xffb0 514: "," + //0xffb1 515: "," + //0xffb2 516: "," + //0xffb3 517: "," + //0xffb4 518: "," + //0xffb5 519: "," + //0xffb6 520: "," + //0xffb7 521: "," + //0xffb8 522: "," + //0xffb9 523: "," + //0xffba 524: "," + //0xffbb 525: "," + //0xffbc 526: "," + //0xffbd 527: "," + //0xffbe 528: "," + //0xffbf 529: "," + //0xffc0 530: "," + //0xffc1 531: "," + //0xffc2 532: "," + //0xffc3 533: "," + //0xffc4 534: "," + //0xffc5 535: "," + //0xffc6 536: "," + //0xffc7 537: "," + //0xffc8 538: "," + //0xffc9 539: "," + //0xffca 540: "," + //0xffcb 541: "," + //0xffcc 542: "," + //0xffcd 543: "," + //0xffce 544: "," + //0xffcf 545: "," + //0xffd0 546: "," + //0xffd1 547: "," + //0xffd2 548: "," + //0xffd3 549: "," + //0xffd4 550: "," + //0xffd5 551: "," + //0xffd6 552: "," + //0xffd7 553: "," + //0xffd8 554: "," + //0xffd9 555: "," + //0xffda 556: "," + //0xffdb 557: "," + //0xffdc 558: "," + //0xffdd 559: "," + //0xffde 560: "," + //0xffdf 561: "," + //0xffe0 562: "," + //0xffe1 563: "," + //0xffe2 564: "," + //0xffe3 565: "," + //0xffe4 566: "," + //0xffe5 567: "," + //0xffe6 568: "," + //0xffe7 569: "," + //0xffe8 570: "," + //0xffe9 571: "," + //0xffea 572: "," + //0xffeb 573: "," + //0xffec 574: "," + //0xffed 575: "," + //0xffee 576: "," + //0xffef 577: "_EXITVC," + //0xfff0 _EXITVC(プロセスが終了したときのジャンプ先のベクタ) 578: "_CTRLVC," + //0xfff1 _CTRLVC(^Cのときのジャンプ先のベクタ) 579: "_ERRJVC," + //0xfff2 _ERRJVC(システムエラーが発生したときのジャンプ先のベクタ) 580: "_DISKRED," + //0xfff3 ハンドラから直接読み込む 581: "_DISKWRT," + //0xfff4 ハンドラに直接書き込む 582: "_INDOSFLG," + //0xfff5 583: "_SUPER_JSR," + //0xfff6 584: "_BUS_ERR," + //0xfff7 585: "_OPEN_PR," + //0xfff8 _OPEN_PR(スレッドが生成されたとき呼ばれるベクタ) 586: "_KILL_PR," + //0xfff9 _KILL_PR(スレッドが消滅したとき呼ばれるベクタ) 587: "_GET_PR," + //0xfffa 588: "_SUSPEND_PR," + //0xfffb 589: "_SLEEP_PR," + //0xfffc 590: "_SEND_PR," + //0xfffd 591: "_TIME_PR," + //0xfffe 592: "_CHANGE_PR" //0xffff _CHANGE_PR(スレッドが切り替わったとき呼ばれるベクタ) 593: ).split (",", 256); 594: 595: //FEファンクションコール名(0xfe00~0xfeff) 596: public static final String[] DIS_FPACK_NAME = ( 597: "__LMUL," + //0xfe00 d0.l*=d1.l 32bit符号あり整数乗算 598: "__LDIV," + //0xfe01 d0.l/=d1.l 32bit符号あり整数除算 599: "__LMOD," + //0xfe02 d0.l%=d1.l 32bit符号あり整数剰余算 600: "," + //0xfe03 601: "__UMUL," + //0xfe04 d0.l*=d1.l 32bit符号なし整数乗算 602: "__UDIV," + //0xfe05 d0.l/=d1.l 32bit符号なし整数除算 603: "__UMOD," + //0xfe06 d0.l%=d1.l 32bit符号なし整数剰余算 604: "," + //0xfe07 605: "__IMUL," + //0xfe08 d0d1.q=d0.l*d1.l 32bit符号なし整数乗算 606: "__IDIV," + //0xfe09 d0.l余りd1.l=d0.l/%d1.l 32bit符号なし整数除算・剰余算 607: "," + //0xfe0a 608: "," + //0xfe0b 609: "__RANDOMIZE," + //0xfe0c 0<=d0.l<=65535 rnd()乱数列の初期化 610: "__SRAND," + //0xfe0d -32768<=d0.l<=32767 rand()乱数列の初期化 611: "__RAND," + //0xfe0e d0.l=rand() 整数乱数 612: "," + //0xfe0f 613: "__STOL," + //0xfe10 d0.l=10進数(a0) 10進数の文字列を32bit符号あり整数に変換する 614: "__LTOS," + //0xfe11 10進数(a0)=d0.l 32bit符号あり整数を10進数の文字列に変換する 615: "__STOH," + //0xfe12 d0.l=16進数(a0) 16進数の文字列を32bit符号なし整数に変換する 616: "__HTOS," + //0xfe13 16進数(a0)=d0.l 32bit符号なし整数を16進数の文字列に変換する 617: "__STOO," + //0xfe14 d0.l=8進数(a0) 8進数の文字列を32bit符号なし整数に変換する 618: "__OTOS," + //0xfe15 8進数(a0)=d0.l 32bit符号なし整数を8進数の文字列に変換する 619: "__STOB," + //0xfe16 d0.=2進数(a0)l 2進数の文字列を32bit符号なし整数に変換する 620: "__BTOS," + //0xfe17 2進数(a0)=d0.l 32bit符号なし整数を2進数の文字列に変換する 621: "__IUSING," + //0xfe18 10進数(a0)桁数d1.b=d0.l 32bit符号あり整数を文字数を指定して右詰めで10進数の文字列に変換する 622: "," + //0xfe19 623: "__LTOD," + //0xfe1a d0d1.d=d0.l 32bit符号あり整数を64bit浮動小数点数に変換する 624: "__DTOL," + //0xfe1b d0.l=d0d1.d 64bit浮動小数点数を32bit符号あり整数に変換する 625: "__LTOF," + //0xfe1c d0.s=d0.l 32bit符号あり整数を32bit浮動小数点数に変換する 626: "__FTOL," + //0xfe1d d0.l=d0.s 32bit浮動小数点数を32bit符号あり整数に変換する 627: "__FTOD," + //0xfe1e d0d1.d=d0.s 32bit浮動小数点数を64bit浮動小数点数に変換する 628: "__DTOF," + //0xfe1f d0.s=d0d1.d 64bit浮動小数点数を32bit浮動小数点数に変換する 629: "__VAL," + //0xfe20 d0d1.d=10進数/&H:16進数/&O:8進数/&B:2進数(a0) 文字列を64bit浮動小数点数に変換する 630: "__USING," + //0xfe21 10進数(a0)整数桁数d2.l小数桁数d3.l属性d4.l=d0d1.d 64bit浮動小数点数をアトリビュートを指定して文字列に変換する 631: "__STOD," + //0xfe22 d0d1.d=10進数(a0) 文字列を64bit浮動小数点数に変換する 632: "__DTOS," + //0xfe23 10進数(a0)=d0d1.d 64bit浮動小数点数を文字列に変換する 633: "__ECVT," + //0xfe24 10進数数字のみ(a0)全体桁数d2.l=d0d1.d 64bit浮動小数点数を全体の桁数を指定して文字列に変換する 634: "__FCVT," + //0xfe25 10進数数字のみ(a0)小数桁数d2.l=d0d1.d 64bit浮動小数点数を小数点以下の桁数を指定して文字列に変換する 635: "__GCVT," + //0xfe26 10進数(a0)全体桁数d2.l=d0d1.d 64bit浮動小数点数を全体の桁数を指定して文字列に変換する 636: "," + //0xfe27 637: "__DTST," + //0xfe28 d0d1.d<=>0 64bit浮動小数点数と0の比較 638: "__DCMP," + //0xfe29 d0d1.d<=>d2d3.d 64bit浮動小数点数の比較 639: "__DNEG," + //0xfe2a d0d1.d=-d0d1.d 64bit浮動小数点数の符号反転 640: "__DADD," + //0xfe2b d0d1.d+=d2d3.d 64bit浮動小数点数の加算 641: "__DSUB," + //0xfe2c d0d1.d-=d2d3.d 64bit浮動小数点数の減算 642: "__DMUL," + //0xfe2d d0d1.d*=d2d3.d 64bit浮動小数点数の乗算 643: "__DDIV," + //0xfe2e d0d1.d/=d2d3.d 64bit浮動小数点数の除算 644: "__DMOD," + //0xfe2f d0d1.d%=d2d3.d 64bit浮動小数点数の剰余算 645: "__DABS," + //0xfe30 d0d1.d=abs(d0d1.d) 64bit浮動小数点数の絶対値 646: "__DCEIL," + //0xfe31 d0d1.d=ceil(d0d1.d) 64bit浮動小数点数の天井関数(引数を下回らない最小の整数) 647: "__DFIX," + //0xfe32 d0d1.d=trunc(d0d1.d) 64bit浮動小数点数の切り落とし関数(絶対値について引数を上回らない最大の整数) 648: "__DFLOOR," + //0xfe33 d0d1.d=floor(d0d1.d) 64bit浮動小数点数の床関数(引数を上回らない最大の整数) 649: "__DFRAC," + //0xfe34 d0d1.d=frac(d0d1.d) 64bit浮動小数点数の幹小数部 650: "__DSGN," + //0xfe35 d0d1.d=signum(d0d1.d) 64bit浮動小数点数の符号 651: "__SIN," + //0xfe36 d0d1.d=sin(d0d1.d) 64bit浮動小数点数の正弦 652: "__COS," + //0xfe37 d0d1.d=cos(d0d1.d) 64bit浮動小数点数の余弦 653: "__TAN," + //0xfe38 d0d1.d=tan(d0d1.d) 64bit浮動小数点数の正接 654: "__ATAN," + //0xfe39 d0d1.d=atan(d0d1.d) 64bit浮動小数点数の逆正接 655: "__LOG," + //0xfe3a d0d1.d=log(d0d1.d) 64bit浮動小数点数の自然対数 656: "__EXP," + //0xfe3b d0d1.d=exp(d0d1.d) 64bit浮動小数点数の指数関数 657: "__SQR," + //0xfe3c d0d1.d=sqrt(d0d1.d) 64bit浮動小数点数の平方根 658: "__PI," + //0xfe3d d0d1.d=pi 64bit浮動小数点数の円周率 659: "__NPI," + //0xfe3e d0d1.d*=pi 64bit浮動小数点数の円周率倍 660: "__POWER," + //0xfe3f d0d1.d=pow(d0d1.d,d2d3.d) 64bit浮動小数点数の累乗 661: "__RND," + //0xfe40 d0d1.d=rnd() 64bit浮動小数点数の乱数 662: "__SINH," + //0xfe41 d0d1.d=sinh(d0d1.d) 64bit浮動小数点数の双曲線正弦 663: "__COSH," + //0xfe42 d0d1.d=cosh(d0d1.d) 64bit浮動小数点数の双曲線余弦 664: "__TANH," + //0xfe43 d0d1.d=tanh(d0d1.d) 64bit浮動小数点数の双曲線正接 665: "__ATANH," + //0xfe44 d0d1.d=atanh(d0d1.d) 64bit浮動小数点数の逆双曲線正接 666: "__ASIN," + //0xfe45 d0d1.d=asin(d0d1.d) 64bit浮動小数点数の逆正弦 667: "__ACOS," + //0xfe46 d0d1.d=acos(d0d1.d) 64bit浮動小数点数の逆余弦 668: "__LOG10," + //0xfe47 d0d1.d=log10(d0d1.d) 64bit浮動小数点数の常用対数 669: "__LOG2," + //0xfe48 d0d1.d=log2(d0d1.d) 64bit浮動小数点数の二進対数 670: "__DFREXP," + //0xfe49 d0d1.d指数部d2.l=d0d1.d 64bit浮動小数点数の分解 671: "__DLDEXP," + //0xfe4a d0d1.d=d0d1.d指数部d2.l 64bit浮動小数点数の合成 672: "__DADDONE," + //0xfe4b d0d1.d++ 64bit浮動小数点数に1を加える 673: "__DSUBONE," + //0xfe4c d0d1.d-- 64bit浮動小数点数から1を引く 674: "__DDIVTWO," + //0xfe4d d0d1.d/=2 64bit浮動小数点数を2で割る 675: "__DIEECNV," + //0xfe4e d0d1.d=d0d1.d 64bit浮動小数点数をIEEEフォーマットに変換する(FLOAT1.X以外は何もしない) 676: "__IEEDCNV," + //0xfe4f d0d1.d=d0d1.d 64bit浮動小数点数をIEEEフォーマットから変換する(FLOAT1.X以外は何もしない) 677: "__FVAL," + //0xfe50 d0.s=10進数/&H:16進数/&O:8進数/&B:2進数(a0) 文字列を32bit浮動小数点数に変換する 678: "__FUSING," + //0xfe51 10進数(a0)整数桁数d2.l小数桁数d3.l属性d4.l=d0.s 32bit浮動小数点数をアトリビュートを指定して文字列に変換する 679: "__STOF," + //0xfe52 d0.s=10進数(a0) 文字列を32bit浮動小数点数に変換する 680: "__FTOS," + //0xfe53 10進数(a0)=d0.s 32bit浮動小数点数を文字列に変換する 681: "__FECVT," + //0xfe54 10進数数字のみ(a0)全体桁数d2.l=d0.s 32bit浮動小数点数を全体の桁数を指定して文字列に変換する 682: "__FFCVT," + //0xfe55 10進数数字のみ(a0)小数桁数d2.l=d0.s 32bit浮動小数点数を小数点以下の桁数を指定して文字列に変換する 683: "__FGCVT," + //0xfe56 10進数(a0)全体桁数d2.l=d0.s 32bit浮動小数点数を全体の桁数を指定して文字列に変換する 684: "," + //0xfe57 685: "__FTST," + //0xfe58 d0.s<=>0 32bit浮動小数点数と0の比較 686: "__FCMP," + //0xfe59 d0.s<=>d1.s 32bit浮動小数点数の比較 687: "__FNEG," + //0xfe5a d0.s=-d0.s 32bit浮動小数点数の符号反転 688: "__FADD," + //0xfe5b d0.s+=d1.s 32bit浮動小数点数の加算 689: "__FSUB," + //0xfe5c d0.s-=d1.s 32bit浮動小数点数の減算 690: "__FMUL," + //0xfe5d d0.s*=d1.s 32bit浮動小数点数の乗算 691: "__FDIV," + //0xfe5e d0.s/=d1.s 32bit浮動小数点数の除算 692: "__FMOD," + //0xfe5f d0.s%=d1.s 32bit浮動小数点数の剰余算 693: "__FABS," + //0xfe60 d0.s=abs(d0.s) 32bit浮動小数点数の絶対値 694: "__FCEIL," + //0xfe61 d0.s=ceil(d0.s) 32bit浮動小数点数の天井関数(引数を下回らない最小の整数) 695: "__FFIX," + //0xfe62 d0.s=trunc(d0.s) 32bit浮動小数点数の切り落とし関数(絶対値について引数を上回らない最大の整数) 696: "__FFLOOR," + //0xfe63 d0.s=floor(d0.s) 32bit浮動小数点数の床関数(引数を上回らない最大の整数) 697: "__FFRAC," + //0xfe64 d0.s=frac(d0.s) 32bit浮動小数点数の幹小数部 698: "__FSGN," + //0xfe65 d0.s=signum(d0.s) 32bit浮動小数点数の符号 699: "__FSIN," + //0xfe66 d0.s=sin(d0.s) 32bit浮動小数点数の正弦 700: "__FCOS," + //0xfe67 d0.s=cos(d0.s) 32bit浮動小数点数の余弦 701: "__FTAN," + //0xfe68 d0.s=tan(d0.s) 32bit浮動小数点数の正接 702: "__FATAN," + //0xfe69 d0.s=atan(d0.s) 32bit浮動小数点数の逆正接 703: "__FLOG," + //0xfe6a d0.s=log(d0.s) 32bit浮動小数点数の自然対数 704: "__FEXP," + //0xfe6b d0.s=exp(d0.s) 32bit浮動小数点数の指数関数 705: "__FSQR," + //0xfe6c d0.s=sqrt(d0.s) 32bit浮動小数点数の平方根 706: "__FPI," + //0xfe6d d0.s=pi 32bit浮動小数点数の円周率 707: "__FNPI," + //0xfe6e d0.s*=pi 32bit浮動小数点数の円周率倍 708: "__FPOWER," + //0xfe6f d0.s=pow(d0.s,d1.s) 32bit浮動小数点数の累乗 709: "__FRND," + //0xfe70 d0.s=rnd() 32bit浮動小数点数の乱数 710: "__FSINH," + //0xfe71 d0.s=sinh(d0.s) 32bit浮動小数点数の双曲線正弦 711: "__FCOSH," + //0xfe72 d0.s=cosh(d0.s) 32bit浮動小数点数の双曲線余弦 712: "__FTANH," + //0xfe73 d0.s=tanh(d0.s) 32bit浮動小数点数の双曲線正接 713: "__FATANH," + //0xfe74 d0.s=atanh(d0.s) 32bit浮動小数点数の逆双曲線正接 714: "__FASIN," + //0xfe75 d0.s=asin(d0.s) 32bit浮動小数点数の逆正弦 715: "__FACOS," + //0xfe76 d0.s=acos(d0.s) 32bit浮動小数点数の逆余弦 716: "__FLOG10," + //0xfe77 d0.s=log10(d0.s) 32bit浮動小数点数の常用対数 717: "__FLOG2," + //0xfe78 d0.s=log2(d0.s) 32bit浮動小数点数の二進対数 718: "__FFREXP," + //0xfe79 d0.s指数部d1.l=d0.s 32bit浮動小数点数の分解 719: "__FLDEXP," + //0xfe7a d0.s=d0.s指数部d1.l 32bit浮動小数点数の合成 720: "__FADDONE," + //0xfe7b d0.s++ 32bit浮動小数点数に1を加える 721: "__FSUBONE," + //0xfe7c d0.s-- 32bit浮動小数点数から1を引く 722: "__FDIVTWO," + //0xfe7d d0.s/=2 32bit浮動小数点数を2で割る 723: "__FIEECNV," + //0xfe7e d0.s=d0.s 32bit浮動小数点数をIEEEフォーマットに変換する(FLOAT1.X以外は何もしない) 724: "__IEEFCNV," + //0xfe7f d0.s=d0.s 32bit浮動小数点数をIEEEフォーマットから変換する(FLOAT1.X以外は何もしない) 725: "," + //0xfe80 726: "," + //0xfe81 727: "," + //0xfe82 728: "," + //0xfe83 729: "," + //0xfe84 730: "," + //0xfe85 731: "," + //0xfe86 732: "," + //0xfe87 733: "," + //0xfe88 734: "," + //0xfe89 735: "," + //0xfe8a 736: "," + //0xfe8b 737: "," + //0xfe8c 738: "," + //0xfe8d 739: "," + //0xfe8e 740: "," + //0xfe8f 741: "," + //0xfe90 742: "," + //0xfe91 743: "," + //0xfe92 744: "," + //0xfe93 745: "," + //0xfe94 746: "," + //0xfe95 747: "," + //0xfe96 748: "," + //0xfe97 749: "," + //0xfe98 750: "," + //0xfe99 751: "," + //0xfe9a 752: "," + //0xfe9b 753: "," + //0xfe9c 754: "," + //0xfe9d 755: "," + //0xfe9e 756: "," + //0xfe9f 757: "," + //0xfea0 758: "," + //0xfea1 759: "," + //0xfea2 760: "," + //0xfea3 761: "," + //0xfea4 762: "," + //0xfea5 763: "," + //0xfea6 764: "," + //0xfea7 765: "," + //0xfea8 766: "," + //0xfea9 767: "," + //0xfeaa 768: "," + //0xfeab 769: "," + //0xfeac 770: "," + //0xfead 771: "," + //0xfeae 772: "," + //0xfeaf 773: "," + //0xfeb0 774: "," + //0xfeb1 775: "," + //0xfeb2 776: "," + //0xfeb3 777: "," + //0xfeb4 778: "," + //0xfeb5 779: "," + //0xfeb6 780: "," + //0xfeb7 781: "," + //0xfeb8 782: "," + //0xfeb9 783: "," + //0xfeba 784: "," + //0xfebb 785: "," + //0xfebc 786: "," + //0xfebd 787: "," + //0xfebe 788: "," + //0xfebf 789: "," + //0xfec0 790: "," + //0xfec1 791: "," + //0xfec2 792: "," + //0xfec3 793: "," + //0xfec4 794: "," + //0xfec5 795: "," + //0xfec6 796: "," + //0xfec7 797: "," + //0xfec8 798: "," + //0xfec9 799: "," + //0xfeca 800: "," + //0xfecb 801: "," + //0xfecc 802: "," + //0xfecd 803: "," + //0xfece 804: "," + //0xfecf 805: "," + //0xfed0 806: "," + //0xfed1 807: "," + //0xfed2 808: "," + //0xfed3 809: "," + //0xfed4 810: "," + //0xfed5 811: "," + //0xfed6 812: "," + //0xfed7 813: "," + //0xfed8 814: "," + //0xfed9 815: "," + //0xfeda 816: "," + //0xfedb 817: "," + //0xfedc 818: "," + //0xfedd 819: "," + //0xfede 820: "," + //0xfedf 821: "__CLMUL," + //0xfee0 (sp).l*=4(sp).l 32bit符号あり整数乗算 822: "__CLDIV," + //0xfee1 (sp).l/=4(sp).l 32bit符号あり整数除算 823: "__CLMOD," + //0xfee2 (sp).l%=4(sp).l 32bit符号あり整数剰余算 824: "__CUMUL," + //0xfee3 (sp).l*=4(sp).l 32bit符号なし整数乗算 825: "__CUDIV," + //0xfee4 (sp).l/=4(sp).l 32bit符号なし整数除算 826: "__CUMOD," + //0xfee5 (sp).l%=4(sp).l 32bit符号なし整数剰余算 827: "__CLTOD," + //0xfee6 (sp).d=(sp).l 32bit符号あり整数を64bit浮動小数点数に変換する 828: "__CDTOL," + //0xfee7 (sp).l=(sp).d 64bit浮動小数点数を32bit符号あり整数に変換する 829: "__CLTOF," + //0xfee8 (sp).s=(sp).l 32bit符号あり整数を32bit浮動小数点数に変換する 830: "__CFTOL," + //0xfee9 (sp).l=(sp).s 32bit浮動小数点数を32bit符号あり整数に変換する 831: "__CFTOD," + //0xfeea (sp).d=(sp).s 32bit浮動小数点数を64bit浮動小数点数に変換する 832: "__CDTOF," + //0xfeeb (sp).s=(sp).d 64bit浮動小数点数を32bit浮動小数点数に変換する 833: "__CDCMP," + //0xfeec (sp).d<=>8(sp).d 64bit浮動小数点数の比較 834: "__CDADD," + //0xfeed (sp).d+=8(sp).d 64bit浮動小数点数の加算 835: "__CDSUB," + //0xfeee (sp).d-=8(sp).d 64bit浮動小数点数の減算 836: "__CDMUL," + //0xfeef (sp).d*=8(sp).d 64bit浮動小数点数の乗算 837: "__CDDIV," + //0xfef0 (sp).d/=8(sp).d 64bit浮動小数点数の除算 838: "__CDMOD," + //0xfef1 (sp).d%=8(sp).d 64bit浮動小数点数の剰余算 839: "__CFCMP," + //0xfef2 (sp).s<=>4(sp).s 32bit浮動小数点数の比較 840: "__CFADD," + //0xfef3 (sp).s+=4(sp).s 32bit浮動小数点数の加算 841: "__CFSUB," + //0xfef4 (sp).s-=4(sp).s 32bit浮動小数点数の減算 842: "__CFMUL," + //0xfef5 (sp).s*=4(sp).s 32bit浮動小数点数の乗算 843: "__CFDIV," + //0xfef6 (sp).s/=4(sp).s 32bit浮動小数点数の除算 844: "__CFMOD," + //0xfef7 (sp).s%=4(sp).s 32bit浮動小数点数の剰余算 845: "__CDTST," + //0xfef8 (sp).d<=>0 64bit浮動小数点数と0の比較 846: "__CFTST," + //0xfef9 (sp).s<=>0 32bit浮動小数点数と0の比較 847: "__CDINC," + //0xfefa (sp).d++ 64bit浮動小数点数に1を加える 848: "__CFINC," + //0xfefb (sp).s++ 32bit浮動小数点数に1を加える 849: "__CDDEC," + //0xfefc (sp).d-- 64bit浮動小数点数から1を引く 850: "__CFDEC," + //0xfefd (sp).s-- 32bit浮動小数点数から1を引く 851: "__FEVARG," + //0xfefe d0.l='HS86'(FLOAT1)/'IEEE'(FLOAT2/3/4),d1.l='SOFT'(FLOAT1/2)/'FPCP'(FLOAT3)/'FP20'(FLOAT4) バージョン確認 852: "__FEVECS" //0xfeff ベクタ[番号d0.l]=アドレスa0.l ベクタ設定 853: ).split (",", 256); 854: 855: //SXコール名(0xa000~0xa7ff) 856: public static final String[] DIS_SXCALL_NAME = ( 857: "__MMInitHeap," + //0xa000 858: "__MMGetCurrentHeap," + //0xa001 859: "__MMSetCurrentHeap," + //0xa002 860: "__MMNewHandle," + //0xa003 861: "__MMSetHandleSize," + //0xa004 862: "__MMDisposeHandle," + //0xa005 863: "__MMGetHandleSize," + //0xa006 864: "__MMHLock," + //0xa007 865: "__MMHUnlock," + //0xa008 866: "__MMNewPtr," + //0xa009 867: "__MMDisposePtr," + //0xa00a 868: "__MMGetPtrSize," + //0xa00b 869: "__MMSetPtrSize," + //0xa00c 870: "__MMCompactMem," + //0xa00d 871: "__MMHeapInit," + //0xa00e 872: "__MMBlockMstGet," + //0xa00f 873: "__MMMemCompact," + //0xa010 874: "__MMMemPurge," + //0xa011 875: "__MMMemMelt," + //0xa012 876: "__MMMemReserve," + //0xa013 877: "__MMMemSizeFree," + //0xa014 878: "__MMMemSizeComp," + //0xa015 879: "__MMMemSizePurge," + //0xa016 880: "__MMMemSizeMelt," + //0xa017 881: "__MMMemErrorGet," + //0xa018 882: "__MMMemErrorSet," + //0xa019 883: "__MMMemStrictGet," + //0xa01a 884: "__MMMemStrictSet," + //0xa01b 885: "__MMChGet," + //0xa01c 886: "__MMChSet," + //0xa01d 887: "__MMChPtrNew," + //0xa01e 888: "__MMChMstMore," + //0xa01f 889: "__MMChMstNew," + //0xa020 890: "__MMChHdlNew," + //0xa021 891: "__MMChCompact," + //0xa022 892: "__MMChPurge," + //0xa023 893: "__MMChMelt," + //0xa024 894: "__MMChReserve," + //0xa025 895: "__MMChFreeSize," + //0xa026 896: "__MMChGrowHeapGet," + //0xa027 897: "__MMChGrowHeapSet," + //0xa028 898: "__MMChPurgeGet," + //0xa029 899: "__MMChPurgeSet," + //0xa02a 900: "__MMChCompactGet," + //0xa02b 901: "__MMChCompactSet," + //0xa02c 902: "__MMPtrNew," + //0xa02d 903: "__MMPtrHeap," + //0xa02e 904: "__MMPtrDispose," + //0xa02f 905: "__MMPtrSizeGet," + //0xa030 906: "__MMPtrSizeSet," + //0xa031 907: "__MMPtrPropGet," + //0xa032 908: "__MMPtrPropSet," + //0xa033 909: "__MMMstAllocate," + //0xa034 910: "__MMMstBind," + //0xa035 911: "__MMHdlNew," + //0xa036 912: "__MMHdlHeap," + //0xa037 913: "__MMHdlDispose," + //0xa038 914: "__MMHdlSizeGet," + //0xa039 915: "__MMHdlSizeSet," + //0xa03a 916: "__MMHdlEmpty," + //0xa03b 917: "__MMHdlRealloc," + //0xa03c 918: "__MMHdlMoveHi," + //0xa03d 919: "__MMHdlPropGet," + //0xa03e 920: "__MMHdlPropSet," + //0xa03f 921: "__MMHdlLock," + //0xa040 922: "__MMHdlUnlock," + //0xa041 923: "__MMHdlPurge," + //0xa042 924: "__MMHdlNoPurge," + //0xa043 925: "__MMHdlResource," + //0xa044 926: "__MMHdlNoResource," + //0xa045 927: "__MMHdlIns," + //0xa046 928: "__MMHdlDel," + //0xa047 929: "__MMBlockUsrFlagGet," + //0xa048 930: "__MMBlockUsrFlagSet," + //0xa049 931: "__MMBlockUsrWordGet," + //0xa04a 932: "__MMBlockUsrWordSet," + //0xa04b 933: "__MMMemAmiTPeach," + //0xa04c 934: "__MMMemHiReserve," + //0xa04d 935: "__MMPtrBlock," + //0xa04e 936: "__MMHdlBlock," + //0xa04f 937: "__MMHdlMstGet," + //0xa050 938: "__MMChHiReserve," + //0xa051 939: "__MMChUsrFlagGet," + //0xa052 940: "__MMChUsrFlagSet," + //0xa053 941: "__MMChUsrWordGet," + //0xa054 942: "__MMChUsrWordSet," + //0xa055 943: "," + //0xa056 944: "," + //0xa057 945: "," + //0xa058 946: "," + //0xa059 947: "," + //0xa05a 948: "," + //0xa05b 949: "," + //0xa05c 950: "," + //0xa05d 951: "," + //0xa05e 952: "," + //0xa05f 953: "," + //0xa060 954: "," + //0xa061 955: "," + //0xa062 956: "," + //0xa063 957: "," + //0xa064 958: "," + //0xa065 959: "," + //0xa066 960: "," + //0xa067 961: "__EXEnVDISPST," + //0xa068 962: "__EXDeVDISPST," + //0xa069 963: "__MSInitCsr," + //0xa06a 964: "__MSShowCsr," + //0xa06b 965: "__MSHideCsr," + //0xa06c 966: "__MSSetCsr," + //0xa06d 967: "__MSObscureCsr," + //0xa06e 968: "__MSShieldCsr," + //0xa06f 969: "__MSGetCurMsr," + //0xa070 970: "__MSMultiGet," + //0xa071 971: "__MSMultiSet," + //0xa072 972: "__EXAnimStart," + //0xa073 973: "__EXAnimEnd," + //0xa074 974: "__EXAnimTest," + //0xa075 975: "," + //0xa076 976: "," + //0xa077 977: "," + //0xa078 978: "," + //0xa079 979: "," + //0xa07a 980: "," + //0xa07b 981: "," + //0xa07c 982: "," + //0xa07d 983: "," + //0xa07e 984: "," + //0xa07f 985: "," + //0xa080 986: "," + //0xa081 987: "," + //0xa082 988: "," + //0xa083 989: "," + //0xa084 990: "," + //0xa085 991: "__KBMapGet," + //0xa086 992: "__KBShiftGet," + //0xa087 993: "__KBShiftSet," + //0xa088 994: "__KBSimulate," + //0xa089 995: "__KBScan," + //0xa08a 996: "__KBGet," + //0xa08b 997: "__KBEmpty," + //0xa08c 998: "__KBInit," + //0xa08d 999: "__KBTini," + //0xa08e 1000: "__KBCurKbrGet," + //0xa08f 1001: "__KBOldOnGet," + //0xa090 1002: "__KBOldOnSet," + //0xa091 1003: "__KBFlagGet," + //0xa092 1004: "__KBFlagSet," + //0xa093 1005: "," + //0xa094 1006: "," + //0xa095 1007: "," + //0xa096 1008: "," + //0xa097 1009: "," + //0xa098 1010: "," + //0xa099 1011: "__KMEmpty," + //0xa09a 1012: "__KMPost," + //0xa09b 1013: "__KMAscJobSet," + //0xa09c 1014: "__KMSimulate," + //0xa09d 1015: "__KMTask," + //0xa09e 1016: "__KMInit," + //0xa09f 1017: "__KMTini," + //0xa0a0 1018: "__KMCurKmrGet," + //0xa0a1 1019: "__EMInit," + //0xa0a2 1020: "__EMTini," + //0xa0a3 1021: "__EMSet," + //0xa0a4 1022: "__EMGet," + //0xa0a5 1023: "__EMScan," + //0xa0a6 1024: "__EMMSLoc," + //0xa0a7 1025: "__EMLBttn," + //0xa0a8 1026: "__EMRBttn," + //0xa0a9 1027: "__EMLStill," + //0xa0aa 1028: "__EMRStill," + //0xa0ab 1029: "__EMLWait," + //0xa0ac 1030: "__EMRWait," + //0xa0ad 1031: "__EMKMapGet," + //0xa0ae 1032: "__EMSysTime," + //0xa0af 1033: "__EMDClickGet," + //0xa0b0 1034: "__EMBlinkGet," + //0xa0b1 1035: "__EMClean," + //0xa0b2 1036: "__EMMaskSet," + //0xa0b3 1037: "__EMDTTskSet," + //0xa0b4 1038: "__EMDClickSet," + //0xa0b5 1039: "__EMBlinkSet," + //0xa0b6 1040: "__EMEnCross," + //0xa0b7 1041: "__EMDeCross," + //0xa0b8 1042: "," + //0xa0b9 1043: "," + //0xa0ba 1044: "," + //0xa0bb 1045: "," + //0xa0bc 1046: "," + //0xa0bd 1047: "," + //0xa0be 1048: "," + //0xa0bf 1049: "," + //0xa0c0 1050: "," + //0xa0c1 1051: "," + //0xa0c2 1052: "," + //0xa0c3 1053: "," + //0xa0c4 1054: "," + //0xa0c5 1055: "," + //0xa0c6 1056: "," + //0xa0c7 1057: "," + //0xa0c8 1058: "," + //0xa0c9 1059: "," + //0xa0ca 1060: "," + //0xa0cb 1061: "," + //0xa0cc 1062: "," + //0xa0cd 1063: "," + //0xa0ce 1064: "," + //0xa0cf 1065: "," + //0xa0d0 1066: "," + //0xa0d1 1067: "," + //0xa0d2 1068: "," + //0xa0d3 1069: "," + //0xa0d4 1070: "," + //0xa0d5 1071: "," + //0xa0d6 1072: "," + //0xa0d7 1073: "," + //0xa0d8 1074: "__RMInit," + //0xa0d9 1075: "__RMTini," + //0xa0da 1076: "__RMResNew," + //0xa0db 1077: "__RMRscAdd," + //0xa0dc 1078: "__RMRscRemove," + //0xa0dd 1079: "__RMTypeRemove," + //0xa0de 1080: "__RMResDispose," + //0xa0df 1081: "__RMResOpen," + //0xa0e0 1082: "__RMRscGet," + //0xa0e1 1083: "__RMResClose," + //0xa0e2 1084: "__RMResRemove," + //0xa0e3 1085: "__RMCurResSet," + //0xa0e4 1086: "__RMRscRelease," + //0xa0e5 1087: "__RMRscDetach," + //0xa0e6 1088: "__RMMaxIDGet," + //0xa0e7 1089: "__RMResSave," + //0xa0e8 1090: "__RMHdlToRsc," + //0xa0e9 1091: "__RMCurResGet," + //0xa0ea 1092: "__RMLastResGet," + //0xa0eb 1093: "__RMResLoad," + //0xa0ec 1094: "__RMResLinkGet," + //0xa0ed 1095: "__RMResTypeList," + //0xa0ee 1096: "__RMResIDList," + //0xa0ef 1097: "," + //0xa0f0 1098: "," + //0xa0f1 1099: "," + //0xa0f2 1100: "," + //0xa0f3 1101: "," + //0xa0f4 1102: "," + //0xa0f5 1103: "," + //0xa0f6 1104: "," + //0xa0f7 1105: "," + //0xa0f8 1106: "," + //0xa0f9 1107: "," + //0xa0fa 1108: "," + //0xa0fb 1109: "," + //0xa0fc 1110: "," + //0xa0fd 1111: "," + //0xa0fe 1112: "," + //0xa0ff 1113: "," + //0xa100 1114: "," + //0xa101 1115: "," + //0xa102 1116: "," + //0xa103 1117: "," + //0xa104 1118: "," + //0xa105 1119: "," + //0xa106 1120: "," + //0xa107 1121: "," + //0xa108 1122: "," + //0xa109 1123: "," + //0xa10a 1124: "," + //0xa10b 1125: "," + //0xa10c 1126: "," + //0xa10d 1127: "," + //0xa10e 1128: "," + //0xa10f 1129: "," + //0xa110 1130: "," + //0xa111 1131: "," + //0xa112 1132: "," + //0xa113 1133: "," + //0xa114 1134: "," + //0xa115 1135: "," + //0xa116 1136: "," + //0xa117 1137: "," + //0xa118 1138: "," + //0xa119 1139: "," + //0xa11a 1140: "," + //0xa11b 1141: "," + //0xa11c 1142: "," + //0xa11d 1143: "," + //0xa11e 1144: "," + //0xa11f 1145: "," + //0xa120 1146: "," + //0xa121 1147: "," + //0xa122 1148: "," + //0xa123 1149: "," + //0xa124 1150: "," + //0xa125 1151: "," + //0xa126 1152: "," + //0xa127 1153: "," + //0xa128 1154: "," + //0xa129 1155: "," + //0xa12a 1156: "," + //0xa12b 1157: "," + //0xa12c 1158: "__GMOpenGraph," + //0xa12d 1159: "__GMCloseGraph," + //0xa12e 1160: "," + //0xa12f 1161: "__GMInitGraph," + //0xa130 1162: "__GMSetGraph," + //0xa131 1163: "__GMGetGraph," + //0xa132 1164: "__GMCopyGraph," + //0xa133 1165: "," + //0xa134 1166: "," + //0xa135 1167: "__GMMoveGraph," + //0xa136 1168: "__GMSlideGraph," + //0xa137 1169: "__GMSetClip," + //0xa138 1170: "__GMGetClip," + //0xa139 1171: "__GMClipRect," + //0xa13a 1172: "__GMSetHome," + //0xa13b 1173: "__GMSetGraphSize," + //0xa13c 1174: "__GMSetBitmap," + //0xa13d 1175: "__GMLocalToGlobal," + //0xa13e 1176: "__GMGlobalToLocal," + //0xa13f 1177: "__GMInitPen," + //0xa140 1178: "__GMPenShow," + //0xa141 1179: "__GMPenHide," + //0xa142 1180: "__GMPenSize," + //0xa143 1181: "__GMPenMode," + //0xa144 1182: "__GMPenPat," + //0xa145 1183: "__GMExPat," + //0xa146 1184: "__GMForeColor," + //0xa147 1185: "__GMBackColor," + //0xa148 1186: "__GMAPage," + //0xa149 1187: "__GMGetLoc," + //0xa14a 1188: "__GMGetPen," + //0xa14b 1189: "__GMSetPen," + //0xa14c 1190: "__GMInitialize," + //0xa14d 1191: "__GMNullRect," + //0xa14e 1192: "__GMSizeRect," + //0xa14f 1193: "__GMAndRects," + //0xa150 1194: "__GMMoveRect," + //0xa151 1195: "__GMSlideRect," + //0xa152 1196: "__GMInsetRect," + //0xa153 1197: "__GMAndRect," + //0xa154 1198: "__GMOrRect," + //0xa155 1199: "__GMPtInRect," + //0xa156 1200: "__GMEqualRect," + //0xa157 1201: "__GMEmptyRect," + //0xa158 1202: "__GMAdjustRect," + //0xa159 1203: "__GMNewRgn," + //0xa15a 1204: "__GMDisposeRgn," + //0xa15b 1205: "__GMOpenRgn," + //0xa15c 1206: "__GMCloseRgn," + //0xa15d 1207: "__GMNullRgn," + //0xa15e 1208: "__GMRectRgn," + //0xa15f 1209: "__GMCopyRgn," + //0xa160 1210: "__GMMoveRgn," + //0xa161 1211: "__GMSlideRgn," + //0xa162 1212: "__GMInsetRgn," + //0xa163 1213: "__GMAndRgn," + //0xa164 1214: "__GMOrRgn," + //0xa165 1215: "__GMDiffRgn," + //0xa166 1216: "__GMXorRgn," + //0xa167 1217: "__GMPtInRgn," + //0xa168 1218: "__GMRectInRgn," + //0xa169 1219: "__GMEqualRgn," + //0xa16a 1220: "__GMEmptyRgn," + //0xa16b 1221: "__GMImgToRgn," + //0xa16c 1222: "__GMInitBitmap," + //0xa16d 1223: "__GMMove," + //0xa16e 1224: "__GMMoveRel," + //0xa16f 1225: "__GMLine," + //0xa170 1226: "__GMLineRel," + //0xa171 1227: "__GMFrameRect," + //0xa172 1228: "__GMFillRect," + //0xa173 1229: "__GMFrameOval," + //0xa174 1230: "__GMFillOval," + //0xa175 1231: "__GMFrameRRect," + //0xa176 1232: "__GMFillRRect," + //0xa177 1233: "__GMFrameArc," + //0xa178 1234: "__GMFillArc," + //0xa179 1235: "__GMFrameRgn," + //0xa17a 1236: "__GMFillRgn," + //0xa17b 1237: "__GMFramePoly," + //0xa17c 1238: "__GMFillPoly," + //0xa17d 1239: "__GMScroll," + //0xa17e 1240: "__GMCopy," + //0xa17f 1241: "__GMCopyMask," + //0xa180 1242: "," + //0xa181 1243: "__GMPlotImg," + //0xa182 1244: "__GMPutRImg," + //0xa183 1245: "," + //0xa184 1246: "," + //0xa185 1247: "__GMDupHImg," + //0xa186 1248: "__GMDupVImg," + //0xa187 1249: "__GMDupHRImg," + //0xa188 1250: "__GMDupVRImg," + //0xa189 1251: "," + //0xa18a 1252: "__GMFontKind," + //0xa18b 1253: "__GMFontFace," + //0xa18c 1254: "__GMFontMode," + //0xa18d 1255: "__GMFontSize," + //0xa18e 1256: "__GMDrawChar," + //0xa18f 1257: "__GMDrawStrL," + //0xa190 1258: "__GMDrawStr," + //0xa191 1259: "__GMDrawStrZ," + //0xa192 1260: "," + //0xa193 1261: "__GMCharWidth," + //0xa194 1262: "__GMStrLWidth," + //0xa195 1263: "__GMStrWidth," + //0xa196 1264: "__GMStrLength," + //0xa197 1265: "__GMFontInfo," + //0xa198 1266: "__GMOpenScript," + //0xa199 1267: "__GMCloseScript," + //0xa19a 1268: "__GMDisposeScript," + //0xa19b 1269: "__GMDrawScript," + //0xa19c 1270: "__GMGetScript," + //0xa19d 1271: "__GMOpenPoly," + //0xa19e 1272: "__GMClosePoly," + //0xa19f 1273: "__GMDisposePoly," + //0xa1a0 1274: "__GMShadowStrZ," + //0xa1a1 1275: "__GMShadowRect," + //0xa1a2 1276: "__GMInvertRect," + //0xa1a3 1277: "," + //0xa1a4 1278: "__GMInvertBits," + //0xa1a5 1279: "__GMMapPt," + //0xa1a6 1280: "__GMMapRect," + //0xa1a7 1281: "__GMMapPoly," + //0xa1a8 1282: "__GMMapRgn," + //0xa1a9 1283: "__GMScalePt," + //0xa1aa 1284: "__GMInitPalet," + //0xa1ab 1285: "," + //0xa1ac 1286: "__GMDrawG16," + //0xa1ad 1287: "," + //0xa1ae 1288: "__GMGetPixel," + //0xa1af 1289: "," + //0xa1b0 1290: "__GMCalcMask," + //0xa1b1 1291: "__GMCalcFrame," + //0xa1b2 1292: "__SXLongMul," + //0xa1b3 1293: "__SXFixRound," + //0xa1b4 1294: "," + //0xa1b5 1295: "__SXFixMul," + //0xa1b6 1296: "__SXFixDiv," + //0xa1b7 1297: "__GMGetFontTable," + //0xa1b8 1298: "__GMCopyStdProc," + //0xa1b9 1299: "__GMStrZWidth," + //0xa1ba 1300: "__GMTransImg," + //0xa1bb 1301: "__GMFillRImg," + //0xa1bc 1302: "__GMFillImg," + //0xa1bd 1303: "__GMSlidedRgn," + //0xa1be 1304: "__GMPaintRgn," + //0xa1bf 1305: "__GMSetRgnLine," + //0xa1c0 1306: "__GMGetRgnLine," + //0xa1c1 1307: "__GMInitGraphMode," + //0xa1c2 1308: "__GMCurFont," + //0xa1c3 1309: "__GMGetScrnSize," + //0xa1c4 1310: "__GMExgGraph," + //0xa1c5 1311: "__GMExgBitmap," + //0xa1c6 1312: "__GMGetBitmap," + //0xa1c7 1313: "__GMCalcBitmap," + //0xa1c8 1314: "__GMCalcScrnSize," + //0xa1c9 1315: "__GMNewBits," + //0xa1ca 1316: "__GMDisposeBits," + //0xa1cb 1317: "__GMLockBits," + //0xa1cc 1318: "__GMUnlockBits," + //0xa1cd 1319: "__GMItalicRect," + //0xa1ce 1320: "__GMItalicRgn," + //0xa1cf 1321: "__GMFreeBits," + //0xa1d0 1322: "__GMCalcGraph," + //0xa1d1 1323: "__GMPackImage," + //0xa1d2 1324: "__GMUnpackImage," + //0xa1d3 1325: "__GMAdjustPt," + //0xa1d4 1326: "__GMPutImg," + //0xa1d5 1327: "__GMCenterRect," + //0xa1d6 1328: "__GMScrewRect," + //0xa1d7 1329: "__GMAndRectRgn," + //0xa1d8 1330: "__GMOrRectRgn," + //0xa1d9 1331: "__GMDiffRectRgn," + //0xa1da 1332: "__GMXorRectRgn," + //0xa1db 1333: "__GMCharKind," + //0xa1dc 1334: "__GMDiffRgnRect," + //0xa1dd 1335: "," + //0xa1de 1336: "," + //0xa1df 1337: "__GMAddFont," + //0xa1e0 1338: "__GMRemoveFont," + //0xa1e1 1339: "__GMGetFontLink," + //0xa1e2 1340: "__GMGetHProcTbl," + //0xa1e3 1341: "," + //0xa1e4 1342: "," + //0xa1e5 1343: "__GMGetStdProcTbl," + //0xa1e6 1344: "__GMGetFontProcTbl," + //0xa1e7 1345: "__GMGetRgnProcTbl," + //0xa1e8 1346: "__GMDrawGsOne," + //0xa1e9 1347: "__GMPtInImg," + //0xa1ea 1348: "__GMFrameNPoly," + //0xa1eb 1349: "__GMFillNPoly," + //0xa1ec 1350: "__GMNPolyFrRgn," + //0xa1ed 1351: "__GMNPolyFlRgn," + //0xa1ee 1352: "__GMPtInNPoly," + //0xa1ef 1353: "__GMPtOnNPoly," + //0xa1f0 1354: "__GMRecordScript," + //0xa1f1 1355: "__GMNLineRel," + //0xa1f2 1356: "__GMNLine," + //0xa1f3 1357: "__GMRecordPoly," + //0xa1f4 1358: "," + //0xa1f5 1359: "," + //0xa1f6 1360: "," + //0xa1f7 1361: "__WMInit," + //0xa1f8 1362: "__WMOpen," + //0xa1f9 1363: "__WMRefer," + //0xa1fa 1364: "__WMClose," + //0xa1fb 1365: "__WMDispose," + //0xa1fc 1366: "__WMFind," + //0xa1fd 1367: "__WMSelect," + //0xa1fe 1368: "__WMSelect2," + //0xa1ff 1369: "__WMCarry," + //0xa200 1370: "__WMShine," + //0xa201 1371: "__WMMove," + //0xa202 1372: "__WMSize," + //0xa203 1373: "__WMGrow," + //0xa204 1374: "__WMDrag," + //0xa205 1375: "__WMZoom," + //0xa206 1376: "__WMShow," + //0xa207 1377: "__WMHide," + //0xa208 1378: "__WMShowHide," + //0xa209 1379: "__WMCheckBox," + //0xa20a 1380: "__WMCheckCBox," + //0xa20b 1381: "__WMDrawGBox," + //0xa20c 1382: "__WMUpdate," + //0xa20d 1383: "__WMUpdtOver," + //0xa20e 1384: "__WMActive," + //0xa20f 1385: "__WMGraphGet," + //0xa210 1386: "," + //0xa211 1387: "," + //0xa212 1388: "," + //0xa213 1389: "," + //0xa214 1390: "," + //0xa215 1391: "," + //0xa216 1392: "," + //0xa217 1393: "__WMAddRect," + //0xa218 1394: "__WMAddRgn," + //0xa219 1395: "__WMSubRect," + //0xa21a 1396: "__WMSubRgn," + //0xa21b 1397: "__WMGScriptSet," + //0xa21c 1398: "__WMGScriptGet," + //0xa21d 1399: "__WMTitleSet," + //0xa21e 1400: "__WMTitleGet," + //0xa21f 1401: "__WMTIDSet," + //0xa220 1402: "__WMTIDGet," + //0xa221 1403: "__WMPinRect," + //0xa222 1404: "__WMCalcUpdt," + //0xa223 1405: "__WMGetDTGS," + //0xa224 1406: "__WMDragRgn," + //0xa225 1407: "," + //0xa226 1408: "__WSOpen," + //0xa227 1409: "__WSClose," + //0xa228 1410: "__WSDispose," + //0xa229 1411: "__WSEnlist," + //0xa22a 1412: "__WSDelist," + //0xa22b 1413: "__WMOptionGet," + //0xa22c 1414: "__WMOptionSet," + //0xa22d 1415: "__WMPtInGBox," + //0xa22e 1416: "__WHOpen," + //0xa22f 1417: "__WHGet," + //0xa230 1418: "__WMOpen2," + //0xa231 1419: "__WMMargineGet," + //0xa232 1420: "__WMMargineSet," + //0xa233 1421: "," + //0xa234 1422: "__WMMove2," + //0xa235 1423: "," + //0xa236 1424: "," + //0xa237 1425: "," + //0xa238 1426: "," + //0xa239 1427: "," + //0xa23a 1428: "," + //0xa23b 1429: "," + //0xa23c 1430: "," + //0xa23d 1431: "," + //0xa23e 1432: "," + //0xa23f 1433: "," + //0xa240 1434: "," + //0xa241 1435: "," + //0xa242 1436: "," + //0xa243 1437: "," + //0xa244 1438: "," + //0xa245 1439: "," + //0xa246 1440: "," + //0xa247 1441: "," + //0xa248 1442: "," + //0xa249 1443: "," + //0xa24a 1444: "," + //0xa24b 1445: "," + //0xa24c 1446: "," + //0xa24d 1447: "," + //0xa24e 1448: "," + //0xa24f 1449: "," + //0xa250 1450: "," + //0xa251 1451: "," + //0xa252 1452: "," + //0xa253 1453: "," + //0xa254 1454: "," + //0xa255 1455: "," + //0xa256 1456: "," + //0xa257 1457: "," + //0xa258 1458: "," + //0xa259 1459: "," + //0xa25a 1460: "," + //0xa25b 1461: "," + //0xa25c 1462: "," + //0xa25d 1463: "," + //0xa25e 1464: "," + //0xa25f 1465: "," + //0xa260 1466: "," + //0xa261 1467: "," + //0xa262 1468: "," + //0xa263 1469: "," + //0xa264 1470: "," + //0xa265 1471: "__MNInit," + //0xa266 1472: "__MNRefer," + //0xa267 1473: "__MNSelect," + //0xa268 1474: "__MNConvert," + //0xa269 1475: "," + //0xa26a 1476: "__MNConvert2," + //0xa26b 1477: "__MNSelect3," + //0xa26c 1478: "," + //0xa26d 1479: "," + //0xa26e 1480: "," + //0xa26f 1481: "," + //0xa270 1482: "," + //0xa271 1483: "," + //0xa272 1484: "," + //0xa273 1485: "," + //0xa274 1486: "," + //0xa275 1487: "," + //0xa276 1488: "," + //0xa277 1489: "," + //0xa278 1490: "," + //0xa279 1491: "," + //0xa27a 1492: "," + //0xa27b 1493: "," + //0xa27c 1494: "," + //0xa27d 1495: "," + //0xa27e 1496: "," + //0xa27f 1497: "," + //0xa280 1498: "," + //0xa281 1499: "," + //0xa282 1500: "," + //0xa283 1501: "," + //0xa284 1502: "," + //0xa285 1503: "," + //0xa286 1504: "," + //0xa287 1505: "," + //0xa288 1506: "__CMOpen," + //0xa289 1507: "__CMDispose," + //0xa28a 1508: "__CMKill," + //0xa28b 1509: "__CMHide," + //0xa28c 1510: "__CMShow," + //0xa28d 1511: "__CMDraw," + //0xa28e 1512: "__CMDrawOne," + //0xa28f 1513: "__CMValueSet," + //0xa290 1514: "__CMValueGet," + //0xa291 1515: "__CMMinSet," + //0xa292 1516: "__CMMinGet," + //0xa293 1517: "__CMMaxSet," + //0xa294 1518: "__CMMaxGet," + //0xa295 1519: "__CMMove," + //0xa296 1520: "__CMSize," + //0xa297 1521: "__CMShine," + //0xa298 1522: "__CMFind," + //0xa299 1523: "__CMCheck," + //0xa29a 1524: "__CMRefer," + //0xa29b 1525: "__CMTitleGet," + //0xa29c 1526: "__CMDragControl," + //0xa29d 1527: "__CMDraws," + //0xa29e 1528: "__CMTitleSet," + //0xa29f 1529: "__CMOptionGet," + //0xa2a0 1530: "__CMOptionSet," + //0xa2a1 1531: "__CMUserGet," + //0xa2a2 1532: "__CMUserSet," + //0xa2a3 1533: "__CMProcGet," + //0xa2a4 1534: "__CMProcSet," + //0xa2a5 1535: "__CMDefDataGet," + //0xa2a6 1536: "__CMDefDataSet," + //0xa2a7 1537: "," + //0xa2a8 1538: "," + //0xa2a9 1539: "," + //0xa2aa 1540: "," + //0xa2ab 1541: "," + //0xa2ac 1542: "," + //0xa2ad 1543: "," + //0xa2ae 1544: "," + //0xa2af 1545: "," + //0xa2b0 1546: "," + //0xa2b1 1547: "," + //0xa2b2 1548: "," + //0xa2b3 1549: "," + //0xa2b4 1550: "," + //0xa2b5 1551: "," + //0xa2b6 1552: "," + //0xa2b7 1553: "," + //0xa2b8 1554: "," + //0xa2b9 1555: "," + //0xa2ba 1556: "," + //0xa2bb 1557: "," + //0xa2bc 1558: "," + //0xa2bd 1559: "," + //0xa2be 1560: "," + //0xa2bf 1561: "__DMInit," + //0xa2c0 1562: "__ErrorSound," + //0xa2c1 1563: "__DMFontSet," + //0xa2c2 1564: "__DMOpen," + //0xa2c3 1565: "__DMRefer," + //0xa2c4 1566: "__DMClose," + //0xa2c5 1567: "__DMDispose," + //0xa2c6 1568: "__DMControl," + //0xa2c7 1569: "__DMDraw," + //0xa2c8 1570: "__Alart," + //0xa2c9 1571: "__StopAlart," + //0xa2ca 1572: "__NoteAlart," + //0xa2cb 1573: "__CautionAlart," + //0xa2cc 1574: "__CouldAlart," + //0xa2cd 1575: "__FreeAlart," + //0xa2ce 1576: "__DIGet," + //0xa2cf 1577: "__DISet," + //0xa2d0 1578: "__DITGet," + //0xa2d1 1579: "__DITSet," + //0xa2d2 1580: "__DITSelect," + //0xa2d3 1581: "__GetAlrtStage," + //0xa2d4 1582: "__ResetAlrtStage," + //0xa2d5 1583: "__DIUpdate," + //0xa2d6 1584: "__DMBeep," + //0xa2d7 1585: "__DIHide," + //0xa2d8 1586: "__DIShow," + //0xa2d9 1587: "," + //0xa2da 1588: "," + //0xa2db 1589: "," + //0xa2dc 1590: "," + //0xa2dd 1591: "," + //0xa2de 1592: "," + //0xa2df 1593: "," + //0xa2e0 1594: "," + //0xa2e1 1595: "," + //0xa2e2 1596: "," + //0xa2e3 1597: "," + //0xa2e4 1598: "," + //0xa2e5 1599: "," + //0xa2e6 1600: "," + //0xa2e7 1601: "," + //0xa2e8 1602: "," + //0xa2e9 1603: "," + //0xa2ea 1604: "," + //0xa2eb 1605: "," + //0xa2ec 1606: "," + //0xa2ed 1607: "," + //0xa2ee 1608: "," + //0xa2ef 1609: "," + //0xa2f0 1610: "," + //0xa2f1 1611: "," + //0xa2f2 1612: "," + //0xa2f3 1613: "," + //0xa2f4 1614: "," + //0xa2f5 1615: "__DMError," + //0xa2f6 1616: "__DMWaitOpen," + //0xa2f7 1617: "__DMWaitClose," + //0xa2f8 1618: "__DMWaitWhile," + //0xa2f9 1619: "__DMError2," + //0xa2fa 1620: "," + //0xa2fb 1621: "," + //0xa2fc 1622: "," + //0xa2fd 1623: "," + //0xa2fe 1624: "," + //0xa2ff 1625: "," + //0xa300 1626: "," + //0xa301 1627: "," + //0xa302 1628: "," + //0xa303 1629: "," + //0xa304 1630: "," + //0xa305 1631: "," + //0xa306 1632: "," + //0xa307 1633: "," + //0xa308 1634: "," + //0xa309 1635: "__TMInit," + //0xa30a 1636: "__TMNew," + //0xa30b 1637: "__TMSetRect," + //0xa30c 1638: "__TMChangeText," + //0xa30d 1639: "__TMIdle," + //0xa30e 1640: "__TMActive," + //0xa30f 1641: "__TMDeactive," + //0xa310 1642: "__TMCaret," + //0xa311 1643: "__TMDispose," + //0xa312 1644: "__TMUpDate," + //0xa313 1645: "__TMSetText," + //0xa314 1646: "__TMGetText," + //0xa315 1647: "__TMSetSelect," + //0xa316 1648: "__TMKey," + //0xa317 1649: "__TMStr," + //0xa318 1650: "__TMCalText," + //0xa319 1651: "__TMPinScroll," + //0xa31a 1652: "__TMClick," + //0xa31b 1653: "__TMEvent," + //0xa31c 1654: "," + //0xa31d 1655: "," + //0xa31e 1656: "," + //0xa31f 1657: "__TMCut," + //0xa320 1658: "__TMCopy," + //0xa321 1659: "__TMPaste," + //0xa322 1660: "__TMDelete," + //0xa323 1661: "__TMInsert," + //0xa324 1662: "__TMFromScrap," + //0xa325 1663: "__TMToScrap," + //0xa326 1664: "__TMScrapHandle," + //0xa327 1665: "__TMGetScrapLen," + //0xa328 1666: "," + //0xa329 1667: "__TMTextBox," + //0xa32a 1668: "__TMTextBox2," + //0xa32b 1669: "__TMCacheON," + //0xa32c 1670: "__TMCacheOFF," + //0xa32d 1671: "__TMCacheFlush," + //0xa32e 1672: "__TMShow," + //0xa32f 1673: "__TMHide," + //0xa330 1674: "__TMSelShow," + //0xa331 1675: "__TMSelHide," + //0xa332 1676: "__TMSearchStrF," + //0xa333 1677: "__TMSearchStrB," + //0xa334 1678: "__TMTextInWidth2," + //0xa335 1679: "__TMTextWidth2," + //0xa336 1680: "__TMDrawText2," + //0xa337 1681: "__TMUpDate2," + //0xa338 1682: "__TMUpDate3," + //0xa339 1683: "__TMCalCOLine," + //0xa33a 1684: "," + //0xa33b 1685: "__TMCalLine," + //0xa33c 1686: "__TMLeftSel," + //0xa33d 1687: "__TMRightSel," + //0xa33e 1688: "__TMPointSel," + //0xa33f 1689: "__TMOffsetSel," + //0xa340 1690: "__TMPointToLine," + //0xa341 1691: "," + //0xa342 1692: "__TMCalSelPoint," + //0xa343 1693: "," + //0xa344 1694: "__TMSetView," + //0xa345 1695: "__TMScroll," + //0xa346 1696: "__TMPointScroll," + //0xa347 1697: "__TMStr2," + //0xa348 1698: "__TMKeyToAsk," + //0xa349 1699: "__TMNextCode," + //0xa34a 1700: "__TMSetTextH," + //0xa34b 1701: "__TSInitTsk," + //0xa34c 1702: "__TSTiniTsk2," + //0xa34d 1703: "__TSInitCrtM," + //0xa34e 1704: "__TSTiniCrtM," + //0xa34f 1705: "," + //0xa350 1706: "__TSFock," + //0xa351 1707: "__TSExit," + //0xa352 1708: "__TSFockB," + //0xa353 1709: "," + //0xa354 1710: "__TSFockSItem," + //0xa355 1711: "__TSFockIcon," + //0xa356 1712: "__TSEventAvail," + //0xa357 1713: "__TSGetEvent," + //0xa358 1714: "," + //0xa359 1715: "__TSPostEventTsk," + //0xa35a 1716: "__TSGetTdb," + //0xa35b 1717: "__TSSetTdb," + //0xa35c 1718: "," + //0xa35d 1719: "__TSGetWindowPos," + //0xa35e 1720: "__TSCommunicate," + //0xa35f 1721: "__TSGetID," + //0xa360 1722: "__TSMakeEvent," + //0xa361 1723: "," + //0xa362 1724: "," + //0xa363 1725: "__TSGetStartMode," + //0xa364 1726: "__TSSetStartMode," + //0xa365 1727: "__TMOpen," + //0xa366 1728: "__TSOpen," + //0xa367 1729: "__TSClose," + //0xa368 1730: "__TSRmDirH," + //0xa369 1731: "__TSCopyH," + //0xa36a 1732: "__TSMkDirH," + //0xa36b 1733: "__TSMoveH," + //0xa36c 1734: "__TSCreate," + //0xa36d 1735: "__TSDeleteH," + //0xa36e 1736: "__TSTrash," + //0xa36f 1737: "__TSFiles," + //0xa370 1738: "__TSNFiles," + //0xa371 1739: "__TSCopyP," + //0xa372 1740: "__TSDeleteP," + //0xa373 1741: "__TSRmDirP," + //0xa374 1742: "__TSMkDirP," + //0xa375 1743: "__TSMoveP," + //0xa376 1744: "," + //0xa377 1745: "__TSChMod," + //0xa378 1746: "__TSWhatFile," + //0xa379 1747: "," + //0xa37a 1748: "__TSDeleteVoname," + //0xa37b 1749: "__TSCreateVoname," + //0xa37c 1750: "," + //0xa37d 1751: "," + //0xa37e 1752: "," + //0xa37f 1753: "," + //0xa380 1754: "__TSSearchFileND," + //0xa381 1755: "," + //0xa382 1756: "," + //0xa383 1757: "," + //0xa384 1758: "," + //0xa385 1759: "__TSGetOpen," + //0xa386 1760: "__TSZeroDrag," + //0xa387 1761: "__TSPutDrag," + //0xa388 1762: "__TSGetDrag," + //0xa389 1763: "__TSBeginDrag," + //0xa38a 1764: "," + //0xa38b 1765: "__TSEndDrag," + //0xa38c 1766: "__TSHideDrag," + //0xa38d 1767: "__TSShowDrag," + //0xa38e 1768: "__TSZeroScrap," + //0xa38f 1769: "__TSPutScrap," + //0xa390 1770: "__TSGetScrap," + //0xa391 1771: "," + //0xa392 1772: "," + //0xa393 1773: "," + //0xa394 1774: "," + //0xa395 1775: "," + //0xa396 1776: "__TSSearchTrashpath," + //0xa397 1777: "__TSSearchTrashfile," + //0xa398 1778: "__TSEmptyTrash," + //0xa399 1779: "," + //0xa39a 1780: "__TSSearchdpb," + //0xa39b 1781: "," + //0xa39c 1782: "__TSDrvctrl," + //0xa39d 1783: "__TSDrvctrl2," + //0xa39e 1784: "," + //0xa39f 1785: "," + //0xa3a0 1786: "," + //0xa3a1 1787: "__SXCallWindM," + //0xa3a2 1788: "__SXCallCtrlM," + //0xa3a3 1789: "," + //0xa3a4 1790: "," + //0xa3a5 1791: "," + //0xa3a6 1792: "," + //0xa3a7 1793: "," + //0xa3a8 1794: "," + //0xa3a9 1795: "__SXInvalScBar," + //0xa3aa 1796: "__SXValidScBar," + //0xa3ab 1797: "," + //0xa3ac 1798: "," + //0xa3ad 1799: "," + //0xa3ae 1800: "," + //0xa3af 1801: "," + //0xa3b0 1802: "," + //0xa3b1 1803: "," + //0xa3b2 1804: "," + //0xa3b3 1805: "," + //0xa3b4 1806: "," + //0xa3b5 1807: "," + //0xa3b6 1808: "," + //0xa3b7 1809: "," + //0xa3b8 1810: "," + //0xa3b9 1811: "," + //0xa3ba 1812: "__TSISRecToStr," + //0xa3bb 1813: "," + //0xa3bc 1814: "," + //0xa3bd 1815: "," + //0xa3be 1816: "__TSCreateISFile," + //0xa3bf 1817: "," + //0xa3c0 1818: "," + //0xa3c1 1819: "," + //0xa3c2 1820: "," + //0xa3c3 1821: "," + //0xa3c4 1822: "," + //0xa3c5 1823: "," + //0xa3c6 1824: "," + //0xa3c7 1825: "," + //0xa3c8 1826: "," + //0xa3c9 1827: "," + //0xa3ca 1828: "," + //0xa3cb 1829: "__SXFileConnPath," + //0xa3cc 1830: "__SXFileInPath," + //0xa3cd 1831: "," + //0xa3ce 1832: "," + //0xa3cf 1833: "__SXFnamecmp," + //0xa3d0 1834: "," + //0xa3d1 1835: "," + //0xa3d2 1836: "," + //0xa3d3 1837: "__SXSearchFname," + //0xa3d4 1838: "," + //0xa3d5 1839: "," + //0xa3d6 1840: "," + //0xa3d7 1841: "__SXStoLower," + //0xa3d8 1842: "__SXStoUpper," + //0xa3d9 1843: "__SXStoUpper2," + //0xa3da 1844: "," + //0xa3db 1845: "," + //0xa3dc 1846: "," + //0xa3dd 1847: "," + //0xa3de 1848: "," + //0xa3df 1849: "," + //0xa3e0 1850: "," + //0xa3e1 1851: "," + //0xa3e2 1852: "," + //0xa3e3 1853: "," + //0xa3e4 1854: "," + //0xa3e5 1855: "," + //0xa3e6 1856: "," + //0xa3e7 1857: "," + //0xa3e8 1858: "__SXVer," + //0xa3e9 1859: "__TSTakeParam," + //0xa3ea 1860: "," + //0xa3eb 1861: "," + //0xa3ec 1862: "," + //0xa3ed 1863: "," + //0xa3ee 1864: "," + //0xa3ef 1865: "," + //0xa3f0 1866: "," + //0xa3f1 1867: "," + //0xa3f2 1868: "," + //0xa3f3 1869: "__TSFindTskn," + //0xa3f4 1870: "," + //0xa3f5 1871: "," + //0xa3f6 1872: "__TSDriveCheckAll," + //0xa3f7 1873: "__TSDriveCheck," + //0xa3f8 1874: "__TSISRecToExec," + //0xa3f9 1875: "__TSGetDtopMode," + //0xa3fa 1876: "__TSSetDtopMode," + //0xa3fb 1877: "__TSSearchOpen," + //0xa3fc 1878: "," + //0xa3fd 1879: "__TSFindOwn," + //0xa3fe 1880: "__TSCommunicateS," + //0xa3ff 1881: "," + //0xa400 1882: "__TMNew2," + //0xa401 1883: "__TSSearchFile2," + //0xa402 1884: "__TSSearchFile," + //0xa403 1885: "," + //0xa404 1886: "," + //0xa405 1887: "__SXStrCmp," + //0xa406 1888: "," + //0xa407 1889: "__TSCreateISBadge," + //0xa408 1890: "," + //0xa409 1891: "__TSGetCMDS," + //0xa40a 1892: "__TSFockCM," + //0xa40b 1893: "," + //0xa40c 1894: "__TSTiniTsk," + //0xa40d 1895: "," + //0xa40e 1896: "," + //0xa40f 1897: "," + //0xa410 1898: "," + //0xa411 1899: "__SXStrCpy," + //0xa412 1900: "," + //0xa413 1901: "," + //0xa414 1902: "__TSPostEventTsk2," + //0xa415 1903: "," + //0xa416 1904: "__TSAnswer," + //0xa417 1905: "__TSSendMes," + //0xa418 1906: "__TSGetMes," + //0xa419 1907: "__TSInitTsk2," + //0xa41a 1908: "," + //0xa41b 1909: "," + //0xa41c 1910: "," + //0xa41d 1911: "," + //0xa41e 1912: "__SXCallWindM2," + //0xa41f 1913: "__TSBeginDrag2," + //0xa420 1914: "," + //0xa421 1915: "__SXGetVector," + //0xa422 1916: "__SXSetVector," + //0xa423 1917: "," + //0xa424 1918: "," + //0xa425 1919: "," + //0xa426 1920: "__TSCellToStr," + //0xa427 1921: "," + //0xa428 1922: "," + //0xa429 1923: "__SXLockFSX," + //0xa42a 1924: "__SXUnlockFSX," + //0xa42b 1925: "__TSFockMode," + //0xa42c 1926: "," + //0xa42d 1927: "," + //0xa42e 1928: "," + //0xa42f 1929: "__TSSetGraphMode," + //0xa430 1930: "__TSGetGraphMode," + //0xa431 1931: "__SXGetDispRect," + //0xa432 1932: "," + //0xa433 1933: "," + //0xa434 1934: "__SXSRAMVer," + //0xa435 1935: "__SXSRAMReset," + //0xa436 1936: "__SXSRAMCheck," + //0xa437 1937: "__TSAdjustRect," + //0xa438 1938: "," + //0xa439 1939: "," + //0xa43a 1940: "__TSPostEventTsk3," + //0xa43b 1941: "," + //0xa43c 1942: "," + //0xa43d 1943: "__TSAnswer2," + //0xa43e 1944: "," + //0xa43f 1945: "," + //0xa440 1946: "," + //0xa441 1947: "," + //0xa442 1948: "__TSErrDialogN," + //0xa443 1949: "," + //0xa444 1950: "," + //0xa445 1951: "__TSSearchFile3," + //0xa446 1952: "," + //0xa447 1953: "," + //0xa448 1954: "," + //0xa449 1955: "," + //0xa44a 1956: "__TSNameToCode," + //0xa44b 1957: "__TSCodeToName," + //0xa44c 1958: "__TSNameToHdl," + //0xa44d 1959: "," + //0xa44e 1960: "," + //0xa44f 1961: "__SXPack," + //0xa450 1962: "__SXUnpack," + //0xa451 1963: "__SXGetPackSize," + //0xa452 1964: "__SXGetCODFList," + //0xa453 1965: "__SXCellToCODF," + //0xa454 1966: "__GMDitherImg," + //0xa455 1967: "," + //0xa456 1968: "," + //0xa457 1969: "," + //0xa458 1970: "," + //0xa459 1971: "," + //0xa45a 1972: "," + //0xa45b 1973: "," + //0xa45c 1974: "," + //0xa45d 1975: "," + //0xa45e 1976: "," + //0xa45f 1977: "__TMNextCodeIn," + //0xa460 1978: "," + //0xa461 1979: "__TMSelReverse," + //0xa462 1980: "__TMTini," + //0xa463 1981: "__TMSetSelCal," + //0xa464 1982: "__TMActivate2," + //0xa465 1983: "__TMDeactivate2," + //0xa466 1984: "__TMCheckSel," + //0xa467 1985: "__TMCalPoint2," + //0xa468 1986: "," + //0xa469 1987: "__TMISZen," + //0xa46a 1988: "__TMSetDestOffset," + //0xa46b 1989: "__TMGetDestOffset," + //0xa46c 1990: "__TMGetSelect," + //0xa46d 1991: "__TMEventW," + //0xa46e 1992: "__TMUpDateExist," + //0xa46f 1993: "__TMNewM," + //0xa470 1994: "__TMSetTextM," + //0xa471 1995: "__TMSetDefKind," + //0xa472 1996: "__TMGetStyle," + //0xa473 1997: "," + //0xa474 1998: "__TMGetStyles," + //0xa475 1999: "__TMChangeStyle," + //0xa476 2000: "__TMChangeFace," + //0xa477 2001: "__TMSetColor," + //0xa478 2002: "__TMSetMode," + //0xa479 2003: "__TMPutScrapM," + //0xa47a 2004: "__TMInsertM," + //0xa47b 2005: "__TMStrM," + //0xa47c 2006: "__TMSetStyles," + //0xa47d 2007: "__TMGetExStyles," + //0xa47e 2008: "__TMGetScrap," + //0xa47f 2009: "__TMGetLineWidth," + //0xa480 2010: "__TMGetLineHeight," + //0xa481 2011: "__TMLineToHeight," + //0xa482 2012: "__TMAdjustHeight," + //0xa483 2013: "__TMChangeExStyle," + //0xa484 2014: "__TMAnalyzeExStyle," + //0xa485 2015: "__TMSetEditMode," + //0xa486 2016: "__TMCellToFont," + //0xa487 2017: "__TMScaleSet," + //0xa488 2018: "__TMScaleStyles," + //0xa489 2019: "__TMBundleExStyle," + //0xa48a 2020: "__TMSetLineHeight," + //0xa48b 2021: "__TMSetTabSize," + //0xa48c 2022: "__TMGetStr," + //0xa48d 2023: "__TMScalePtSet," + //0xa48e 2024: "__TMScalePtReSet," + //0xa48f 2025: "__TMGetDefKind," + //0xa490 2026: "," + //0xa491 2027: "," + //0xa492 2028: "," + //0xa493 2029: "__TMVer," + //0xa494 2030: "__TMSetPage," + //0xa495 2031: "__TMHeightToPage," + //0xa496 2032: "__TMOffsetToPage," + //0xa497 2033: "__TMPageToLine," + //0xa498 2034: "__TMLineToPage," + //0xa499 2035: "__TMTextWidth3," + //0xa49a 2036: "__TMLineToRHeight," + //0xa49b 2037: "," + //0xa49c 2038: "__TMGetLineRHeight," + //0xa49d 2039: "," + //0xa49e 2040: "," + //0xa49f 2041: "__TSResNew," + //0xa4a0 2042: "__TSResOpen," + //0xa4a1 2043: "__TSResClose," + //0xa4a2 2044: "__TSResSave," + //0xa4a3 2045: "__TSResRemove," + //0xa4a4 2046: "__TSResLoad," + //0xa4a5 2047: "__TSResDispose," + //0xa4a6 2048: "__TSCurResGet," + //0xa4a7 2049: "__TSLastResGet," + //0xa4a8 2050: "__TSCurResSet," + //0xa4a9 2051: "__TSRscAdd," + //0xa4aa 2052: "__TSRscGet," + //0xa4ab 2053: "__TSRscRemove," + //0xa4ac 2054: "__TSTypeRemove," + //0xa4ad 2055: "__TSRscRelease," + //0xa4ae 2056: "__TSRscDetach," + //0xa4af 2057: "__TSMaxIDGet," + //0xa4b0 2058: "__TSHdlToRsc," + //0xa4b1 2059: "__TSResLinkGet," + //0xa4b2 2060: "__TSResRouteLink," + //0xa4b3 2061: "__TSResRouteGet," + //0xa4b4 2062: "__TSRscGet2," + //0xa4b5 2063: "__TSRscGet3," + //0xa4b6 2064: "__TSResRouteUnLink," + //0xa4b7 2065: "__TSMaxIDGet2," + //0xa4b8 2066: "__TSFind," + //0xa4b9 2067: "__TSCurResGet2," + //0xa4ba 2068: "__TSMaxIDGet3," + //0xa4bb 2069: "__TSResFileGet," + //0xa4bc 2070: "__TSResRouteFind," + //0xa4bd 2071: "__TSResTypeList," + //0xa4be 2072: "__TSResIDList," + //0xa4bf 2073: "__TSRscScan2," + //0xa4c0 2074: "," + //0xa4c1 2075: "," + //0xa4c2 2076: "," + //0xa4c3 2077: "," + //0xa4c4 2078: "," + //0xa4c5 2079: "," + //0xa4c6 2080: "," + //0xa4c7 2081: "," + //0xa4c8 2082: "," + //0xa4c9 2083: "," + //0xa4ca 2084: "," + //0xa4cb 2085: "," + //0xa4cc 2086: "," + //0xa4cd 2087: "," + //0xa4ce 2088: "," + //0xa4cf 2089: "," + //0xa4d0 2090: "," + //0xa4d1 2091: "," + //0xa4d2 2092: "," + //0xa4d3 2093: "," + //0xa4d4 2094: "," + //0xa4d5 2095: "," + //0xa4d6 2096: "," + //0xa4d7 2097: "," + //0xa4d8 2098: "," + //0xa4d9 2099: "," + //0xa4da 2100: "," + //0xa4db 2101: "," + //0xa4dc 2102: "," + //0xa4dd 2103: "," + //0xa4de 2104: "," + //0xa4df 2105: "__PMInit," + //0xa4e0 2106: "__PMTini," + //0xa4e1 2107: "__PMOpen," + //0xa4e2 2108: "__PMClose," + //0xa4e3 2109: "__PMSetDefault," + //0xa4e4 2110: "__PMValidate," + //0xa4e5 2111: "__PMImageDialog," + //0xa4e6 2112: "__PMStrDialog," + //0xa4e7 2113: "__PMJobDialog," + //0xa4e8 2114: "__PMEnvCopy," + //0xa4e9 2115: "__PMJobCopy," + //0xa4ea 2116: "__PMOpenImage," + //0xa4eb 2117: "__PMRecordPage," + //0xa4ec 2118: "__PMPrintPage," + //0xa4ed 2119: "__PMCancelPage," + //0xa4ee 2120: "__PMAction," + //0xa4ef 2121: "__PMCloseImage," + //0xa4f0 2122: "__PMDrawString," + //0xa4f1 2123: "__PMVer," + //0xa4f2 2124: "__PMDrvrVer," + //0xa4f3 2125: "__PMDrvrCtrl," + //0xa4f4 2126: "__PMDrvrID," + //0xa4f5 2127: "__PMDrvrHdl," + //0xa4f6 2128: "__PMMaxRect," + //0xa4f7 2129: "__PMSaveEnv," + //0xa4f8 2130: "__PMReady," + //0xa4f9 2131: "__PMProcPrint," + //0xa4fa 2132: "__PMDrvrInfo," + //0xa4fb 2133: "__PMGetDefDlog," + //0xa4fc 2134: "__PMSetRange," + //0xa4fd 2135: "__PMPutID," + //0xa4fe 2136: "," + //0xa4ff 2137: "__FMInit," + //0xa500 2138: "__FMTini," + //0xa501 2139: "__FMGetFontList," + //0xa502 2140: "__FMSetCacheSize," + //0xa503 2141: "__FMGetCacheSize," + //0xa504 2142: "__FMSetSpaceWidth," + //0xa505 2143: "__FMGetSpaceWidth," + //0xa506 2144: "__FMSetTracking," + //0xa507 2145: "__FMGetTracking," + //0xa508 2146: "__FMGetKerningWidth," + //0xa509 2147: "__FMFontMenuSelect," + //0xa50a 2148: "__FMGetFontPolyData," + //0xa50b 2149: "," + //0xa50c 2150: "," + //0xa50d 2151: "," + //0xa50e 2152: "," + //0xa50f 2153: "," + //0xa510 2154: "," + //0xa511 2155: "," + //0xa512 2156: "," + //0xa513 2157: "," + //0xa514 2158: "," + //0xa515 2159: "," + //0xa516 2160: "," + //0xa517 2161: "," + //0xa518 2162: "," + //0xa519 2163: "," + //0xa51a 2164: "," + //0xa51b 2165: "," + //0xa51c 2166: "," + //0xa51d 2167: "," + //0xa51e 2168: "," + //0xa51f 2169: "," + //0xa520 2170: "," + //0xa521 2171: "," + //0xa522 2172: "," + //0xa523 2173: "," + //0xa524 2174: "," + //0xa525 2175: "," + //0xa526 2176: "," + //0xa527 2177: "," + //0xa528 2178: "," + //0xa529 2179: "," + //0xa52a 2180: "," + //0xa52b 2181: "," + //0xa52c 2182: "," + //0xa52d 2183: "," + //0xa52e 2184: "," + //0xa52f 2185: "," + //0xa530 2186: "," + //0xa531 2187: "," + //0xa532 2188: "," + //0xa533 2189: "," + //0xa534 2190: "," + //0xa535 2191: "," + //0xa536 2192: "," + //0xa537 2193: "," + //0xa538 2194: "," + //0xa539 2195: "," + //0xa53a 2196: "," + //0xa53b 2197: "," + //0xa53c 2198: "," + //0xa53d 2199: "," + //0xa53e 2200: "," + //0xa53f 2201: "__GMSetFlattness," + //0xa540 2202: "__GMGetFlattness," + //0xa541 2203: "__GMSetBSDepth," + //0xa542 2204: "__GMGetBSDepth," + //0xa543 2205: "__GMDrawBezier," + //0xa544 2206: "__GMDrawBSpline," + //0xa545 2207: "__GMSplitBezier," + //0xa546 2208: "__GMSplitBSpline," + //0xa547 2209: "__GMPtOnBezier," + //0xa548 2210: "__GMPtOnBSpline," + //0xa549 2211: "__GMSetBSError," + //0xa54a 2212: "__GMGetBSError," + //0xa54b 2213: "," + //0xa54c 2214: "," + //0xa54d 2215: "," + //0xa54e 2216: "," + //0xa54f 2217: "__GMSetGSDraw," + //0xa550 2218: "__GMGetGSDraw," + //0xa551 2219: "__GMSetGSGet," + //0xa552 2220: "__GMGetGSGet," + //0xa553 2221: "__GMTileRImg," + //0xa554 2222: "__GMTileImg," + //0xa555 2223: "__GMSetDispOffset," + //0xa556 2224: "__GMGetDispOffset," + //0xa557 2225: "__GMTestScrKindG," + //0xa558 2226: "__GMGetScrKindG," + //0xa559 2227: "," + //0xa55a 2228: "," + //0xa55b 2229: "," + //0xa55c 2230: "__GMGetGraphMode," + //0xa55d 2231: "__GMSetPalet," + //0xa55e 2232: "__GMGetPalet," + //0xa55f 2233: "__GMCopy2," + //0xa560 2234: "," + //0xa561 2235: "__GMMakeGrpBitmap," + //0xa562 2236: "__GMDrawScript2," + //0xa563 2237: "__GMRecordVer," + //0xa564 2238: "__GMForeRGB," + //0xa565 2239: "__GMBackRGB," + //0xa566 2240: "__GMRecEnv," + //0xa567 2241: "__GMRecPalet," + //0xa568 2242: "__GMFillRImg2," + //0xa569 2243: "__GMFillImg2," + //0xa56a 2244: "__GMSetPutID," + //0xa56b 2245: "__GMMakePalet," + //0xa56c 2246: "__GMFontRealSize," + //0xa56d 2247: "__GMGetCPDFInfo," + //0xa56e 2248: "__GMGetCPDFList," + //0xa56f 2249: "__GMScanScript," + //0xa570 2250: "__GMGetGSInfo," + //0xa571 2251: "__GMMovePoly," + //0xa572 2252: "__GMSlidePoly," + //0xa573 2253: "__GMNewBits2," + //0xa574 2254: "," + //0xa575 2255: "," + //0xa576 2256: "," + //0xa577 2257: "," + //0xa578 2258: "," + //0xa579 2259: "," + //0xa57a 2260: "," + //0xa57b 2261: "," + //0xa57c 2262: "," + //0xa57d 2263: "," + //0xa57e 2264: "," + //0xa57f 2265: "," + //0xa580 2266: "," + //0xa581 2267: "," + //0xa582 2268: "," + //0xa583 2269: "," + //0xa584 2270: "," + //0xa585 2271: "," + //0xa586 2272: "," + //0xa587 2273: "," + //0xa588 2274: "," + //0xa589 2275: "," + //0xa58a 2276: "," + //0xa58b 2277: "," + //0xa58c 2278: "," + //0xa58d 2279: "," + //0xa58e 2280: "," + //0xa58f 2281: "," + //0xa590 2282: "," + //0xa591 2283: "," + //0xa592 2284: "," + //0xa593 2285: "," + //0xa594 2286: "," + //0xa595 2287: "," + //0xa596 2288: "," + //0xa597 2289: "," + //0xa598 2290: "," + //0xa599 2291: "," + //0xa59a 2292: "," + //0xa59b 2293: "," + //0xa59c 2294: "," + //0xa59d 2295: "," + //0xa59e 2296: "," + //0xa59f 2297: "," + //0xa5a0 2298: "," + //0xa5a1 2299: "," + //0xa5a2 2300: "," + //0xa5a3 2301: "," + //0xa5a4 2302: "," + //0xa5a5 2303: "," + //0xa5a6 2304: "," + //0xa5a7 2305: "," + //0xa5a8 2306: "," + //0xa5a9 2307: "," + //0xa5aa 2308: "," + //0xa5ab 2309: "," + //0xa5ac 2310: "," + //0xa5ad 2311: "," + //0xa5ae 2312: "," + //0xa5af 2313: "," + //0xa5b0 2314: "," + //0xa5b1 2315: "," + //0xa5b2 2316: "," + //0xa5b3 2317: "," + //0xa5b4 2318: "," + //0xa5b5 2319: "," + //0xa5b6 2320: "," + //0xa5b7 2321: "," + //0xa5b8 2322: "," + //0xa5b9 2323: "," + //0xa5ba 2324: "," + //0xa5bb 2325: "," + //0xa5bc 2326: "," + //0xa5bd 2327: "," + //0xa5be 2328: "," + //0xa5bf 2329: "," + //0xa5c0 2330: "," + //0xa5c1 2331: "," + //0xa5c2 2332: "," + //0xa5c3 2333: "," + //0xa5c4 2334: "," + //0xa5c5 2335: "," + //0xa5c6 2336: "," + //0xa5c7 2337: "," + //0xa5c8 2338: "," + //0xa5c9 2339: "," + //0xa5ca 2340: "," + //0xa5cb 2341: "," + //0xa5cc 2342: "," + //0xa5cd 2343: "," + //0xa5ce 2344: "," + //0xa5cf 2345: "," + //0xa5d0 2346: "," + //0xa5d1 2347: "," + //0xa5d2 2348: "," + //0xa5d3 2349: "," + //0xa5d4 2350: "," + //0xa5d5 2351: "," + //0xa5d6 2352: "," + //0xa5d7 2353: "," + //0xa5d8 2354: "," + //0xa5d9 2355: "," + //0xa5da 2356: "," + //0xa5db 2357: "," + //0xa5dc 2358: "," + //0xa5dd 2359: "," + //0xa5de 2360: "," + //0xa5df 2361: "," + //0xa5e0 2362: "," + //0xa5e1 2363: "," + //0xa5e2 2364: "," + //0xa5e3 2365: "," + //0xa5e4 2366: "," + //0xa5e5 2367: "," + //0xa5e6 2368: "," + //0xa5e7 2369: "," + //0xa5e8 2370: "," + //0xa5e9 2371: "," + //0xa5ea 2372: "," + //0xa5eb 2373: "," + //0xa5ec 2374: "," + //0xa5ed 2375: "," + //0xa5ee 2376: "," + //0xa5ef 2377: "__SXInitSemaphore," + //0xa5f0 2378: "__SXAddSemaphore," + //0xa5f1 2379: "__SXDelSemaphore," + //0xa5f2 2380: "__SXFindSemaphore," + //0xa5f3 2381: "," + //0xa5f4 2382: "," + //0xa5f5 2383: "," + //0xa5f6 2384: "," + //0xa5f7 2385: "," + //0xa5f8 2386: "," + //0xa5f9 2387: "," + //0xa5fa 2388: "," + //0xa5fb 2389: "," + //0xa5fc 2390: "," + //0xa5fd 2391: "," + //0xa5fe 2392: "," + //0xa5ff 2393: "__CLInit," + //0xa600 2394: "__CLTini," + //0xa601 2395: "__CLNewPalet," + //0xa602 2396: "__CLRefer," + //0xa603 2397: "__CLDupDevicePalet," + //0xa604 2398: "__CLDisposePalet," + //0xa605 2399: "__CLSetCInfo," + //0xa606 2400: "__CLGetCInfo," + //0xa607 2401: "__CLAlloc," + //0xa608 2402: "__CLAllocOne," + //0xa609 2403: "__CLFree," + //0xa60a 2404: "__CLFreeOne," + //0xa60b 2405: "__CLActive," + //0xa60c 2406: "__CLRealloc," + //0xa60d 2407: "__CLLinkPalet," + //0xa60e 2408: "__CLUnlinkPalet," + //0xa60f 2409: "__CLSetDeviceMode," + //0xa610 2410: "__CLGetDeviceMode," + //0xa611 2411: "__CLGetDevice," + //0xa612 2412: "," + //0xa613 2413: "__CLDelDevice," + //0xa614 2414: "__CLSetDeviceRGB," + //0xa615 2415: "__CLDupPalet," + //0xa616 2416: "__CLCopyPalet," + //0xa617 2417: "__CLSetPickEntry," + //0xa618 2418: "__CLValueToRGB," + //0xa619 2419: "__CLRGBToValue," + //0xa61a 2420: "__CLRefer2," + //0xa61b 2421: "__CLLoadText," + //0xa61c 2422: "__CLValueToPalet," + //0xa61d 2423: "__CLPaletToValue," + //0xa61e 2424: "__CLSetScanEntry," + //0xa61f 2425: "," + //0xa620 2426: "," + //0xa621 2427: "," + //0xa622 2428: "," + //0xa623 2429: "," + //0xa624 2430: "," + //0xa625 2431: "," + //0xa626 2432: "," + //0xa627 2433: "," + //0xa628 2434: "," + //0xa629 2435: "," + //0xa62a 2436: "," + //0xa62b 2437: "," + //0xa62c 2438: "," + //0xa62d 2439: "," + //0xa62e 2440: "," + //0xa62f 2441: "," + //0xa630 2442: "," + //0xa631 2443: "," + //0xa632 2444: "," + //0xa633 2445: "," + //0xa634 2446: "," + //0xa635 2447: "," + //0xa636 2448: "," + //0xa637 2449: "," + //0xa638 2450: "," + //0xa639 2451: "," + //0xa63a 2452: "," + //0xa63b 2453: "," + //0xa63c 2454: "," + //0xa63d 2455: "," + //0xa63e 2456: "," + //0xa63f 2457: "," + //0xa640 2458: "," + //0xa641 2459: "," + //0xa642 2460: "," + //0xa643 2461: "," + //0xa644 2462: "," + //0xa645 2463: "," + //0xa646 2464: "," + //0xa647 2465: "," + //0xa648 2466: "," + //0xa649 2467: "," + //0xa64a 2468: "," + //0xa64b 2469: "," + //0xa64c 2470: "," + //0xa64d 2471: "," + //0xa64e 2472: "," + //0xa64f 2473: "," + //0xa650 2474: "," + //0xa651 2475: "," + //0xa652 2476: "," + //0xa653 2477: "," + //0xa654 2478: "," + //0xa655 2479: "," + //0xa656 2480: "," + //0xa657 2481: "," + //0xa658 2482: "," + //0xa659 2483: "," + //0xa65a 2484: "," + //0xa65b 2485: "," + //0xa65c 2486: "," + //0xa65d 2487: "," + //0xa65e 2488: "," + //0xa65f 2489: "," + //0xa660 2490: "," + //0xa661 2491: "," + //0xa662 2492: "," + //0xa663 2493: "," + //0xa664 2494: "," + //0xa665 2495: "," + //0xa666 2496: "," + //0xa667 2497: "," + //0xa668 2498: "," + //0xa669 2499: "," + //0xa66a 2500: "," + //0xa66b 2501: "," + //0xa66c 2502: "," + //0xa66d 2503: "," + //0xa66e 2504: "," + //0xa66f 2505: "," + //0xa670 2506: "," + //0xa671 2507: "," + //0xa672 2508: "," + //0xa673 2509: "," + //0xa674 2510: "," + //0xa675 2511: "," + //0xa676 2512: "," + //0xa677 2513: "," + //0xa678 2514: "," + //0xa679 2515: "," + //0xa67a 2516: "," + //0xa67b 2517: "," + //0xa67c 2518: "," + //0xa67d 2519: "," + //0xa67e 2520: "," + //0xa67f 2521: "," + //0xa680 2522: "," + //0xa681 2523: "," + //0xa682 2524: "," + //0xa683 2525: "," + //0xa684 2526: "," + //0xa685 2527: "," + //0xa686 2528: "," + //0xa687 2529: "," + //0xa688 2530: "," + //0xa689 2531: "," + //0xa68a 2532: "," + //0xa68b 2533: "," + //0xa68c 2534: "," + //0xa68d 2535: "," + //0xa68e 2536: "," + //0xa68f 2537: "," + //0xa690 2538: "," + //0xa691 2539: "," + //0xa692 2540: "," + //0xa693 2541: "," + //0xa694 2542: "," + //0xa695 2543: "," + //0xa696 2544: "," + //0xa697 2545: "," + //0xa698 2546: "," + //0xa699 2547: "," + //0xa69a 2548: "," + //0xa69b 2549: "," + //0xa69c 2550: "," + //0xa69d 2551: "," + //0xa69e 2552: "," + //0xa69f 2553: "," + //0xa6a0 2554: "," + //0xa6a1 2555: "," + //0xa6a2 2556: "," + //0xa6a3 2557: "," + //0xa6a4 2558: "," + //0xa6a5 2559: "," + //0xa6a6 2560: "," + //0xa6a7 2561: "," + //0xa6a8 2562: "," + //0xa6a9 2563: "," + //0xa6aa 2564: "," + //0xa6ab 2565: "," + //0xa6ac 2566: "," + //0xa6ad 2567: "," + //0xa6ae 2568: "," + //0xa6af 2569: "," + //0xa6b0 2570: "," + //0xa6b1 2571: "," + //0xa6b2 2572: "," + //0xa6b3 2573: "," + //0xa6b4 2574: "," + //0xa6b5 2575: "," + //0xa6b6 2576: "," + //0xa6b7 2577: "," + //0xa6b8 2578: "," + //0xa6b9 2579: "," + //0xa6ba 2580: "," + //0xa6bb 2581: "," + //0xa6bc 2582: "," + //0xa6bd 2583: "," + //0xa6be 2584: "," + //0xa6bf 2585: "," + //0xa6c0 2586: "," + //0xa6c1 2587: "," + //0xa6c2 2588: "," + //0xa6c3 2589: "," + //0xa6c4 2590: "," + //0xa6c5 2591: "," + //0xa6c6 2592: "," + //0xa6c7 2593: "," + //0xa6c8 2594: "," + //0xa6c9 2595: "," + //0xa6ca 2596: "," + //0xa6cb 2597: "," + //0xa6cc 2598: "," + //0xa6cd 2599: "," + //0xa6ce 2600: "," + //0xa6cf 2601: "," + //0xa6d0 2602: "," + //0xa6d1 2603: "," + //0xa6d2 2604: "," + //0xa6d3 2605: "," + //0xa6d4 2606: "," + //0xa6d5 2607: "," + //0xa6d6 2608: "," + //0xa6d7 2609: "," + //0xa6d8 2610: "," + //0xa6d9 2611: "," + //0xa6da 2612: "," + //0xa6db 2613: "," + //0xa6dc 2614: "," + //0xa6dd 2615: "," + //0xa6de 2616: "," + //0xa6df 2617: "," + //0xa6e0 2618: "," + //0xa6e1 2619: "," + //0xa6e2 2620: "," + //0xa6e3 2621: "," + //0xa6e4 2622: "," + //0xa6e5 2623: "," + //0xa6e6 2624: "," + //0xa6e7 2625: "," + //0xa6e8 2626: "," + //0xa6e9 2627: "," + //0xa6ea 2628: "," + //0xa6eb 2629: "," + //0xa6ec 2630: "," + //0xa6ed 2631: "," + //0xa6ee 2632: "," + //0xa6ef 2633: "," + //0xa6f0 2634: "," + //0xa6f1 2635: "," + //0xa6f2 2636: "," + //0xa6f3 2637: "," + //0xa6f4 2638: "," + //0xa6f5 2639: "," + //0xa6f6 2640: "," + //0xa6f7 2641: "," + //0xa6f8 2642: "," + //0xa6f9 2643: "," + //0xa6fa 2644: "," + //0xa6fb 2645: "," + //0xa6fc 2646: "," + //0xa6fd 2647: "," + //0xa6fe 2648: "," + //0xa6ff 2649: "__VMInit," + //0xa700 2650: "__VMTini," + //0xa701 2651: "," + //0xa702 2652: "," + //0xa703 2653: "," + //0xa704 2654: "," + //0xa705 2655: "," + //0xa706 2656: "," + //0xa707 2657: "," + //0xa708 2658: "," + //0xa709 2659: "," + //0xa70a 2660: "," + //0xa70b 2661: "," + //0xa70c 2662: "," + //0xa70d 2663: "," + //0xa70e 2664: "," + //0xa70f 2665: "__VMExpand," + //0xa710 2666: "__VMCompress," + //0xa711 2667: "__VMExpDirect," + //0xa712 2668: "__VMGetInfo," + //0xa713 2669: "__VMRscInfo," + //0xa714 2670: "__VMRscHdlGet," + //0xa715 2671: "__VMSetCurrentID," + //0xa716 2672: "__VMGetCurrentID," + //0xa717 2673: "__VMGetPalette," + //0xa718 2674: "," + //0xa719 2675: "," + //0xa71a 2676: "," + //0xa71b 2677: "," + //0xa71c 2678: "," + //0xa71d 2679: "," + //0xa71e 2680: "," + //0xa71f 2681: "," + //0xa720 2682: "," + //0xa721 2683: "," + //0xa722 2684: "," + //0xa723 2685: "," + //0xa724 2686: "," + //0xa725 2687: "," + //0xa726 2688: "," + //0xa727 2689: "," + //0xa728 2690: "," + //0xa729 2691: "," + //0xa72a 2692: "," + //0xa72b 2693: "," + //0xa72c 2694: "," + //0xa72d 2695: "," + //0xa72e 2696: "," + //0xa72f 2697: "__VMSetAnim," + //0xa730 2698: "__VMGetAnim," + //0xa731 2699: "__VMSetParam," + //0xa732 2700: "__VMGetParam," + //0xa733 2701: "__VMCreate," + //0xa734 2702: "__VMCreateF," + //0xa735 2703: "__VMOpen," + //0xa736 2704: "__VMClose," + //0xa737 2705: "__VMDispose," + //0xa738 2706: "__VMRegistSample," + //0xa739 2707: "__VMDeleteSample," + //0xa73a 2708: "__VMReferSample," + //0xa73b 2709: "__VMGetSample," + //0xa73c 2710: "__VMGetBits," + //0xa73d 2711: "__VMInsertFrame," + //0xa73e 2712: "__VMDeleteFrame," + //0xa73f 2713: "__VMTimeToFrame," + //0xa740 2714: "__VMFrameToSample," + //0xa741 2715: "__VMTrans," + //0xa742 2716: "__VMPlay," + //0xa743 2717: "__VMEvent," + //0xa744 2718: "__VMStop," + //0xa745 2719: "__VMPause," + //0xa746 2720: "__VMUpdate," + //0xa747 2721: "__VMSetUser," + //0xa748 2722: "__VMGetUser," + //0xa749 2723: "__VMDisplay," + //0xa74a 2724: "," + //0xa74b 2725: "," + //0xa74c 2726: "," + //0xa74d 2727: "," + //0xa74e 2728: "," + //0xa74f 2729: "," + //0xa750 2730: "," + //0xa751 2731: "," + //0xa752 2732: "," + //0xa753 2733: "," + //0xa754 2734: "," + //0xa755 2735: "," + //0xa756 2736: "," + //0xa757 2737: "," + //0xa758 2738: "," + //0xa759 2739: "," + //0xa75a 2740: "," + //0xa75b 2741: "," + //0xa75c 2742: "," + //0xa75d 2743: "," + //0xa75e 2744: "," + //0xa75f 2745: "," + //0xa760 2746: "," + //0xa761 2747: "," + //0xa762 2748: "," + //0xa763 2749: "," + //0xa764 2750: "," + //0xa765 2751: "," + //0xa766 2752: "," + //0xa767 2753: "," + //0xa768 2754: "," + //0xa769 2755: "," + //0xa76a 2756: "," + //0xa76b 2757: "," + //0xa76c 2758: "," + //0xa76d 2759: "," + //0xa76e 2760: "," + //0xa76f 2761: "," + //0xa770 2762: "," + //0xa771 2763: "," + //0xa772 2764: "," + //0xa773 2765: "," + //0xa774 2766: "," + //0xa775 2767: "," + //0xa776 2768: "," + //0xa777 2769: "," + //0xa778 2770: "," + //0xa779 2771: "," + //0xa77a 2772: "," + //0xa77b 2773: "," + //0xa77c 2774: "," + //0xa77d 2775: "," + //0xa77e 2776: "," + //0xa77f 2777: "," + //0xa780 2778: "," + //0xa781 2779: "," + //0xa782 2780: "," + //0xa783 2781: "," + //0xa784 2782: "," + //0xa785 2783: "," + //0xa786 2784: "," + //0xa787 2785: "," + //0xa788 2786: "," + //0xa789 2787: "," + //0xa78a 2788: "," + //0xa78b 2789: "," + //0xa78c 2790: "," + //0xa78d 2791: "," + //0xa78e 2792: "," + //0xa78f 2793: "," + //0xa790 2794: "," + //0xa791 2795: "," + //0xa792 2796: "," + //0xa793 2797: "," + //0xa794 2798: "," + //0xa795 2799: "," + //0xa796 2800: "," + //0xa797 2801: "," + //0xa798 2802: "," + //0xa799 2803: "," + //0xa79a 2804: "," + //0xa79b 2805: "," + //0xa79c 2806: "," + //0xa79d 2807: "," + //0xa79e 2808: "," + //0xa79f 2809: "," + //0xa7a0 2810: "," + //0xa7a1 2811: "," + //0xa7a2 2812: "," + //0xa7a3 2813: "," + //0xa7a4 2814: "," + //0xa7a5 2815: "," + //0xa7a6 2816: "," + //0xa7a7 2817: "," + //0xa7a8 2818: "," + //0xa7a9 2819: "," + //0xa7aa 2820: "," + //0xa7ab 2821: "," + //0xa7ac 2822: "," + //0xa7ad 2823: "," + //0xa7ae 2824: "," + //0xa7af 2825: "," + //0xa7b0 2826: "," + //0xa7b1 2827: "," + //0xa7b2 2828: "," + //0xa7b3 2829: "," + //0xa7b4 2830: "," + //0xa7b5 2831: "," + //0xa7b6 2832: "," + //0xa7b7 2833: "," + //0xa7b8 2834: "," + //0xa7b9 2835: "," + //0xa7ba 2836: "," + //0xa7bb 2837: "," + //0xa7bc 2838: "," + //0xa7bd 2839: "," + //0xa7be 2840: "," + //0xa7bf 2841: "," + //0xa7c0 2842: "," + //0xa7c1 2843: "," + //0xa7c2 2844: "," + //0xa7c3 2845: "," + //0xa7c4 2846: "," + //0xa7c5 2847: "," + //0xa7c6 2848: "," + //0xa7c7 2849: "," + //0xa7c8 2850: "," + //0xa7c9 2851: "," + //0xa7ca 2852: "," + //0xa7cb 2853: "," + //0xa7cc 2854: "," + //0xa7cd 2855: "," + //0xa7ce 2856: "," + //0xa7cf 2857: "," + //0xa7d0 2858: "," + //0xa7d1 2859: "," + //0xa7d2 2860: "," + //0xa7d3 2861: "," + //0xa7d4 2862: "," + //0xa7d5 2863: "," + //0xa7d6 2864: "," + //0xa7d7 2865: "," + //0xa7d8 2866: "," + //0xa7d9 2867: "," + //0xa7da 2868: "," + //0xa7db 2869: "," + //0xa7dc 2870: "," + //0xa7dd 2871: "," + //0xa7de 2872: "," + //0xa7df 2873: "," + //0xa7e0 2874: "," + //0xa7e1 2875: "," + //0xa7e2 2876: "," + //0xa7e3 2877: "," + //0xa7e4 2878: "," + //0xa7e5 2879: "," + //0xa7e6 2880: "," + //0xa7e7 2881: "," + //0xa7e8 2882: "," + //0xa7e9 2883: "," + //0xa7ea 2884: "," + //0xa7eb 2885: "," + //0xa7ec 2886: "," + //0xa7ed 2887: "," + //0xa7ee 2888: "," + //0xa7ef 2889: "," + //0xa7f0 2890: "," + //0xa7f1 2891: "," + //0xa7f2 2892: "," + //0xa7f3 2893: "," + //0xa7f4 2894: "," + //0xa7f5 2895: "," + //0xa7f6 2896: "," + //0xa7f7 2897: "," + //0xa7f8 2898: "," + //0xa7f9 2899: "," + //0xa7fa 2900: "," + //0xa7fb 2901: "," + //0xa7fc 2902: "," + //0xa7fd 2903: "," + //0xa7fe 2904: "" //0xa7ff 2905: ).split (",", 2048); //limitを書かないと末尾の空文字列が削除されて配列が短くなり末尾の要素を参照できなくなる 2906: 2907: public static int disPC; //逆アセンブル用のpc 2908: public static int disPC0; 2909: 2910: public static int disOC; //オペコード 2911: 2912: public static int disSupervisor; //0=ユーザコード,0以外=スーパーバイザコード 2913: 2914: //disStatus 2915: // 最後に逆アセンブルした命令の種類 2916: // DIS_ALWAYS_BRANCH 空行あり 完全分岐命令(RTE,RTD,RTS,RTR,JMP,BRA,_ABORTJOB,_EXIT,_EXIT2,FBRA)。常に分岐して戻ってこない 2917: // DIS_SOMETIMES_BRANCH 空行なし 条件分岐命令(DBcc,Bcc,PDBcc,PBcc,FDBcc,FBcc)。分岐したときは戻ってこない 2918: // DIS_CALL_SUBROUTINE 空行なし サブルーチンを呼び出す命令(BSR,JSR)。分岐するがほとんどの場合は戻ってくる 2919: public static final int DIS_ALWAYS_BRANCH = 1; 2920: public static final int DIS_SOMETIMES_BRANCH = 2; 2921: public static final int DIS_CALL_SUBROUTINE = 4; 2922: public static int disStatus; //最後に逆アセンブルした命令の種類 2923: 2924: 2925: //プログラムの範囲 2926: public static int disProgramHead; //プログラムの先頭。0=なし 2927: public static int disProgramTail; //プログラムの末尾 2928: public static int disProgramMode; //アドレスとオフセット。0=アドレスのみ,1=オフセットのみ,2=両方 2929: 2930: //disProgramHex8 (sb, a) 2931: public static StringBuilder disProgramHex8 (StringBuilder sb, int a) { 2932: //アドレス 2933: // アドレスのみまたは両方のとき 2934: // '$'とアドレスを表示する 2935: if (disProgramMode == 0 || //アドレスのみまたは 2936: disProgramMode == 2) { //両方のとき 2937: XEiJ.fmtHex8 (sb.append ('$'), a); //'$'とアドレスを表示する 2938: } 2939: //オフセット 2940: // オフセットのみまたは両方のとき 2941: // プログラムがありかつ先頭が0でなくかつ範囲内のとき 2942: // 両方のとき 2943: // ':'を表示する 2944: // 'L'とオフセットを表示する 2945: // プログラムがないまたは先頭が0または範囲外のとき 2946: // オフセットのみのとき 2947: // '$'とアドレスを表示する 2948: if (disProgramMode == 1 || //オフセットのみまたは 2949: disProgramMode == 2) { //両方のとき 2950: int index = LabeledAddress.lblGetIndex (a); 2951: if (index != -1 && //プログラムがありかつ 2952: LabeledAddress.lblLastGetHead != 0 && //先頭が0でなくかつ 2953: disProgramHead - 256 <= a && a <= disProgramTail + 32768) { //範囲内のとき 2954: if (disProgramMode == 2) { //両方のとき 2955: sb.append (':'); //':'を表示する 2956: } 2957: XEiJ.fmtHex6 (sb.append ('L'), a - disProgramHead); //'L'とオフセットを表示する 2958: } else { //プログラムがないまたは先頭が0または範囲外のとき 2959: if (disProgramMode == 1) { //オフセットのみのとき 2960: XEiJ.fmtHex8 (sb.append ('$'), a); //'$'とアドレスを表示する 2961: } 2962: } 2963: } 2964: return sb; 2965: } //disProgramHex8 2966: 2967: 2968: //sb = disDisassemble (sb, address, supervisor) 2969: //sb = disDisassemble (sb, address, supervisor, head, tail, mode) 2970: // 1命令逆アセンブルする 2971: public static StringBuilder disDisassemble (StringBuilder sb, int address, int supervisor) { 2972: return disDisassemble (sb, address, supervisor, 0, 0, 0); 2973: } 2974: public static StringBuilder disDisassemble (StringBuilder sb, int address, int supervisor, int head, int tail, int mode) { 2975: disPC = address; 2976: disSupervisor = supervisor; 2977: disProgramHead = head; 2978: disProgramTail = tail; 2979: disProgramMode = mode; 2980: disStatus = 0; 2981: disPC0 = disPC; 2982: disOC = MC68060.mmuPeekWordZeroCode (disPC, disSupervisor); //第1オペコード。必ずゼロ拡張すること 2983: disPC += 2; 2984: switch (disOC >>> 6) { //第1オペコードの上位10ビット。disOCはゼロ拡張されているので0b1111_111_111&を省略 2985: 2986: // PRIVILEGED?|CCin |CCout|ADDRESSING| 2987: // MPU | |XNZVC|XNZVC|DAM+-WXZPI| FORMAT 2988: //----------------------------------------------+-+-----+-----+----------+-------------------- 2989: //ORI.B #<data>,CCR 012346|-|*****|*****| |0000_000_000_111_100-{data} 2990: //ORI.B #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_000_000_mmm_rrr-{data} 2991: case 0b0000_000_000: return disOriByte (sb); 2992: 2993: //ORI.W #<data>,SR 012346|P|*****|*****| |0000_000_001_111_100-{data} 2994: //ORI.W #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_000_001_mmm_rrr-{data} 2995: case 0b0000_000_001: return disOriWord (sb); 2996: 2997: //ORI.L #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_000_010_mmm_rrr-{data} 2998: case 0b0000_000_010: return disOriLong (sb); 2999: 3000: //BITREV.L Dr ------|-|-----|-----| |0000_000_011_000_rrr (ISA_C) 3001: //CMP2.B <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_000_011_mmm_rrr-rnnn_000_000_000_000 3002: //CHK2.B <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_000_011_mmm_rrr-rnnn_100_000_000_000 3003: case 0b0000_000_011: return disCmp2Chk2Byte (sb); 3004: 3005: //ANDI.B #<data>,CCR 012346|-|*****|*****| |0000_001_000_111_100-{data} 3006: //ANDI.B #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_001_000_mmm_rrr-{data} 3007: case 0b0000_001_000: return disAndiByte (sb); 3008: 3009: //ANDI.W #<data>,SR 012346|P|*****|*****| |0000_001_001_111_100-{data} 3010: //ANDI.W #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_001_001_mmm_rrr-{data} 3011: case 0b0000_001_001: return disAndiWord (sb); 3012: 3013: //ANDI.L #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_001_010_mmm_rrr-{data} 3014: case 0b0000_001_010: return disAndiLong (sb); 3015: 3016: //BYTEREV.L Dr ------|-|-----|-----| |0000_001_011_000_rrr (ISA_C) 3017: //CMP2.W <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_001_011_mmm_rrr-rnnn_000_000_000_000 3018: //CHK2.W <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_001_011_mmm_rrr-rnnn_100_000_000_000 3019: case 0b0000_001_011: return disCmp2Chk2Word (sb); 3020: 3021: //SUBI.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_010_000_mmm_rrr-{data} 3022: case 0b0000_010_000: return disSubiByte (sb); 3023: 3024: //SUBI.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_010_001_mmm_rrr-{data} 3025: case 0b0000_010_001: return disSubiWord (sb); 3026: 3027: //SUBI.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_010_010_mmm_rrr-{data} 3028: case 0b0000_010_010: return disSubiLong (sb); 3029: 3030: //FF1.L Dr ------|-|-UUUU|-**00| |0000_010_011_000_rrr (ISA_C) 3031: //CMP2.L <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_010_011_mmm_rrr-rnnn_000_000_000_000 3032: //CHK2.L <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_010_011_mmm_rrr-rnnn_100_000_000_000 3033: case 0b0000_010_011: return disCmp2Chk2Long (sb); 3034: 3035: //ADDI.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_011_000_mmm_rrr-{data} 3036: case 0b0000_011_000: return disAddiByte (sb); 3037: 3038: //ADDI.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_011_001_mmm_rrr-{data} 3039: case 0b0000_011_001: return disAddiWord (sb); 3040: 3041: //ADDI.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_011_010_mmm_rrr-{data} 3042: case 0b0000_011_010: return disAddiLong (sb); 3043: 3044: //RTM Rn --2---|-|UUUUU|*****| |0000_011_011_00n_nnn 3045: //CALLM #<data>,<ea> --2---|-|-----|-----| M WXZP |0000_011_011_mmm_rrr-0000_000_0dd_ddd_ddd 3046: case 0b0000_011_011: return disCallm (sb); 3047: 3048: //BTST.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_000_000_rrr-{data} 3049: //BTST.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZP |0000_100_000_mmm_rrr-{data} 3050: case 0b0000_100_000: return disBtstImm (sb); 3051: 3052: //BCHG.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_001_000_rrr-{data} 3053: //BCHG.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_100_001_mmm_rrr-{data} 3054: case 0b0000_100_001: return disBchgImm (sb); 3055: 3056: //BCLR.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_010_000_rrr-{data} 3057: //BCLR.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_100_010_mmm_rrr-{data} 3058: case 0b0000_100_010: return disBclrImm (sb); 3059: 3060: //BSET.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_011_000_rrr-{data} 3061: //BSET.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_100_011_mmm_rrr-{data} 3062: case 0b0000_100_011: return disBsetImm (sb); 3063: 3064: //EORI.B #<data>,CCR 012346|-|*****|*****| |0000_101_000_111_100-{data} 3065: //EORI.B #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_101_000_mmm_rrr-{data} 3066: case 0b0000_101_000: return disEoriByte (sb); 3067: 3068: //EORI.W #<data>,SR 012346|P|*****|*****| |0000_101_001_111_100-{data} 3069: //EORI.W #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_101_001_mmm_rrr-{data} 3070: case 0b0000_101_001: return disEoriWord (sb); 3071: 3072: //EORI.L #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_101_010_mmm_rrr-{data} 3073: case 0b0000_101_010: return disEoriLong (sb); 3074: 3075: //CAS.B Dc,Du,<ea> --2346|-|-UUUU|-****| M+-WXZ |0000_101_011_mmm_rrr-0000_000_uuu_000_ccc 3076: case 0b0000_101_011: return disCasByte (sb); 3077: 3078: //CMPI.B #<data>,<ea> 012346|-|-UUUU|-****|D M+-WXZ |0000_110_000_mmm_rrr-{data} 3079: //CMPI.B #<data>,<ea> --2346|-|-UUUU|-****| P |0000_110_000_mmm_rrr-{data} 3080: case 0b0000_110_000: return disCmpiByte (sb); 3081: 3082: //CMPI.W #<data>,<ea> 012346|-|-UUUU|-****|D M+-WXZ |0000_110_001_mmm_rrr-{data} 3083: //CMPI.W #<data>,<ea> --2346|-|-UUUU|-****| P |0000_110_001_mmm_rrr-{data} 3084: case 0b0000_110_001: return disCmpiWord (sb); 3085: 3086: //CMPI.L #<data>,<ea> 012346|-|-UUUU|-****|D M+-WXZ |0000_110_010_mmm_rrr-{data} 3087: //CMPI.L #<data>,<ea> --2346|-|-UUUU|-****| P |0000_110_010_mmm_rrr-{data} 3088: case 0b0000_110_010: return disCmpiLong (sb); 3089: 3090: //CAS2.W Dc1:Dc2,Du1:Du2,(Rn1):(Rn2) --234S|-|-UUUU|-****| |0000_110_011_111_100-rnnn_000_uuu_000_ccc(1)-rnnn_000_uuu_000_ccc(2) 3091: //CAS.W Dc,Du,<ea> --2346|-|-UUUU|-****| M+-WXZ |0000_110_011_mmm_rrr-0000_000_uuu_000_ccc (68060 software emulate misaligned <ea>) 3092: case 0b0000_110_011: return disCasWord (sb); 3093: 3094: //MOVES.B <ea>,Rn -12346|P|-----|-----| M+-WXZ |0000_111_000_mmm_rrr-rnnn_000_000_000_000 3095: //MOVES.B Rn,<ea> -12346|P|-----|-----| M+-WXZ |0000_111_000_mmm_rrr-rnnn_100_000_000_000 3096: case 0b0000_111_000: return disMovesByte (sb); 3097: 3098: //MOVES.W <ea>,Rn -12346|P|-----|-----| M+-WXZ |0000_111_001_mmm_rrr-rnnn_000_000_000_000 3099: //MOVES.W Rn,<ea> -12346|P|-----|-----| M+-WXZ |0000_111_001_mmm_rrr-rnnn_100_000_000_000 3100: case 0b0000_111_001: return disMovesWord (sb); 3101: 3102: //MOVES.L <ea>,Rn -12346|P|-----|-----| M+-WXZ |0000_111_010_mmm_rrr-rnnn_000_000_000_000 3103: //MOVES.L Rn,<ea> -12346|P|-----|-----| M+-WXZ |0000_111_010_mmm_rrr-rnnn_100_000_000_000 3104: case 0b0000_111_010: return disMovesLong (sb); 3105: 3106: //CAS2.L Dc1:Dc2,Du1:Du2,(Rn1):(Rn2) --234S|-|-UUUU|-****| |0000_111_011_111_100-rnnn_000_uuu_000_ccc(1)-rnnn_000_uuu_000_ccc(2) 3107: //CAS.L Dc,Du,<ea> --2346|-|-UUUU|-****| M+-WXZ |0000_111_011_mmm_rrr-0000_000_uuu_000_ccc (68060 software emulate misaligned <ea>) 3108: case 0b0000_111_011: return disCasLong (sb); 3109: 3110: //BTST.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_100_000_rrr 3111: //MOVEP.W (d16,Ar),Dq 01234S|-|-----|-----| |0000_qqq_100_001_rrr-{data} 3112: //BTST.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZPI|0000_qqq_100_mmm_rrr 3113: case 0b0000_000_100: 3114: case 0b0000_001_100: 3115: case 0b0000_010_100: 3116: case 0b0000_011_100: 3117: case 0b0000_100_100: 3118: case 0b0000_101_100: 3119: case 0b0000_110_100: 3120: case 0b0000_111_100: return disBtstReg (sb); 3121: 3122: //BCHG.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_101_000_rrr 3123: //MOVEP.L (d16,Ar),Dq 01234S|-|-----|-----| |0000_qqq_101_001_rrr-{data} 3124: //BCHG.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_qqq_101_mmm_rrr 3125: case 0b0000_000_101: 3126: case 0b0000_001_101: 3127: case 0b0000_010_101: 3128: case 0b0000_011_101: 3129: case 0b0000_100_101: 3130: case 0b0000_101_101: 3131: case 0b0000_110_101: 3132: case 0b0000_111_101: return disBchgReg (sb); 3133: 3134: //BCLR.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_110_000_rrr 3135: //MOVEP.W Dq,(d16,Ar) 01234S|-|-----|-----| |0000_qqq_110_001_rrr-{data} 3136: //BCLR.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_qqq_110_mmm_rrr 3137: case 0b0000_000_110: 3138: case 0b0000_001_110: 3139: case 0b0000_010_110: 3140: case 0b0000_011_110: 3141: case 0b0000_100_110: 3142: case 0b0000_101_110: 3143: case 0b0000_110_110: 3144: case 0b0000_111_110: return disBclrReg (sb); 3145: 3146: //BSET.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_111_000_rrr 3147: //MOVEP.L Dq,(d16,Ar) 01234S|-|-----|-----| |0000_qqq_111_001_rrr-{data} 3148: //BSET.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_qqq_111_mmm_rrr 3149: case 0b0000_000_111: 3150: case 0b0000_001_111: 3151: case 0b0000_010_111: 3152: case 0b0000_011_111: 3153: case 0b0000_100_111: 3154: case 0b0000_101_111: 3155: case 0b0000_110_111: 3156: case 0b0000_111_111: return disBsetReg (sb); 3157: 3158: //MOVE.B <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_000_mmm_rrr 3159: case 0b0001_000_000: 3160: case 0b0001_001_000: 3161: case 0b0001_010_000: 3162: case 0b0001_011_000: 3163: case 0b0001_100_000: 3164: case 0b0001_101_000: 3165: case 0b0001_110_000: 3166: case 0b0001_111_000: return disMoveToRegByte (sb); 3167: 3168: //case 0b0001_000_001: 3169: //case 0b0001_001_001: 3170: //case 0b0001_010_001: 3171: //case 0b0001_011_001: 3172: //case 0b0001_100_001: 3173: //case 0b0001_101_001: 3174: //case 0b0001_110_001: 3175: //case 0b0001_111_001: 3176: 3177: //MOVE.B <ea>,<nnnqqq> 012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_nnn_mmm_rrr (nnnqqq:M+-WXZ) 3178: case 0b0001_000_010: 3179: case 0b0001_000_011: 3180: case 0b0001_000_100: 3181: case 0b0001_000_101: 3182: case 0b0001_000_110: 3183: case 0b0001_000_111: 3184: case 0b0001_001_010: 3185: case 0b0001_001_011: 3186: case 0b0001_001_100: 3187: case 0b0001_001_101: 3188: case 0b0001_001_110: 3189: case 0b0001_001_111: 3190: case 0b0001_010_010: 3191: case 0b0001_010_011: 3192: case 0b0001_010_100: 3193: case 0b0001_010_101: 3194: case 0b0001_010_110: 3195: case 0b0001_011_010: 3196: case 0b0001_011_011: 3197: case 0b0001_011_100: 3198: case 0b0001_011_101: 3199: case 0b0001_011_110: 3200: case 0b0001_100_010: 3201: case 0b0001_100_011: 3202: case 0b0001_100_100: 3203: case 0b0001_100_101: 3204: case 0b0001_100_110: 3205: case 0b0001_101_010: 3206: case 0b0001_101_011: 3207: case 0b0001_101_100: 3208: case 0b0001_101_101: 3209: case 0b0001_101_110: 3210: case 0b0001_110_010: 3211: case 0b0001_110_011: 3212: case 0b0001_110_100: 3213: case 0b0001_110_101: 3214: case 0b0001_110_110: 3215: case 0b0001_111_010: 3216: case 0b0001_111_011: 3217: case 0b0001_111_100: 3218: case 0b0001_111_101: 3219: case 0b0001_111_110: return disMoveToMemByte (sb); 3220: 3221: //case 0b0001_010_111: 3222: //case 0b0001_011_111: 3223: //case 0b0001_100_111: 3224: //case 0b0001_101_111: 3225: //case 0b0001_110_111: 3226: //case 0b0001_111_111: 3227: 3228: //MOVE.L <ea>,Dq 012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_000_mmm_rrr 3229: case 0b0010_000_000: 3230: case 0b0010_001_000: 3231: case 0b0010_010_000: 3232: case 0b0010_011_000: 3233: case 0b0010_100_000: 3234: case 0b0010_101_000: 3235: case 0b0010_110_000: 3236: case 0b0010_111_000: return disMoveToRegLong (sb); 3237: 3238: //MOVEA.L <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|0010_qqq_001_mmm_rrr 3239: case 0b0010_000_001: 3240: case 0b0010_001_001: 3241: case 0b0010_010_001: 3242: case 0b0010_011_001: 3243: case 0b0010_100_001: 3244: case 0b0010_101_001: 3245: case 0b0010_110_001: 3246: case 0b0010_111_001: return disMoveaLong (sb); 3247: 3248: //MOVE.L <ea>,<nnnqqq> 012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_nnn_mmm_rrr (nnnqqq:M+-WXZ) 3249: case 0b0010_000_010: 3250: case 0b0010_000_011: 3251: case 0b0010_000_100: 3252: case 0b0010_000_101: 3253: case 0b0010_000_110: 3254: case 0b0010_000_111: 3255: case 0b0010_001_010: 3256: case 0b0010_001_011: 3257: case 0b0010_001_100: 3258: case 0b0010_001_101: 3259: case 0b0010_001_110: 3260: case 0b0010_001_111: 3261: case 0b0010_010_010: 3262: case 0b0010_010_011: 3263: case 0b0010_010_100: 3264: case 0b0010_010_101: 3265: case 0b0010_010_110: 3266: case 0b0010_011_010: 3267: case 0b0010_011_011: 3268: case 0b0010_011_100: 3269: case 0b0010_011_101: 3270: case 0b0010_011_110: 3271: case 0b0010_100_010: 3272: case 0b0010_100_011: 3273: case 0b0010_100_100: 3274: case 0b0010_100_101: 3275: case 0b0010_100_110: 3276: case 0b0010_101_010: 3277: case 0b0010_101_011: 3278: case 0b0010_101_100: 3279: case 0b0010_101_101: 3280: case 0b0010_101_110: 3281: case 0b0010_110_010: 3282: case 0b0010_110_011: 3283: case 0b0010_110_100: 3284: case 0b0010_110_101: 3285: case 0b0010_110_110: 3286: case 0b0010_111_010: 3287: case 0b0010_111_011: 3288: case 0b0010_111_100: 3289: case 0b0010_111_101: 3290: case 0b0010_111_110: return disMoveToMemLong (sb); 3291: 3292: //case 0b0010_010_111: 3293: //case 0b0010_011_111: 3294: //case 0b0010_100_111: 3295: //case 0b0010_101_111: 3296: //case 0b0010_110_111: 3297: //case 0b0010_111_111: 3298: 3299: //MOVE.W <ea>,Dq 012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_000_mmm_rrr 3300: case 0b0011_000_000: 3301: case 0b0011_001_000: 3302: case 0b0011_010_000: 3303: case 0b0011_011_000: 3304: case 0b0011_100_000: 3305: case 0b0011_101_000: 3306: case 0b0011_110_000: 3307: case 0b0011_111_000: return disMoveToRegWord (sb); 3308: 3309: //MOVEA.W <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|0011_qqq_001_mmm_rrr 3310: case 0b0011_000_001: 3311: case 0b0011_001_001: 3312: case 0b0011_010_001: 3313: case 0b0011_011_001: 3314: case 0b0011_100_001: 3315: case 0b0011_101_001: 3316: case 0b0011_110_001: 3317: case 0b0011_111_001: return disMoveaWord (sb); 3318: 3319: //MOVE.W <ea>,<nnnqqq> 012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_nnn_mmm_rrr (nnnqqq:M+-WXZ) 3320: case 0b0011_000_010: 3321: case 0b0011_000_011: 3322: case 0b0011_000_100: 3323: case 0b0011_000_101: 3324: case 0b0011_000_110: 3325: case 0b0011_000_111: 3326: case 0b0011_001_010: 3327: case 0b0011_001_011: 3328: case 0b0011_001_100: 3329: case 0b0011_001_101: 3330: case 0b0011_001_110: 3331: case 0b0011_001_111: 3332: case 0b0011_010_010: 3333: case 0b0011_010_011: 3334: case 0b0011_010_100: 3335: case 0b0011_010_101: 3336: case 0b0011_010_110: 3337: case 0b0011_011_010: 3338: case 0b0011_011_011: 3339: case 0b0011_011_100: 3340: case 0b0011_011_101: 3341: case 0b0011_011_110: 3342: case 0b0011_100_010: 3343: case 0b0011_100_011: 3344: case 0b0011_100_100: 3345: case 0b0011_100_101: 3346: case 0b0011_100_110: 3347: case 0b0011_101_010: 3348: case 0b0011_101_011: 3349: case 0b0011_101_100: 3350: case 0b0011_101_101: 3351: case 0b0011_101_110: 3352: case 0b0011_110_010: 3353: case 0b0011_110_011: 3354: case 0b0011_110_100: 3355: case 0b0011_110_101: 3356: case 0b0011_110_110: 3357: case 0b0011_111_010: 3358: case 0b0011_111_011: 3359: case 0b0011_111_100: 3360: case 0b0011_111_101: 3361: case 0b0011_111_110: return disMoveToMemWord (sb); 3362: 3363: //case 0b0011_010_111: 3364: //case 0b0011_011_111: 3365: //case 0b0011_100_111: 3366: //case 0b0011_101_111: 3367: //case 0b0011_110_111: 3368: //case 0b0011_111_111: 3369: 3370: //NEGX.B <ea> 012346|-|*UUUU|*****|D M+-WXZ |0100_000_000_mmm_rrr 3371: case 0b0100_000_000: return disNegxByte (sb); 3372: 3373: //NEGX.W <ea> 012346|-|*UUUU|*****|D M+-WXZ |0100_000_001_mmm_rrr 3374: case 0b0100_000_001: return disNegxWord (sb); 3375: 3376: //NEGX.L <ea> 012346|-|*UUUU|*****|D M+-WXZ |0100_000_010_mmm_rrr 3377: case 0b0100_000_010: return disNegxLong (sb); 3378: 3379: //STRLDSR.W #<data> ------|P|*****|*****| |0100_000_011_100_111-0100_011_011_111_100-{data} (ISA_C) 3380: //MOVE.W SR,<ea> 0-----|-|*****|-----|D M+-WXZ |0100_000_011_mmm_rrr (68000 and 68008 read before move) 3381: //MOVE.W SR,<ea> -12346|P|*****|-----|D M+-WXZ |0100_000_011_mmm_rrr 3382: case 0b0100_000_011: return disMoveFromSR (sb); 3383: 3384: //CLR.B <ea> 012346|-|-UUUU|-0100|D M+-WXZ |0100_001_000_mmm_rrr (68000 and 68008 read before clear) 3385: case 0b0100_001_000: return disClrByte (sb); 3386: 3387: //CLR.W <ea> 012346|-|-UUUU|-0100|D M+-WXZ |0100_001_001_mmm_rrr (68000 and 68008 read before clear) 3388: case 0b0100_001_001: return disClrWord (sb); 3389: 3390: //CLR.L <ea> 012346|-|-UUUU|-0100|D M+-WXZ |0100_001_010_mmm_rrr (68000 and 68008 read before clear) 3391: case 0b0100_001_010: return disClrLong (sb); 3392: 3393: //MOVE.W CCR,<ea> -12346|-|*****|-----|D M+-WXZ |0100_001_011_mmm_rrr 3394: case 0b0100_001_011: return disMoveFromCCR (sb); 3395: 3396: //NEG.B <ea> 012346|-|UUUUU|*****|D M+-WXZ |0100_010_000_mmm_rrr 3397: case 0b0100_010_000: return disNegByte (sb); 3398: 3399: //NEG.W <ea> 012346|-|UUUUU|*****|D M+-WXZ |0100_010_001_mmm_rrr 3400: case 0b0100_010_001: return disNegWord (sb); 3401: 3402: //NEG.L <ea> 012346|-|UUUUU|*****|D M+-WXZ |0100_010_010_mmm_rrr 3403: case 0b0100_010_010: return disNegLong (sb); 3404: 3405: //MOVE.W <ea>,CCR 012346|-|UUUUU|*****|D M+-WXZPI|0100_010_011_mmm_rrr 3406: case 0b0100_010_011: return disMoveToCCR (sb); 3407: 3408: //NOT.B <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_011_000_mmm_rrr 3409: case 0b0100_011_000: return disNotByte (sb); 3410: 3411: //NOT.W <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_011_001_mmm_rrr 3412: case 0b0100_011_001: return disNotWord (sb); 3413: 3414: //NOT.L <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_011_010_mmm_rrr 3415: case 0b0100_011_010: return disNotLong (sb); 3416: 3417: //MOVE.W <ea>,SR 012346|P|UUUUU|*****|D M+-WXZPI|0100_011_011_mmm_rrr 3418: case 0b0100_011_011: return disMoveToSR (sb); 3419: 3420: //LINK.L Ar,#<data> --2346|-|-----|-----| |0100_100_000_001_rrr-{data} 3421: //NBCD.B <ea> 012346|-|UUUUU|*U*U*|D M+-WXZ |0100_100_000_mmm_rrr 3422: case 0b0100_100_000: return disNbcd (sb); 3423: 3424: //SWAP.W Dr 012346|-|-UUUU|-**00| |0100_100_001_000_rrr 3425: //BKPT #<data> -12346|-|-----|-----| |0100_100_001_001_ddd 3426: //PEA.L <ea> 012346|-|-----|-----| M WXZP |0100_100_001_mmm_rrr 3427: case 0b0100_100_001: return disPea (sb); 3428: 3429: //EXT.W Dr 012346|-|-UUUU|-**00| |0100_100_010_000_rrr 3430: //MOVEM.W <list>,<ea> 012346|-|-----|-----| M -WXZ |0100_100_010_mmm_rrr-llllllllllllllll 3431: case 0b0100_100_010: return disMovemToMemWord (sb); 3432: 3433: //EXT.L Dr 012346|-|-UUUU|-**00| |0100_100_011_000_rrr 3434: //MOVEM.L <list>,<ea> 012346|-|-----|-----| M -WXZ |0100_100_011_mmm_rrr-llllllllllllllll 3435: case 0b0100_100_011: return disMovemToMemLong (sb); 3436: 3437: //TST.B <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_000_mmm_rrr 3438: //TST.B <ea> --2346|-|-UUUU|-**00| PI|0100_101_000_mmm_rrr 3439: case 0b0100_101_000: return disTstByte (sb); 3440: 3441: //TST.W <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_001_mmm_rrr 3442: //TST.W <ea> --2346|-|-UUUU|-**00| A PI|0100_101_001_mmm_rrr 3443: case 0b0100_101_001: return disTstWord (sb); 3444: 3445: //TST.L <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_010_mmm_rrr 3446: //TST.L <ea> --2346|-|-UUUU|-**00| A PI|0100_101_010_mmm_rrr 3447: case 0b0100_101_010: return disTstLong (sb); 3448: 3449: //HALT ------|P|-----|-----| |0100_101_011_001_000 (ISA_A) 3450: //PULSE ------|-|-----|-----| |0100_101_011_001_100 (ISA_A) 3451: //ILLEGAL 012346|-|-----|-----| |0100_101_011_111_100 3452: //TAS.B <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_011_mmm_rrr 3453: case 0b0100_101_011: return disTas (sb); 3454: 3455: //MULU.L <ea>,Dl --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_000_000_000_hhh (h is not used) 3456: //MULU.L <ea>,Dh:Dl --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_010_000_000_hhh (if h=l then result is not defined) 3457: //MULS.L <ea>,Dl --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_100_000_000_hhh (h is not used) 3458: //MULS.L <ea>,Dh:Dl --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_110_000_000_hhh (if h=l then result is not defined) 3459: case 0b0100_110_000: return disMuluMulsLong (sb); 3460: 3461: //DIVU.L <ea>,Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_000_000_000_qqq 3462: //DIVUL.L <ea>,Dr:Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_000_000_000_rrr (q is not equal to r) 3463: //REMU.L <ea>,Dr:Dq ------|-|-UUUU|-***0|D M+-W |0100_110_001_mmm_rrr-0qqq_000_000_000_rrr (ISA_A, q is not equal to r) 3464: //DIVU.L <ea>,Dr:Dq --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_010_000_000_rrr (q is not equal to r) 3465: //DIVS.L <ea>,Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_100_000_000_qqq 3466: //DIVSL.L <ea>,Dr:Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_100_000_000_rrr (q is not equal to r) 3467: //REMS.L <ea>,Dr:Dq ------|-|-UUUU|-***0|D M+-W |0100_110_001_mmm_rrr-0qqq_100_000_000_rrr (ISA_A, q is not equal to r) 3468: //DIVS.L <ea>,Dr:Dq --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_110_000_000_rrr (q is not equal to r) 3469: case 0b0100_110_001: return disDivuDivsLong (sb); 3470: 3471: //SATS.L Dr ------|-|-UUUU|-**00| |0100_110_010_000_rrr (ISA_B) 3472: //MOVEM.W <ea>,<list> 012346|-|-----|-----| M+ WXZP |0100_110_010_mmm_rrr-llllllllllllllll 3473: case 0b0100_110_010: return disMovemToRegWord (sb); 3474: 3475: //MOVEM.L <ea>,<list> 012346|-|-----|-----| M+ WXZP |0100_110_011_mmm_rrr-llllllllllllllll 3476: case 0b0100_110_011: return disMovemToRegLong (sb); 3477: 3478: //HFSBOOT 012346|-|-----|-----| |0100_111_000_000_000 3479: //HFSINST 012346|-|-----|-----| |0100_111_000_000_001 3480: //HFSSTR 012346|-|-----|-----| |0100_111_000_000_010 3481: //HFSINT 012346|-|-----|-----| |0100_111_000_000_011 3482: //EMXNOP 012346|-|-----|-----| |0100_111_000_000_100 3483: case 0b0100_111_000: return disEmx (sb); 3484: 3485: //TRAP #<vector> 012346|-|-----|-----| |0100_111_001_00v_vvv 3486: //LINK.W Ar,#<data> 012346|-|-----|-----| |0100_111_001_010_rrr-{data} 3487: //UNLK Ar 012346|-|-----|-----| |0100_111_001_011_rrr 3488: //MOVE.L Ar,USP 012346|P|-----|-----| |0100_111_001_100_rrr 3489: //MOVE.L USP,Ar 012346|P|-----|-----| |0100_111_001_101_rrr 3490: //RESET 012346|P|-----|-----| |0100_111_001_110_000 3491: //NOP 012346|-|-----|-----| |0100_111_001_110_001 3492: //STOP #<data> 012346|P|UUUUU|*****| |0100_111_001_110_010-{data} 3493: //RTE 012346|P|UUUUU|*****| |0100_111_001_110_011 3494: //RTD #<data> -12346|-|-----|-----| |0100_111_001_110_100-{data} 3495: //RTS 012346|-|-----|-----| |0100_111_001_110_101 3496: //TRAPV 012346|-|---*-|-----| |0100_111_001_110_110 3497: //RTR 012346|-|UUUUU|*****| |0100_111_001_110_111 3498: //MOVEC.L Rc,Rn -12346|P|-----|-----| |0100_111_001_111_010-rnnn_ccc_ccc_ccc_ccc 3499: //MOVEC.L Rn,Rc -12346|P|-----|-----| |0100_111_001_111_011-rnnn_ccc_ccc_ccc_ccc 3500: case 0b0100_111_001: return disMisc (sb); 3501: 3502: //JSR <ea> 012346|-|-----|-----| M WXZP |0100_111_010_mmm_rrr 3503: case 0b0100_111_010: return disJsr (sb); 3504: 3505: //JMP <ea> 012346|-|-----|-----| M WXZP |0100_111_011_mmm_rrr 3506: case 0b0100_111_011: return disJmp (sb); 3507: 3508: //CHK.L <ea>,Dq --2346|-|-UUUU|-*UUU|D M+-WXZPI|0100_qqq_100_mmm_rrr 3509: case 0b0100_000_100: 3510: case 0b0100_001_100: 3511: case 0b0100_010_100: 3512: case 0b0100_011_100: 3513: case 0b0100_100_100: 3514: case 0b0100_101_100: 3515: case 0b0100_110_100: 3516: case 0b0100_111_100: return disChkLong (sb); 3517: 3518: //case 0b0100_000_101: 3519: //case 0b0100_001_101: 3520: //case 0b0100_010_101: 3521: //case 0b0100_011_101: 3522: //case 0b0100_100_101: 3523: //case 0b0100_101_101: 3524: //case 0b0100_110_101: 3525: //case 0b0100_111_101: 3526: 3527: //CHK.W <ea>,Dq 012346|-|-UUUU|-*UUU|D M+-WXZPI|0100_qqq_110_mmm_rrr 3528: case 0b0100_000_110: 3529: case 0b0100_001_110: 3530: case 0b0100_010_110: 3531: case 0b0100_011_110: 3532: case 0b0100_100_110: 3533: case 0b0100_101_110: 3534: case 0b0100_110_110: 3535: case 0b0100_111_110: return disChkWord (sb); 3536: 3537: //EXTB.L Dr --2346|-|-UUUU|-**00| |0100_100_111_000_rrr 3538: //LEA.L <ea>,Aq 012346|-|-----|-----| M WXZP |0100_qqq_111_mmm_rrr 3539: case 0b0100_000_111: 3540: case 0b0100_001_111: 3541: case 0b0100_010_111: 3542: case 0b0100_011_111: 3543: case 0b0100_100_111: 3544: case 0b0100_101_111: 3545: case 0b0100_110_111: 3546: case 0b0100_111_111: return disLea (sb); 3547: 3548: //ADDQ.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_000_mmm_rrr 3549: case 0b0101_000_000: 3550: case 0b0101_001_000: 3551: case 0b0101_010_000: 3552: case 0b0101_011_000: 3553: case 0b0101_100_000: 3554: case 0b0101_101_000: 3555: case 0b0101_110_000: 3556: case 0b0101_111_000: return disAddqByte (sb); 3557: 3558: //ADDQ.W #<data>,Ar 012346|-|-----|-----| A |0101_qqq_001_001_rrr 3559: //ADDQ.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_001_mmm_rrr 3560: case 0b0101_000_001: 3561: case 0b0101_001_001: 3562: case 0b0101_010_001: 3563: case 0b0101_011_001: 3564: case 0b0101_100_001: 3565: case 0b0101_101_001: 3566: case 0b0101_110_001: 3567: case 0b0101_111_001: return disAddqWord (sb); 3568: 3569: //ADDQ.L #<data>,Ar 012346|-|-----|-----| A |0101_qqq_010_001_rrr 3570: //ADDQ.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_010_mmm_rrr 3571: case 0b0101_000_010: 3572: case 0b0101_001_010: 3573: case 0b0101_010_010: 3574: case 0b0101_011_010: 3575: case 0b0101_100_010: 3576: case 0b0101_101_010: 3577: case 0b0101_110_010: 3578: case 0b0101_111_010: return disAddqLong (sb); 3579: 3580: //SUBQ.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_100_mmm_rrr 3581: case 0b0101_000_100: 3582: case 0b0101_001_100: 3583: case 0b0101_010_100: 3584: case 0b0101_011_100: 3585: case 0b0101_100_100: 3586: case 0b0101_101_100: 3587: case 0b0101_110_100: 3588: case 0b0101_111_100: return disSubqByte (sb); 3589: 3590: //SUBQ.W #<data>,Ar 012346|-|-----|-----| A |0101_qqq_101_001_rrr 3591: //SUBQ.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_101_mmm_rrr 3592: case 0b0101_000_101: 3593: case 0b0101_001_101: 3594: case 0b0101_010_101: 3595: case 0b0101_011_101: 3596: case 0b0101_100_101: 3597: case 0b0101_101_101: 3598: case 0b0101_110_101: 3599: case 0b0101_111_101: return disSubqWord (sb); 3600: 3601: //SUBQ.L #<data>,Ar 012346|-|-----|-----| A |0101_qqq_110_001_rrr 3602: //SUBQ.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_110_mmm_rrr 3603: case 0b0101_000_110: 3604: case 0b0101_001_110: 3605: case 0b0101_010_110: 3606: case 0b0101_011_110: 3607: case 0b0101_100_110: 3608: case 0b0101_101_110: 3609: case 0b0101_110_110: 3610: case 0b0101_111_110: return disSubqLong (sb); 3611: 3612: //DBRA.W Dr,<label> 012346|-|-----|-----| |0101_000_111_001_rrr-{offset} 3613: //DBcc.W Dr,<label> 012346|-|-****|-----| |0101_ccc_c11_001_rrr-{offset} 3614: //TRAPcc.W #<data> --2346|-|-****|-----| |0101_ccc_c11_111_010-{data} 3615: //TRAPcc.L #<data> --2346|-|-****|-----| |0101_ccc_c11_111_011-{data} 3616: //TRAPcc --2346|-|-****|-----| |0101_ccc_c11_111_100 3617: //Scc.B <ea> 012346|-|-****|-----|D M+-WXZ |0101_ccc_c11_mmm_rrr 3618: case 0b0101_000_011: 3619: case 0b0101_000_111: 3620: case 0b0101_001_011: 3621: case 0b0101_001_111: 3622: case 0b0101_010_011: 3623: case 0b0101_010_111: 3624: case 0b0101_011_011: 3625: case 0b0101_011_111: 3626: case 0b0101_100_011: 3627: case 0b0101_100_111: 3628: case 0b0101_101_011: 3629: case 0b0101_101_111: 3630: case 0b0101_110_011: 3631: case 0b0101_110_111: 3632: case 0b0101_111_011: 3633: case 0b0101_111_111: return disScc (sb); 3634: 3635: //BRA.W <label> 012346|-|-----|-----| |0110_000_000_000_000-{offset} 3636: //BRA.L <label> --2346|-|-----|-----| |0110_000_011_111_111-{offset} 3637: //BRA.S <label> 012346|-|-----|-----| |0110_000_0aa_aaa_aaa (a is not equal to 0,-1) 3638: case 0b0110_000_000: 3639: case 0b0110_000_001: 3640: case 0b0110_000_010: 3641: case 0b0110_000_011: return disBra (sb); 3642: 3643: //BSR.W <label> 012346|-|-----|-----| |0110_000_100_000_000-{offset} 3644: //BSR.L <label> --2346|-|-----|-----| |0110_000_111_111_111-{offset} 3645: //BSR.S <label> 012346|-|-----|-----| |0110_000_1aa_aaa_aaa (a is not equal to 0,-1) 3646: case 0b0110_000_100: 3647: case 0b0110_000_101: 3648: case 0b0110_000_110: 3649: case 0b0110_000_111: return disBsr (sb); 3650: 3651: //Bcc.W <label> 012346|-|-****|-----| |0110_ccc_c00_000_000-{offset} 3652: //Bcc.L <label> --2346|-|-****|-----| |0110_ccc_c11_111_111-{offset} 3653: //Bcc.S <label> 012346|-|-****|-----| |0110_ccc_caa_aaa_aaa (a is not equal to 0,-1) 3654: case 0b0110_001_000: 3655: case 0b0110_001_001: 3656: case 0b0110_001_010: 3657: case 0b0110_001_011: 3658: case 0b0110_001_100: 3659: case 0b0110_001_101: 3660: case 0b0110_001_110: 3661: case 0b0110_001_111: 3662: case 0b0110_010_000: 3663: case 0b0110_010_001: 3664: case 0b0110_010_010: 3665: case 0b0110_010_011: 3666: case 0b0110_010_100: 3667: case 0b0110_010_101: 3668: case 0b0110_010_110: 3669: case 0b0110_010_111: 3670: case 0b0110_011_000: 3671: case 0b0110_011_001: 3672: case 0b0110_011_010: 3673: case 0b0110_011_011: 3674: case 0b0110_011_100: 3675: case 0b0110_011_101: 3676: case 0b0110_011_110: 3677: case 0b0110_011_111: 3678: case 0b0110_100_000: 3679: case 0b0110_100_001: 3680: case 0b0110_100_010: 3681: case 0b0110_100_011: 3682: case 0b0110_100_100: 3683: case 0b0110_100_101: 3684: case 0b0110_100_110: 3685: case 0b0110_100_111: 3686: case 0b0110_101_000: 3687: case 0b0110_101_001: 3688: case 0b0110_101_010: 3689: case 0b0110_101_011: 3690: case 0b0110_101_100: 3691: case 0b0110_101_101: 3692: case 0b0110_101_110: 3693: case 0b0110_101_111: 3694: case 0b0110_110_000: 3695: case 0b0110_110_001: 3696: case 0b0110_110_010: 3697: case 0b0110_110_011: 3698: case 0b0110_110_100: 3699: case 0b0110_110_101: 3700: case 0b0110_110_110: 3701: case 0b0110_110_111: 3702: case 0b0110_111_000: 3703: case 0b0110_111_001: 3704: case 0b0110_111_010: 3705: case 0b0110_111_011: 3706: case 0b0110_111_100: 3707: case 0b0110_111_101: 3708: case 0b0110_111_110: 3709: case 0b0110_111_111: return disBcc (sb); 3710: 3711: //IOCS <name> 012346|-|-UUUU|-**00| |0111_000_0dd_ddd_ddd-0100_111_001_001_111 3712: //MOVEQ.L #<data>,Dq 012346|-|-UUUU|-**00| |0111_qqq_0dd_ddd_ddd 3713: case 0b0111_000_000: 3714: case 0b0111_000_001: 3715: case 0b0111_000_010: 3716: case 0b0111_000_011: 3717: case 0b0111_001_000: 3718: case 0b0111_001_001: 3719: case 0b0111_001_010: 3720: case 0b0111_001_011: 3721: case 0b0111_010_000: 3722: case 0b0111_010_001: 3723: case 0b0111_010_010: 3724: case 0b0111_010_011: 3725: case 0b0111_011_000: 3726: case 0b0111_011_001: 3727: case 0b0111_011_010: 3728: case 0b0111_011_011: 3729: case 0b0111_100_000: 3730: case 0b0111_100_001: 3731: case 0b0111_100_010: 3732: case 0b0111_100_011: 3733: case 0b0111_101_000: 3734: case 0b0111_101_001: 3735: case 0b0111_101_010: 3736: case 0b0111_101_011: 3737: case 0b0111_110_000: 3738: case 0b0111_110_001: 3739: case 0b0111_110_010: 3740: case 0b0111_110_011: 3741: case 0b0111_111_000: 3742: case 0b0111_111_001: 3743: case 0b0111_111_010: 3744: case 0b0111_111_011: return disMoveq (sb); 3745: 3746: //MVS.B <ea>,Dq ------|-|-UUUU|-**00|D M+-WXZPI|0111_qqq_100_mmm_rrr (ISA_B) 3747: case 0b0111_000_100: 3748: case 0b0111_001_100: 3749: case 0b0111_010_100: 3750: case 0b0111_011_100: 3751: case 0b0111_100_100: 3752: case 0b0111_101_100: 3753: case 0b0111_110_100: 3754: case 0b0111_111_100: return disMvsByte (sb); 3755: 3756: //MVS.W <ea>,Dq ------|-|-UUUU|-**00|D M+-WXZPI|0111_qqq_101_mmm_rrr (ISA_B) 3757: case 0b0111_000_101: 3758: case 0b0111_001_101: 3759: case 0b0111_010_101: 3760: case 0b0111_011_101: 3761: case 0b0111_100_101: 3762: case 0b0111_101_101: 3763: case 0b0111_110_101: 3764: case 0b0111_111_101: return disMvsWord (sb); 3765: 3766: //MVZ.B <ea>,Dq ------|-|-UUUU|-0*00|D M+-WXZPI|0111_qqq_110_mmm_rrr (ISA_B) 3767: case 0b0111_000_110: 3768: case 0b0111_001_110: 3769: case 0b0111_010_110: 3770: case 0b0111_011_110: 3771: case 0b0111_100_110: 3772: case 0b0111_101_110: 3773: case 0b0111_110_110: 3774: case 0b0111_111_110: return disMvzByte (sb); 3775: 3776: //MVZ.W <ea>,Dq ------|-|-UUUU|-0*00|D M+-WXZPI|0111_qqq_111_mmm_rrr (ISA_B) 3777: case 0b0111_000_111: 3778: case 0b0111_001_111: 3779: case 0b0111_010_111: 3780: case 0b0111_011_111: 3781: case 0b0111_100_111: 3782: case 0b0111_101_111: 3783: case 0b0111_110_111: 3784: case 0b0111_111_111: return disMvzWord (sb); 3785: 3786: //OR.B <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_000_mmm_rrr 3787: case 0b1000_000_000: 3788: case 0b1000_001_000: 3789: case 0b1000_010_000: 3790: case 0b1000_011_000: 3791: case 0b1000_100_000: 3792: case 0b1000_101_000: 3793: case 0b1000_110_000: 3794: case 0b1000_111_000: return disOrToRegByte (sb); 3795: 3796: //OR.W <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_001_mmm_rrr 3797: case 0b1000_000_001: 3798: case 0b1000_001_001: 3799: case 0b1000_010_001: 3800: case 0b1000_011_001: 3801: case 0b1000_100_001: 3802: case 0b1000_101_001: 3803: case 0b1000_110_001: 3804: case 0b1000_111_001: return disOrToRegWord (sb); 3805: 3806: //OR.L <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_010_mmm_rrr 3807: case 0b1000_000_010: 3808: case 0b1000_001_010: 3809: case 0b1000_010_010: 3810: case 0b1000_011_010: 3811: case 0b1000_100_010: 3812: case 0b1000_101_010: 3813: case 0b1000_110_010: 3814: case 0b1000_111_010: return disOrToRegLong (sb); 3815: 3816: //DIVU.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1000_qqq_011_mmm_rrr 3817: case 0b1000_000_011: 3818: case 0b1000_001_011: 3819: case 0b1000_010_011: 3820: case 0b1000_011_011: 3821: case 0b1000_100_011: 3822: case 0b1000_101_011: 3823: case 0b1000_110_011: 3824: case 0b1000_111_011: return disDivuWord (sb); 3825: 3826: //SBCD.B Dr,Dq 012346|-|UUUUU|*U*U*| |1000_qqq_100_000_rrr 3827: //SBCD.B -(Ar),-(Aq) 012346|-|UUUUU|*U*U*| |1000_qqq_100_001_rrr 3828: //OR.B Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1000_qqq_100_mmm_rrr 3829: case 0b1000_000_100: 3830: case 0b1000_001_100: 3831: case 0b1000_010_100: 3832: case 0b1000_011_100: 3833: case 0b1000_100_100: 3834: case 0b1000_101_100: 3835: case 0b1000_110_100: 3836: case 0b1000_111_100: return disOrToMemByte (sb); 3837: 3838: //PACK Dr,Dq,#<data> --2346|-|-----|-----| |1000_qqq_101_000_rrr-{data} 3839: //PACK -(Ar),-(Aq),#<data> --2346|-|-----|-----| |1000_qqq_101_001_rrr-{data} 3840: //OR.W Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1000_qqq_101_mmm_rrr 3841: case 0b1000_000_101: 3842: case 0b1000_001_101: 3843: case 0b1000_010_101: 3844: case 0b1000_011_101: 3845: case 0b1000_100_101: 3846: case 0b1000_101_101: 3847: case 0b1000_110_101: 3848: case 0b1000_111_101: return disOrToMemWord (sb); 3849: 3850: //UNPK Dr,Dq,#<data> --2346|-|-----|-----| |1000_qqq_110_000_rrr-{data} 3851: //UNPK -(Ar),-(Aq),#<data> --2346|-|-----|-----| |1000_qqq_110_001_rrr-{data} 3852: //OR.L Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1000_qqq_110_mmm_rrr 3853: case 0b1000_000_110: 3854: case 0b1000_001_110: 3855: case 0b1000_010_110: 3856: case 0b1000_011_110: 3857: case 0b1000_100_110: 3858: case 0b1000_101_110: 3859: case 0b1000_110_110: 3860: case 0b1000_111_110: return disOrToMemLong (sb); 3861: 3862: //DIVS.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1000_qqq_111_mmm_rrr 3863: case 0b1000_000_111: 3864: case 0b1000_001_111: 3865: case 0b1000_010_111: 3866: case 0b1000_011_111: 3867: case 0b1000_100_111: 3868: case 0b1000_101_111: 3869: case 0b1000_110_111: 3870: case 0b1000_111_111: return disDivsWord (sb); 3871: 3872: //SUB.B <ea>,Dq 012346|-|UUUUU|*****|D M+-WXZPI|1001_qqq_000_mmm_rrr 3873: case 0b1001_000_000: 3874: case 0b1001_001_000: 3875: case 0b1001_010_000: 3876: case 0b1001_011_000: 3877: case 0b1001_100_000: 3878: case 0b1001_101_000: 3879: case 0b1001_110_000: 3880: case 0b1001_111_000: return disSubToRegByte (sb); 3881: 3882: //SUB.W <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1001_qqq_001_mmm_rrr 3883: case 0b1001_000_001: 3884: case 0b1001_001_001: 3885: case 0b1001_010_001: 3886: case 0b1001_011_001: 3887: case 0b1001_100_001: 3888: case 0b1001_101_001: 3889: case 0b1001_110_001: 3890: case 0b1001_111_001: return disSubToRegWord (sb); 3891: 3892: //SUB.L <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1001_qqq_010_mmm_rrr 3893: case 0b1001_000_010: 3894: case 0b1001_001_010: 3895: case 0b1001_010_010: 3896: case 0b1001_011_010: 3897: case 0b1001_100_010: 3898: case 0b1001_101_010: 3899: case 0b1001_110_010: 3900: case 0b1001_111_010: return disSubToRegLong (sb); 3901: 3902: //SUBA.W <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1001_qqq_011_mmm_rrr 3903: case 0b1001_000_011: 3904: case 0b1001_001_011: 3905: case 0b1001_010_011: 3906: case 0b1001_011_011: 3907: case 0b1001_100_011: 3908: case 0b1001_101_011: 3909: case 0b1001_110_011: 3910: case 0b1001_111_011: return disSubaWord (sb); 3911: 3912: //SUBX.B Dr,Dq 012346|-|*UUUU|*****| |1001_qqq_100_000_rrr 3913: //SUBX.B -(Ar),-(Aq) 012346|-|*UUUU|*****| |1001_qqq_100_001_rrr 3914: //SUB.B Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1001_qqq_100_mmm_rrr 3915: case 0b1001_000_100: 3916: case 0b1001_001_100: 3917: case 0b1001_010_100: 3918: case 0b1001_011_100: 3919: case 0b1001_100_100: 3920: case 0b1001_101_100: 3921: case 0b1001_110_100: 3922: case 0b1001_111_100: return disSubToMemByte (sb); 3923: 3924: //SUBX.W Dr,Dq 012346|-|*UUUU|*****| |1001_qqq_101_000_rrr 3925: //SUBX.W -(Ar),-(Aq) 012346|-|*UUUU|*****| |1001_qqq_101_001_rrr 3926: //SUB.W Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1001_qqq_101_mmm_rrr 3927: case 0b1001_000_101: 3928: case 0b1001_001_101: 3929: case 0b1001_010_101: 3930: case 0b1001_011_101: 3931: case 0b1001_100_101: 3932: case 0b1001_101_101: 3933: case 0b1001_110_101: 3934: case 0b1001_111_101: return disSubToMemWord (sb); 3935: 3936: //SUBX.L Dr,Dq 012346|-|*UUUU|*****| |1001_qqq_110_000_rrr 3937: //SUBX.L -(Ar),-(Aq) 012346|-|*UUUU|*****| |1001_qqq_110_001_rrr 3938: //SUB.L Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1001_qqq_110_mmm_rrr 3939: case 0b1001_000_110: 3940: case 0b1001_001_110: 3941: case 0b1001_010_110: 3942: case 0b1001_011_110: 3943: case 0b1001_100_110: 3944: case 0b1001_101_110: 3945: case 0b1001_110_110: 3946: case 0b1001_111_110: return disSubToMemLong (sb); 3947: 3948: //SUBA.L <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1001_qqq_111_mmm_rrr 3949: case 0b1001_000_111: 3950: case 0b1001_001_111: 3951: case 0b1001_010_111: 3952: case 0b1001_011_111: 3953: case 0b1001_100_111: 3954: case 0b1001_101_111: 3955: case 0b1001_110_111: 3956: case 0b1001_111_111: return disSubaLong (sb); 3957: 3958: //MOV3Q.L #<data>,<ea> ------|-|-UUUU|-**00|DAM+-WXZ |1010_qqq_101_mmm_rrr (ISA_B) 3959: //SXCALL <name> 012346|-|-----|-----| |1010_xxx_xxx_xxx_xxx 3960: //line 1010 emulator 012346|-|-----|-----| |1010_xxx_xxx_xxx_xxx 3961: case 0b1010_000_000: 3962: case 0b1010_000_001: 3963: case 0b1010_000_010: 3964: case 0b1010_000_011: 3965: case 0b1010_000_100: 3966: case 0b1010_000_101: 3967: case 0b1010_000_110: 3968: case 0b1010_000_111: 3969: case 0b1010_001_000: 3970: case 0b1010_001_001: 3971: case 0b1010_001_010: 3972: case 0b1010_001_011: 3973: case 0b1010_001_100: 3974: case 0b1010_001_101: 3975: case 0b1010_001_110: 3976: case 0b1010_001_111: 3977: case 0b1010_010_000: 3978: case 0b1010_010_001: 3979: case 0b1010_010_010: 3980: case 0b1010_010_011: 3981: case 0b1010_010_100: 3982: case 0b1010_010_101: 3983: case 0b1010_010_110: 3984: case 0b1010_010_111: 3985: case 0b1010_011_000: 3986: case 0b1010_011_001: 3987: case 0b1010_011_010: 3988: case 0b1010_011_011: 3989: case 0b1010_011_100: 3990: case 0b1010_011_101: 3991: case 0b1010_011_110: 3992: case 0b1010_011_111: 3993: case 0b1010_100_000: 3994: case 0b1010_100_001: 3995: case 0b1010_100_010: 3996: case 0b1010_100_011: 3997: case 0b1010_100_100: 3998: case 0b1010_100_101: 3999: case 0b1010_100_110: 4000: case 0b1010_100_111: 4001: case 0b1010_101_000: 4002: case 0b1010_101_001: 4003: case 0b1010_101_010: 4004: case 0b1010_101_011: 4005: case 0b1010_101_100: 4006: case 0b1010_101_101: 4007: case 0b1010_101_110: 4008: case 0b1010_101_111: 4009: case 0b1010_110_000: 4010: case 0b1010_110_001: 4011: case 0b1010_110_010: 4012: case 0b1010_110_011: 4013: case 0b1010_110_100: 4014: case 0b1010_110_101: 4015: case 0b1010_110_110: 4016: case 0b1010_110_111: 4017: case 0b1010_111_000: 4018: case 0b1010_111_001: 4019: case 0b1010_111_010: 4020: case 0b1010_111_011: 4021: case 0b1010_111_100: 4022: case 0b1010_111_101: 4023: case 0b1010_111_110: 4024: case 0b1010_111_111: return disSxcall (sb); 4025: 4026: //CMP.B <ea>,Dq 012346|-|-UUUU|-****|D M+-WXZPI|1011_qqq_000_mmm_rrr 4027: case 0b1011_000_000: 4028: case 0b1011_001_000: 4029: case 0b1011_010_000: 4030: case 0b1011_011_000: 4031: case 0b1011_100_000: 4032: case 0b1011_101_000: 4033: case 0b1011_110_000: 4034: case 0b1011_111_000: return disCmpByte (sb); 4035: 4036: //CMP.W <ea>,Dq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_001_mmm_rrr 4037: case 0b1011_000_001: 4038: case 0b1011_001_001: 4039: case 0b1011_010_001: 4040: case 0b1011_011_001: 4041: case 0b1011_100_001: 4042: case 0b1011_101_001: 4043: case 0b1011_110_001: 4044: case 0b1011_111_001: return disCmpWord (sb); 4045: 4046: //CMP.L <ea>,Dq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_010_mmm_rrr 4047: case 0b1011_000_010: 4048: case 0b1011_001_010: 4049: case 0b1011_010_010: 4050: case 0b1011_011_010: 4051: case 0b1011_100_010: 4052: case 0b1011_101_010: 4053: case 0b1011_110_010: 4054: case 0b1011_111_010: return disCmpLong (sb); 4055: 4056: //CMPA.W <ea>,Aq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_011_mmm_rrr 4057: case 0b1011_000_011: 4058: case 0b1011_001_011: 4059: case 0b1011_010_011: 4060: case 0b1011_011_011: 4061: case 0b1011_100_011: 4062: case 0b1011_101_011: 4063: case 0b1011_110_011: 4064: case 0b1011_111_011: return disCmpaWord (sb); 4065: 4066: //CMPM.B (Ar)+,(Aq)+ 012346|-|-UUUU|-****| |1011_qqq_100_001_rrr 4067: //EOR.B Dq,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |1011_qqq_100_mmm_rrr 4068: case 0b1011_000_100: 4069: case 0b1011_001_100: 4070: case 0b1011_010_100: 4071: case 0b1011_011_100: 4072: case 0b1011_100_100: 4073: case 0b1011_101_100: 4074: case 0b1011_110_100: 4075: case 0b1011_111_100: return disEorToMemByte (sb); 4076: 4077: //CMPM.W (Ar)+,(Aq)+ 012346|-|-UUUU|-****| |1011_qqq_101_001_rrr 4078: //EOR.W Dq,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |1011_qqq_101_mmm_rrr 4079: case 0b1011_000_101: 4080: case 0b1011_001_101: 4081: case 0b1011_010_101: 4082: case 0b1011_011_101: 4083: case 0b1011_100_101: 4084: case 0b1011_101_101: 4085: case 0b1011_110_101: 4086: case 0b1011_111_101: return disEorToMemWord (sb); 4087: 4088: //CMPM.L (Ar)+,(Aq)+ 012346|-|-UUUU|-****| |1011_qqq_110_001_rrr 4089: //EOR.L Dq,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |1011_qqq_110_mmm_rrr 4090: case 0b1011_000_110: 4091: case 0b1011_001_110: 4092: case 0b1011_010_110: 4093: case 0b1011_011_110: 4094: case 0b1011_100_110: 4095: case 0b1011_101_110: 4096: case 0b1011_110_110: 4097: case 0b1011_111_110: return disEorToMemLong (sb); 4098: 4099: //CMPA.L <ea>,Aq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_111_mmm_rrr 4100: case 0b1011_000_111: 4101: case 0b1011_001_111: 4102: case 0b1011_010_111: 4103: case 0b1011_011_111: 4104: case 0b1011_100_111: 4105: case 0b1011_101_111: 4106: case 0b1011_110_111: 4107: case 0b1011_111_111: return disCmpaLong (sb); 4108: 4109: //AND.B <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_000_mmm_rrr 4110: case 0b1100_000_000: 4111: case 0b1100_001_000: 4112: case 0b1100_010_000: 4113: case 0b1100_011_000: 4114: case 0b1100_100_000: 4115: case 0b1100_101_000: 4116: case 0b1100_110_000: 4117: case 0b1100_111_000: return disAndToRegByte (sb); 4118: 4119: //AND.W <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_001_mmm_rrr 4120: case 0b1100_000_001: 4121: case 0b1100_001_001: 4122: case 0b1100_010_001: 4123: case 0b1100_011_001: 4124: case 0b1100_100_001: 4125: case 0b1100_101_001: 4126: case 0b1100_110_001: 4127: case 0b1100_111_001: return disAndToRegWord (sb); 4128: 4129: //AND.L <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_010_mmm_rrr 4130: case 0b1100_000_010: 4131: case 0b1100_001_010: 4132: case 0b1100_010_010: 4133: case 0b1100_011_010: 4134: case 0b1100_100_010: 4135: case 0b1100_101_010: 4136: case 0b1100_110_010: 4137: case 0b1100_111_010: return disAndToRegLong (sb); 4138: 4139: //MULU.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1100_qqq_011_mmm_rrr 4140: case 0b1100_000_011: 4141: case 0b1100_001_011: 4142: case 0b1100_010_011: 4143: case 0b1100_011_011: 4144: case 0b1100_100_011: 4145: case 0b1100_101_011: 4146: case 0b1100_110_011: 4147: case 0b1100_111_011: return disMuluWord (sb); 4148: 4149: //ABCD.B Dr,Dq 012346|-|UUUUU|*U*U*| |1100_qqq_100_000_rrr 4150: //ABCD.B -(Ar),-(Aq) 012346|-|UUUUU|*U*U*| |1100_qqq_100_001_rrr 4151: //AND.B Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1100_qqq_100_mmm_rrr 4152: case 0b1100_000_100: 4153: case 0b1100_001_100: 4154: case 0b1100_010_100: 4155: case 0b1100_011_100: 4156: case 0b1100_100_100: 4157: case 0b1100_101_100: 4158: case 0b1100_110_100: 4159: case 0b1100_111_100: return disAndToMemByte (sb); 4160: 4161: //EXG.L Dq,Dr 012346|-|-----|-----| |1100_qqq_101_000_rrr 4162: //EXG.L Aq,Ar 012346|-|-----|-----| |1100_qqq_101_001_rrr 4163: //AND.W Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1100_qqq_101_mmm_rrr 4164: case 0b1100_000_101: 4165: case 0b1100_001_101: 4166: case 0b1100_010_101: 4167: case 0b1100_011_101: 4168: case 0b1100_100_101: 4169: case 0b1100_101_101: 4170: case 0b1100_110_101: 4171: case 0b1100_111_101: return disAndToMemWord (sb); 4172: 4173: //EXG.L Dq,Ar 012346|-|-----|-----| |1100_qqq_110_001_rrr 4174: //AND.L Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1100_qqq_110_mmm_rrr 4175: case 0b1100_000_110: 4176: case 0b1100_001_110: 4177: case 0b1100_010_110: 4178: case 0b1100_011_110: 4179: case 0b1100_100_110: 4180: case 0b1100_101_110: 4181: case 0b1100_110_110: 4182: case 0b1100_111_110: return disAndToMemLong (sb); 4183: 4184: //MULS.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1100_qqq_111_mmm_rrr 4185: case 0b1100_000_111: 4186: case 0b1100_001_111: 4187: case 0b1100_010_111: 4188: case 0b1100_011_111: 4189: case 0b1100_100_111: 4190: case 0b1100_101_111: 4191: case 0b1100_110_111: 4192: case 0b1100_111_111: return disMulsWord (sb); 4193: 4194: //ADD.B <ea>,Dq 012346|-|UUUUU|*****|D M+-WXZPI|1101_qqq_000_mmm_rrr 4195: case 0b1101_000_000: 4196: case 0b1101_001_000: 4197: case 0b1101_010_000: 4198: case 0b1101_011_000: 4199: case 0b1101_100_000: 4200: case 0b1101_101_000: 4201: case 0b1101_110_000: 4202: case 0b1101_111_000: return disAddToRegByte (sb); 4203: 4204: //ADD.W <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1101_qqq_001_mmm_rrr 4205: case 0b1101_000_001: 4206: case 0b1101_001_001: 4207: case 0b1101_010_001: 4208: case 0b1101_011_001: 4209: case 0b1101_100_001: 4210: case 0b1101_101_001: 4211: case 0b1101_110_001: 4212: case 0b1101_111_001: return disAddToRegWord (sb); 4213: 4214: //ADD.L <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1101_qqq_010_mmm_rrr 4215: case 0b1101_000_010: 4216: case 0b1101_001_010: 4217: case 0b1101_010_010: 4218: case 0b1101_011_010: 4219: case 0b1101_100_010: 4220: case 0b1101_101_010: 4221: case 0b1101_110_010: 4222: case 0b1101_111_010: return disAddToRegLong (sb); 4223: 4224: //ADDA.W <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1101_qqq_011_mmm_rrr 4225: case 0b1101_000_011: 4226: case 0b1101_001_011: 4227: case 0b1101_010_011: 4228: case 0b1101_011_011: 4229: case 0b1101_100_011: 4230: case 0b1101_101_011: 4231: case 0b1101_110_011: 4232: case 0b1101_111_011: return disAddaWord (sb); 4233: 4234: //ADDX.B Dr,Dq 012346|-|*UUUU|*****| |1101_qqq_100_000_rrr 4235: //ADDX.B -(Ar),-(Aq) 012346|-|*UUUU|*****| |1101_qqq_100_001_rrr 4236: //ADD.B Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1101_qqq_100_mmm_rrr 4237: case 0b1101_000_100: 4238: case 0b1101_001_100: 4239: case 0b1101_010_100: 4240: case 0b1101_011_100: 4241: case 0b1101_100_100: 4242: case 0b1101_101_100: 4243: case 0b1101_110_100: 4244: case 0b1101_111_100: return disAddToMemByte (sb); 4245: 4246: //ADDX.W Dr,Dq 012346|-|*UUUU|*****| |1101_qqq_101_000_rrr 4247: //ADDX.W -(Ar),-(Aq) 012346|-|*UUUU|*****| |1101_qqq_101_001_rrr 4248: //ADD.W Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1101_qqq_101_mmm_rrr 4249: case 0b1101_000_101: 4250: case 0b1101_001_101: 4251: case 0b1101_010_101: 4252: case 0b1101_011_101: 4253: case 0b1101_100_101: 4254: case 0b1101_101_101: 4255: case 0b1101_110_101: 4256: case 0b1101_111_101: return disAddToMemWord (sb); 4257: 4258: //ADDX.L Dr,Dq 012346|-|*UUUU|*****| |1101_qqq_110_000_rrr 4259: //ADDX.L -(Ar),-(Aq) 012346|-|*UUUU|*****| |1101_qqq_110_001_rrr 4260: //ADD.L Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1101_qqq_110_mmm_rrr 4261: case 0b1101_000_110: 4262: case 0b1101_001_110: 4263: case 0b1101_010_110: 4264: case 0b1101_011_110: 4265: case 0b1101_100_110: 4266: case 0b1101_101_110: 4267: case 0b1101_110_110: 4268: case 0b1101_111_110: return disAddToMemLong (sb); 4269: 4270: //ADDA.L <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1101_qqq_111_mmm_rrr 4271: case 0b1101_000_111: 4272: case 0b1101_001_111: 4273: case 0b1101_010_111: 4274: case 0b1101_011_111: 4275: case 0b1101_100_111: 4276: case 0b1101_101_111: 4277: case 0b1101_110_111: 4278: case 0b1101_111_111: return disAddaLong (sb); 4279: 4280: //ASR.B #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_000_rrr 4281: //LSR.B #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_001_rrr 4282: //ROXR.B #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_000_010_rrr 4283: //ROR.B #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_000_011_rrr 4284: //ASR.B Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_100_rrr 4285: //LSR.B Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_101_rrr 4286: //ROXR.B Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_000_110_rrr 4287: //ROR.B Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_000_111_rrr 4288: case 0b1110_000_000: 4289: case 0b1110_001_000: 4290: case 0b1110_010_000: 4291: case 0b1110_011_000: 4292: case 0b1110_100_000: 4293: case 0b1110_101_000: 4294: case 0b1110_110_000: 4295: case 0b1110_111_000: return disXxrToRegByte (sb); 4296: 4297: //ASR.W #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_000_rrr 4298: //LSR.W #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_001_rrr 4299: //ROXR.W #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_001_010_rrr 4300: //ROR.W #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_001_011_rrr 4301: //ASR.W Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_100_rrr 4302: //LSR.W Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_101_rrr 4303: //ROXR.W Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_001_110_rrr 4304: //ROR.W Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_001_111_rrr 4305: case 0b1110_000_001: 4306: case 0b1110_001_001: 4307: case 0b1110_010_001: 4308: case 0b1110_011_001: 4309: case 0b1110_100_001: 4310: case 0b1110_101_001: 4311: case 0b1110_110_001: 4312: case 0b1110_111_001: return disXxrToRegWord (sb); 4313: 4314: //ASR.L #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_000_rrr 4315: //LSR.L #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_001_rrr 4316: //ROXR.L #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_010_010_rrr 4317: //ROR.L #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_010_011_rrr 4318: //ASR.L Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_100_rrr 4319: //LSR.L Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_101_rrr 4320: //ROXR.L Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_010_110_rrr 4321: //ROR.L Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_010_111_rrr 4322: case 0b1110_000_010: 4323: case 0b1110_001_010: 4324: case 0b1110_010_010: 4325: case 0b1110_011_010: 4326: case 0b1110_100_010: 4327: case 0b1110_101_010: 4328: case 0b1110_110_010: 4329: case 0b1110_111_010: return disXxrToRegLong (sb); 4330: 4331: //ASR.W <ea> 012346|-|UUUUU|***0*| M+-WXZ |1110_000_011_mmm_rrr 4332: case 0b1110_000_011: return disAsrToMem (sb); 4333: 4334: //LSR.W <ea> 012346|-|UUUUU|*0*0*| M+-WXZ |1110_001_011_mmm_rrr 4335: case 0b1110_001_011: return disLsrToMem (sb); 4336: 4337: //ROXR.W <ea> 012346|-|*UUUU|***0*| M+-WXZ |1110_010_011_mmm_rrr 4338: case 0b1110_010_011: return disRoxrToMem (sb); 4339: 4340: //ROR.W <ea> 012346|-|-UUUU|-**0*| M+-WXZ |1110_011_011_mmm_rrr 4341: case 0b1110_011_011: return disRorToMem (sb); 4342: 4343: //ASL.B #<data>,Dr 012346|-|UUUUU|*****| |1110_qqq_100_000_rrr 4344: //LSL.B #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_100_001_rrr 4345: //ROXL.B #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_100_010_rrr 4346: //ROL.B #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_100_011_rrr 4347: //ASL.B Dq,Dr 012346|-|UUUUU|*****| |1110_qqq_100_100_rrr 4348: //LSL.B Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_100_101_rrr 4349: //ROXL.B Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_100_110_rrr 4350: //ROL.B Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_100_111_rrr 4351: case 0b1110_000_100: 4352: case 0b1110_001_100: 4353: case 0b1110_010_100: 4354: case 0b1110_011_100: 4355: case 0b1110_100_100: 4356: case 0b1110_101_100: 4357: case 0b1110_110_100: 4358: case 0b1110_111_100: return disXxlToRegByte (sb); 4359: 4360: //ASL.W #<data>,Dr 012346|-|UUUUU|*****| |1110_qqq_101_000_rrr 4361: //LSL.W #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_101_001_rrr 4362: //ROXL.W #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_101_010_rrr 4363: //ROL.W #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_101_011_rrr 4364: //ASL.W Dq,Dr 012346|-|UUUUU|*****| |1110_qqq_101_100_rrr 4365: //LSL.W Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_101_101_rrr 4366: //ROXL.W Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_101_110_rrr 4367: //ROL.W Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_101_111_rrr 4368: case 0b1110_000_101: 4369: case 0b1110_001_101: 4370: case 0b1110_010_101: 4371: case 0b1110_011_101: 4372: case 0b1110_100_101: 4373: case 0b1110_101_101: 4374: case 0b1110_110_101: 4375: case 0b1110_111_101: return disXxlToRegWord (sb); 4376: 4377: //ASL.L #<data>,Dr 012346|-|UUUUU|*****| |1110_qqq_110_000_rrr 4378: //LSL.L #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_110_001_rrr 4379: //ROXL.L #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_110_010_rrr 4380: //ROL.L #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_110_011_rrr 4381: //ASL.L Dq,Dr 012346|-|UUUUU|*****| |1110_qqq_110_100_rrr 4382: //LSL.L Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_110_101_rrr 4383: //ROXL.L Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_110_110_rrr 4384: //ROL.L Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_110_111_rrr 4385: case 0b1110_000_110: 4386: case 0b1110_001_110: 4387: case 0b1110_010_110: 4388: case 0b1110_011_110: 4389: case 0b1110_100_110: 4390: case 0b1110_101_110: 4391: case 0b1110_110_110: 4392: case 0b1110_111_110: return disXxlToRegLong (sb); 4393: 4394: //ASL.W <ea> 012346|-|UUUUU|*****| M+-WXZ |1110_000_111_mmm_rrr 4395: case 0b1110_000_111: return disAslToMem (sb); 4396: 4397: //LSL.W <ea> 012346|-|UUUUU|***0*| M+-WXZ |1110_001_111_mmm_rrr 4398: case 0b1110_001_111: return disLslToMem (sb); 4399: 4400: //ROXL.W <ea> 012346|-|*UUUU|***0*| M+-WXZ |1110_010_111_mmm_rrr 4401: case 0b1110_010_111: return disRoxlToMem (sb); 4402: 4403: //ROL.W <ea> 012346|-|-UUUU|-**0*| M+-WXZ |1110_011_111_mmm_rrr 4404: case 0b1110_011_111: return disRolToMem (sb); 4405: 4406: //BFTST <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_0oo_ooo_0ww_www 4407: //BFTST <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_0oo_ooo_100_www 4408: //BFTST <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_100_ooo_0ww_www 4409: //BFTST <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_100_ooo_100_www 4410: case 0b1110_100_011: return disBftst (sb); 4411: 4412: //BFEXTU <ea>{#o:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 4413: //BFEXTU <ea>{#o:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_0oo_ooo_100_www 4414: //BFEXTU <ea>{Do:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_100_ooo_0ww_www 4415: //BFEXTU <ea>{Do:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_100_ooo_100_www 4416: case 0b1110_100_111: return disBfextu (sb); 4417: 4418: //BFCHG <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_0oo_ooo_0ww_www 4419: //BFCHG <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_0oo_ooo_100_www 4420: //BFCHG <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_100_ooo_0ww_www 4421: //BFCHG <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_100_ooo_100_www 4422: case 0b1110_101_011: return disBfchg (sb); 4423: 4424: //BFEXTS <ea>{#o:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 4425: //BFEXTS <ea>{#o:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_0oo_ooo_100_www 4426: //BFEXTS <ea>{Do:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_100_ooo_0ww_www 4427: //BFEXTS <ea>{Do:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_100_ooo_100_www 4428: case 0b1110_101_111: return disBfexts (sb); 4429: 4430: //BFCLR <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_0oo_ooo_0ww_www 4431: //BFCLR <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_0oo_ooo_100_www 4432: //BFCLR <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_100_ooo_0ww_www 4433: //BFCLR <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_100_ooo_100_www 4434: case 0b1110_110_011: return disBfclr (sb); 4435: 4436: //BFFFO <ea>{#o:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 4437: //BFFFO <ea>{#o:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_0oo_ooo_100_www 4438: //BFFFO <ea>{Do:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_100_ooo_0ww_www 4439: //BFFFO <ea>{Do:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_100_ooo_100_www 4440: case 0b1110_110_111: return disBfffo (sb); 4441: 4442: //BFSET <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_0oo_ooo_0ww_www 4443: //BFSET <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_0oo_ooo_100_www 4444: //BFSET <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_100_ooo_0ww_www 4445: //BFSET <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_100_ooo_100_www 4446: case 0b1110_111_011: return disBfset (sb); 4447: 4448: //BFINS Dn,<ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 4449: //BFINS Dn,<ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_0oo_ooo_100_www 4450: //BFINS Dn,<ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_100_ooo_0ww_www 4451: //BFINS Dn,<ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_100_ooo_100_www 4452: case 0b1110_111_111: return disBfins (sb); 4453: 4454: //PMOVE.L <ea>,TTn ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00001n0000000000 4455: //PMOVEFD.L <ea>,TTn ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00001n0100000000 4456: //PMOVE.L TTn,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00001n1000000000 4457: //PLOADW SFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000000000 4458: //PLOADW DFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000000001 4459: //PLOADW Dn,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000001nnn 4460: //PLOADW #<data>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000010ddd 4461: //PLOADW #<data>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-001000000001dddd 4462: //PLOADR SFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000000000 4463: //PLOADR DFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000000001 4464: //PLOADR Dn,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000001nnn 4465: //PLOADR #<data>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000010ddd 4466: //PLOADR #<data>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-001000100001dddd 4467: //PFLUSHA --M---|P|-----|-----| |1111_000_000_000_000-0010010000000000 4468: //PFLUSHA ---3--|P|-----|-----| |1111_000_000_000_000-0010010000000000 4469: //PVALID.L VAL,<ea> --M---|-|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010100000000000 4470: //PVALID.L An,<ea> --M---|-|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010110000000nnn 4471: //PFLUSH SFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm00000 4472: //PFLUSH SFC,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm00000 4473: //PFLUSH DFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm00001 4474: //PFLUSH DFC,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm00001 4475: //PFLUSH Dn,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm01nnn 4476: //PFLUSH Dn,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm01nnn 4477: //PFLUSH #<data>,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm10ddd 4478: //PFLUSH #<data>,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm1dddd 4479: //PFLUSHS SFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm00000 4480: //PFLUSHS DFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm00001 4481: //PFLUSHS Dn,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm01nnn 4482: //PFLUSHS #<data>,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm1dddd 4483: //PFLUSH SFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm00000 4484: //PFLUSH SFC,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm00000 4485: //PFLUSH DFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm00001 4486: //PFLUSH DFC,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm00001 4487: //PFLUSH Dn,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm01nnn 4488: //PFLUSH #<data>,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm10ddd 4489: //PFLUSH Dn,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm01nnn 4490: //PFLUSH #<data>,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm1dddd 4491: //PFLUSHS SFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm00000 4492: //PFLUSHS DFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm00001 4493: //PFLUSHS Dn,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm01nnn 4494: //PFLUSHS #<data>,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm1dddd 4495: //PMOVE.L <ea>,TC ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100000000000000 4496: //PMOVE.L <ea>,TC --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0100000000000000 4497: //PMOVEFD.L <ea>,TC ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100000100000000 4498: //PMOVE.L TC,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100001000000000 4499: //PMOVE.L TC,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0100001000000000 4500: //PMOVE.Q <ea>,DRP --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-0100010000000000 4501: //PMOVE.Q DRP,<ea> --M---|P|-----|-----| M+-WXZ |1111_000_000_mmm_rrr-0100011000000000 4502: //PMOVE.Q <ea>,SRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100100000000000 4503: //PMOVE.Q <ea>,SRP --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-0100100000000000 4504: //PMOVEFD.Q <ea>,SRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100100100000000 4505: //PMOVE.Q SRP,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100101000000000 4506: //PMOVE.Q SRP,<ea> --M---|P|-----|-----| M+-WXZ |1111_000_000_mmm_rrr-0100101000000000 4507: //PMOVE.Q <ea>,CRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100110000000000 4508: //PMOVE.Q <ea>,CRP --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-0100110000000000 4509: //PMOVEFD.Q <ea>,CRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100110100000000 4510: //PMOVE.Q CRP,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100111000000000 4511: //PMOVE.Q CRP,<ea> --M---|P|-----|-----| M+-WXZ |1111_000_000_mmm_rrr-0100111000000000 4512: //PMOVE.B <ea>,CAL --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101000000000000 4513: //PMOVE.B CAL,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101001000000000 4514: //PMOVE.B <ea>,VAL --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101010000000000 4515: //PMOVE.B VAL,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101011000000000 4516: //PMOVE.B <ea>,SCC --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101100000000000 4517: //PMOVE.B SCC,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101101000000000 4518: //PMOVE.W <ea>,AC --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101110000000000 4519: //PMOVE.W AC,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101111000000000 4520: //PMOVE.W <ea>,MMUSR ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0110000000000000 4521: //PMOVE.W <ea>,PSR --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0110000000000000 4522: //PMOVE.W MMUSR,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0110001000000000 4523: //PMOVE.W PSR,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0110001000000000 4524: //PMOVE.W <ea>,PCSR --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0110010000000000 4525: //PMOVE.W PCSR,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0110011000000000 4526: //PMOVE.W <ea>,BADn --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-01110000000nnn00 4527: //PMOVE.W BADn,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-01110010000nnn00 4528: //PMOVE.W <ea>,BACn --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-01110100000nnn00 4529: //PMOVE.W BACn,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-01110110000nnn00 4530: //PTESTW SFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000000 4531: //PTESTW SFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000000 4532: //PTESTW DFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000001 4533: //PTESTW DFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000001 4534: //PTESTW Dn,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000001nnn 4535: //PTESTW Dn,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000001nnn 4536: //PTESTW #<data>,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll000001dddd 4537: //PTESTW #<data>,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000010ddd 4538: //PTESTW SFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00000 4539: //PTESTW SFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00000 4540: //PTESTW DFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00001 4541: //PTESTW DFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00001 4542: //PTESTW Dn,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn01nnn 4543: //PTESTW Dn,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn01nnn 4544: //PTESTW #<data>,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn1dddd 4545: //PTESTW #<data>,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn10ddd 4546: //PTESTR SFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000000 4547: //PTESTR SFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000000 4548: //PTESTR DFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000001 4549: //PTESTR DFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000001 4550: //PTESTR Dn,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000001nnn 4551: //PTESTR Dn,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000001nnn 4552: //PTESTR #<data>,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll100001dddd 4553: //PTESTR #<data>,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000010ddd 4554: //PTESTR SFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00000 4555: //PTESTR SFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00000 4556: //PTESTR DFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00001 4557: //PTESTR DFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00001 4558: //PTESTR Dn,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn01nnn 4559: //PTESTR Dn,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn01nnn 4560: //PTESTR #<data>,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn1dddd 4561: //PTESTR #<data>,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn10ddd 4562: //PFLUSHR <ea> --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-1010000000000000 4563: case 0b1111_000_000: return disPgen (sb); 4564: 4565: //PDBcc.W Dn,<label> --M---|P|-----|-----| |1111_000_001_001_nnn-0000000000cccccc-{offset} 4566: //PTRAPcc.W #<data> --M---|P|-----|-----| |1111_000_001_111_010-0000000000cccccc-{data} 4567: //PTRAPcc.L #<data> --M---|P|-----|-----| |1111_000_001_111_011-0000000000cccccc-{data} 4568: //PTRAPcc --M---|P|-----|-----| |1111_000_001_111_100-0000000000cccccc 4569: //PScc.B <ea> --M---|P|-----|-----|D M+-WXZ |1111_000_001_mmm_rrr-0000000000cccccc 4570: case 0b1111_000_001: return disPscc (sb); 4571: 4572: //PBcc.W <label> --M---|P|-----|-----| |1111_000_010_ccc_ccc-{offset} 4573: case 0b1111_000_010: return disPbccWord (sb); 4574: 4575: //PBcc.L <label> --M---|P|-----|-----| |1111_000_011_ccc_ccc-{offset} 4576: case 0b1111_000_011: return disPbccLong (sb); 4577: 4578: //PSAVE <ea> --M---|P|-----|-----| M -WXZ |1111_000_100_mmm_rrr 4579: case 0b1111_000_100: return disPsave (sb); 4580: 4581: //PRESTORE <ea> --M---|P|-----|-----| M+ WXZP |1111_000_101_mmm_rrr 4582: case 0b1111_000_101: return disPrestore (sb); 4583: 4584: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 4585: case 0b1111_000_110: 4586: case 0b1111_000_111: return disFline (sb); 4587: 4588: //FMOVE.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0000 4589: //FINT.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0001 4590: //FSINH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0010 4591: //FINTRZ.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0011 4592: //FSQRT.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0100 4593: //FLOGNP1.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0110 4594: //FETOXM1.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1000 4595: //FTANH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1001 4596: //FATAN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1010 4597: //FASIN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1100 4598: //FATANH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1101 4599: //FSIN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1110 4600: //FTAN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1111 4601: //FETOX.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0000 4602: //FTWOTOX.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0001 4603: //FTENTOX.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0010 4604: //FLOGN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0100 4605: //FLOG10.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0101 4606: //FLOG2.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0110 4607: //FABS.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1000 4608: //FCOSH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1001 4609: //FNEG.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1010 4610: //FACOS.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1100 4611: //FCOS.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1101 4612: //FGETEXP.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1110 4613: //FGETMAN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1111 4614: //FDIV.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0000 4615: //FMOD.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0001 4616: //FADD.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0010 4617: //FMUL.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0011 4618: //FSGLDIV.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0100 4619: //FREM.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0101 4620: //FSCALE.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0110 4621: //FSGLMUL.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0111 4622: //FSUB.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_1000 4623: //FSINCOS.X FPm,FPc:FPs --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_sss_011_0ccc 4624: //FCMP.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_011_1000 4625: //FTST.X FPm --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_000_011_1010 4626: //FSMOVE.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0000 4627: //FSSQRT.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0001 4628: //FDMOVE.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0100 4629: //FDSQRT.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0101 4630: //FSABS.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1000 4631: //FSNEG.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1010 4632: //FDABS.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1100 4633: //FDNEG.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1110 4634: //FSDIV.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0000 4635: //FSADD.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0010 4636: //FSMUL.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0011 4637: //FDDIV.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0100 4638: //FDADD.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0110 4639: //FDMUL.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0111 4640: //FSSUB.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_1000 4641: //FDSUB.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_1100 4642: //FMOVE.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0000 4643: //FMOVE.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0000 4644: //FMOVE.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0000 4645: //FMOVE.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0000 4646: //FMOVE.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0000 4647: //FMOVE.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0000 4648: //FMOVE.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0000 4649: //FINT.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0001 4650: //FINT.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0001 4651: //FINT.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0001 4652: //FINT.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0001 4653: //FINT.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0001 4654: //FINT.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0001 4655: //FINT.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0001 4656: //FSINH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0010 4657: //FSINH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0010 4658: //FSINH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0010 4659: //FSINH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0010 4660: //FSINH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0010 4661: //FSINH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0010 4662: //FSINH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0010 4663: //FINTRZ.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0011 4664: //FINTRZ.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0011 4665: //FINTRZ.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0011 4666: //FINTRZ.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0011 4667: //FINTRZ.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0011 4668: //FINTRZ.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0011 4669: //FINTRZ.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0011 4670: //FSQRT.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0100 4671: //FSQRT.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0100 4672: //FSQRT.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0100 4673: //FSQRT.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0100 4674: //FSQRT.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0100 4675: //FSQRT.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0100 4676: //FSQRT.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0100 4677: //FLOGNP1.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0110 4678: //FLOGNP1.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0110 4679: //FLOGNP1.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0110 4680: //FLOGNP1.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0110 4681: //FLOGNP1.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0110 4682: //FLOGNP1.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0110 4683: //FLOGNP1.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0110 4684: //FETOXM1.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1000 4685: //FETOXM1.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1000 4686: //FETOXM1.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1000 4687: //FETOXM1.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1000 4688: //FETOXM1.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1000 4689: //FETOXM1.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1000 4690: //FETOXM1.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1000 4691: //FTANH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1001 4692: //FTANH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1001 4693: //FTANH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1001 4694: //FTANH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1001 4695: //FTANH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1001 4696: //FTANH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1001 4697: //FTANH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1001 4698: //FATAN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1010 4699: //FATAN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1010 4700: //FATAN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1010 4701: //FATAN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1010 4702: //FATAN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1010 4703: //FATAN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1010 4704: //FATAN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1010 4705: //FASIN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1100 4706: //FASIN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1100 4707: //FASIN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1100 4708: //FASIN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1100 4709: //FASIN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1100 4710: //FASIN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1100 4711: //FASIN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1100 4712: //FATANH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1101 4713: //FATANH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1101 4714: //FATANH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1101 4715: //FATANH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1101 4716: //FATANH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1101 4717: //FATANH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1101 4718: //FATANH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1101 4719: //FSIN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1110 4720: //FSIN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1110 4721: //FSIN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1110 4722: //FSIN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1110 4723: //FSIN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1110 4724: //FSIN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1110 4725: //FSIN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1110 4726: //FTAN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1111 4727: //FTAN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1111 4728: //FTAN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1111 4729: //FTAN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1111 4730: //FTAN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1111 4731: //FTAN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1111 4732: //FTAN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1111 4733: //FETOX.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0000 4734: //FETOX.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0000 4735: //FETOX.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0000 4736: //FETOX.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0000 4737: //FETOX.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0000 4738: //FETOX.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0000 4739: //FETOX.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0000 4740: //FTWOTOX.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0001 4741: //FTWOTOX.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0001 4742: //FTWOTOX.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0001 4743: //FTWOTOX.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0001 4744: //FTWOTOX.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0001 4745: //FTWOTOX.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0001 4746: //FTWOTOX.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0001 4747: //FTENTOX.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0010 4748: //FTENTOX.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0010 4749: //FTENTOX.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0010 4750: //FTENTOX.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0010 4751: //FTENTOX.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0010 4752: //FTENTOX.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0010 4753: //FTENTOX.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0010 4754: //FLOGN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0100 4755: //FLOGN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0100 4756: //FLOGN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0100 4757: //FLOGN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0100 4758: //FLOGN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0100 4759: //FLOGN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0100 4760: //FLOGN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0100 4761: //FLOG10.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0101 4762: //FLOG10.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0101 4763: //FLOG10.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0101 4764: //FLOG10.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0101 4765: //FLOG10.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0101 4766: //FLOG10.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0101 4767: //FLOG10.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0101 4768: //FLOG2.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0110 4769: //FLOG2.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0110 4770: //FLOG2.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0110 4771: //FLOG2.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0110 4772: //FLOG2.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0110 4773: //FLOG2.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0110 4774: //FLOG2.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0110 4775: //FABS.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1000 4776: //FABS.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1000 4777: //FABS.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1000 4778: //FABS.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1000 4779: //FABS.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1000 4780: //FABS.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1000 4781: //FABS.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1000 4782: //FCOSH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1001 4783: //FCOSH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1001 4784: //FCOSH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1001 4785: //FCOSH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1001 4786: //FCOSH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1001 4787: //FCOSH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1001 4788: //FCOSH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1001 4789: //FNEG.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1010 4790: //FNEG.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1010 4791: //FNEG.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1010 4792: //FNEG.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1010 4793: //FNEG.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1010 4794: //FNEG.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1010 4795: //FNEG.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1010 4796: //FACOS.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1100 4797: //FACOS.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1100 4798: //FACOS.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1100 4799: //FACOS.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1100 4800: //FACOS.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1100 4801: //FACOS.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1100 4802: //FACOS.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1100 4803: //FCOS.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1101 4804: //FCOS.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1101 4805: //FCOS.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1101 4806: //FCOS.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1101 4807: //FCOS.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1101 4808: //FCOS.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1101 4809: //FCOS.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1101 4810: //FGETEXP.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1110 4811: //FGETEXP.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1110 4812: //FGETEXP.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1110 4813: //FGETEXP.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1110 4814: //FGETEXP.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1110 4815: //FGETEXP.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1110 4816: //FGETEXP.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1110 4817: //FGETMAN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1111 4818: //FGETMAN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1111 4819: //FGETMAN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1111 4820: //FGETMAN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1111 4821: //FGETMAN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1111 4822: //FGETMAN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1111 4823: //FGETMAN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1111 4824: //FDIV.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0000 4825: //FDIV.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0000 4826: //FDIV.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0000 4827: //FDIV.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0000 4828: //FDIV.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0000 4829: //FDIV.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0000 4830: //FDIV.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0000 4831: //FMOD.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0001 4832: //FMOD.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0001 4833: //FMOD.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0001 4834: //FMOD.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0001 4835: //FMOD.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0001 4836: //FMOD.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0001 4837: //FMOD.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0001 4838: //FADD.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0010 4839: //FADD.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0010 4840: //FADD.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0010 4841: //FADD.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0010 4842: //FADD.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0010 4843: //FADD.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0010 4844: //FADD.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0010 4845: //FMUL.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0011 4846: //FMUL.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0011 4847: //FMUL.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0011 4848: //FMUL.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0011 4849: //FMUL.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0011 4850: //FMUL.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0011 4851: //FMUL.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0011 4852: //FSGLDIV.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0100 4853: //FSGLDIV.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0100 4854: //FSGLDIV.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0100 4855: //FSGLDIV.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0100 4856: //FSGLDIV.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0100 4857: //FSGLDIV.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0100 4858: //FSGLDIV.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0100 4859: //FREM.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0101 4860: //FREM.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0101 4861: //FREM.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0101 4862: //FREM.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0101 4863: //FREM.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0101 4864: //FREM.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0101 4865: //FREM.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0101 4866: //FSCALE.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0110 4867: //FSCALE.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0110 4868: //FSCALE.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0110 4869: //FSCALE.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0110 4870: //FSCALE.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0110 4871: //FSCALE.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0110 4872: //FSCALE.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0110 4873: //FSGLMUL.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0111 4874: //FSGLMUL.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0111 4875: //FSGLMUL.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0111 4876: //FSGLMUL.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0111 4877: //FSGLMUL.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0111 4878: //FSGLMUL.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0111 4879: //FSGLMUL.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0111 4880: //FSUB.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_1000 4881: //FSUB.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_1000 4882: //FSUB.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_1000 4883: //FSUB.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_1000 4884: //FSUB.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_1000 4885: //FSUB.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_1000 4886: //FSUB.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_1000 4887: //FSINCOS.L <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_sss_011_0ccc 4888: //FSINCOS.S <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_sss_011_0ccc 4889: //FSINCOS.X <ea>,FPc:FPs --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_sss_011_0ccc 4890: //FSINCOS.P <ea>,FPc:FPs --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_sss_011_0ccc 4891: //FSINCOS.W <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_sss_011_0ccc 4892: //FSINCOS.D <ea>,FPc:FPs --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_sss_011_0ccc 4893: //FSINCOS.B <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_sss_011_0ccc 4894: //FCMP.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_011_1000 4895: //FCMP.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_011_1000 4896: //FCMP.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_011_1000 4897: //FCMP.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_011_1000 4898: //FCMP.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_011_1000 4899: //FCMP.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_011_1000 4900: //FCMP.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_011_1000 4901: //FTST.L <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_000_011_1010 4902: //FTST.S <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_000_011_1010 4903: //FTST.X <ea> --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_000_011_1010 4904: //FTST.P <ea> --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_000_011_1010 4905: //FTST.W <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_000_011_1010 4906: //FTST.D <ea> --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_000_011_1010 4907: //FTST.B <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_000_011_1010 4908: //FSMOVE.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0000 4909: //FSMOVE.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0000 4910: //FSMOVE.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0000 4911: //FSMOVE.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0000 4912: //FSMOVE.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0000 4913: //FSMOVE.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0000 4914: //FSMOVE.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0000 4915: //FSSQRT.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0001 4916: //FSSQRT.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0001 4917: //FSSQRT.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0001 4918: //FSSQRT.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0001 4919: //FSSQRT.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0001 4920: //FSSQRT.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0001 4921: //FSSQRT.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0001 4922: //FDMOVE.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0100 4923: //FDMOVE.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0100 4924: //FDMOVE.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0100 4925: //FDMOVE.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0100 4926: //FDMOVE.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0100 4927: //FDMOVE.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0100 4928: //FDMOVE.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0100 4929: //FDSQRT.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0101 4930: //FDSQRT.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0101 4931: //FDSQRT.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0101 4932: //FDSQRT.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0101 4933: //FDSQRT.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0101 4934: //FDSQRT.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0101 4935: //FDSQRT.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0101 4936: //FSABS.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1000 4937: //FSABS.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1000 4938: //FSABS.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1000 4939: //FSABS.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1000 4940: //FSABS.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1000 4941: //FSABS.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1000 4942: //FSABS.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1000 4943: //FSNEG.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1010 4944: //FSNEG.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1010 4945: //FSNEG.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1010 4946: //FSNEG.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1010 4947: //FSNEG.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1010 4948: //FSNEG.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1010 4949: //FSNEG.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1010 4950: //FDABS.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1100 4951: //FDABS.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1100 4952: //FDABS.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1100 4953: //FDABS.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1100 4954: //FDABS.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1100 4955: //FDABS.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1100 4956: //FDABS.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1100 4957: //FDNEG.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1110 4958: //FDNEG.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1110 4959: //FDNEG.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1110 4960: //FDNEG.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1110 4961: //FDNEG.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1110 4962: //FDNEG.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1110 4963: //FDNEG.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1110 4964: //FSDIV.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0000 4965: //FSDIV.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0000 4966: //FSDIV.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0000 4967: //FSDIV.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0000 4968: //FSDIV.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0000 4969: //FSDIV.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0000 4970: //FSDIV.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0000 4971: //FSADD.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0010 4972: //FSADD.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0010 4973: //FSADD.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0010 4974: //FSADD.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0010 4975: //FSADD.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0010 4976: //FSADD.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0010 4977: //FSADD.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0010 4978: //FSMUL.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0011 4979: //FSMUL.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0011 4980: //FSMUL.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0011 4981: //FSMUL.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0011 4982: //FSMUL.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0011 4983: //FSMUL.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0011 4984: //FSMUL.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0011 4985: //FDDIV.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0100 4986: //FDDIV.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0100 4987: //FDDIV.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0100 4988: //FDDIV.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0100 4989: //FDDIV.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0100 4990: //FDDIV.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0100 4991: //FDDIV.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0100 4992: //FDADD.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0110 4993: //FDADD.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0110 4994: //FDADD.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0110 4995: //FDADD.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0110 4996: //FDADD.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0110 4997: //FDADD.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0110 4998: //FDADD.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0110 4999: //FDMUL.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0111 5000: //FDMUL.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0111 5001: //FDMUL.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0111 5002: //FDMUL.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0111 5003: //FDMUL.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0111 5004: //FDMUL.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0111 5005: //FDMUL.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0111 5006: //FSSUB.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_1000 5007: //FSSUB.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_1000 5008: //FSSUB.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_1000 5009: //FSSUB.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_1000 5010: //FSSUB.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_1000 5011: //FSSUB.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_1000 5012: //FSSUB.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_1000 5013: //FDSUB.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_1100 5014: //FDSUB.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_1100 5015: //FDSUB.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_1100 5016: //FDSUB.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_1100 5017: //FDSUB.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_1100 5018: //FDSUB.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_1100 5019: //FDSUB.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_1100 5020: //FMOVECR.X #ccc,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-010_111_nnn_0cc_cccc 5021: //FMOVE.L FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_000_nnn_000_0000 5022: //FMOVE.S FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_001_nnn_000_0000 5023: //FMOVE.X FPn,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_010_nnn_000_0000 5024: //FMOVE.P FPn,<ea>{#k} --CCSS|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_011_nnn_kkk_kkkk 5025: //FMOVE.W FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_100_nnn_000_0000 5026: //FMOVE.D FPn,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_101_nnn_000_0000 5027: //FMOVE.B FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_110_nnn_000_0000 5028: //FMOVE.P FPn,<ea>{Dl} --CCSS|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_111_nnn_lll_0000 5029: //FMOVE.L <ea>,FPIAR --CC46|-|-----|-----|DAM+-WXZPI|1111_001_000_mmm_rrr-100_001_000_000_0000 5030: //FMOVE.L <ea>,FPSR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_010_000_000_0000 5031: //FMOVE.L <ea>,FPCR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_100_000_000_0000 5032: //FMOVEM.L <ea>,FPIAR --CC46|-|-----|-----|DAM+-WXZPI|1111_001_000_mmm_rrr-100_001_000_000_0000 5033: //FMOVEM.L <ea>,FPSR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_010_000_000_0000 5034: //FMOVEM.L <ea>,FPCR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_100_000_000_0000 5035: //FMOVEM.L <ea>,FPSR/FPIAR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_011_000_000_0000 5036: //FMOVEM.L #<data>,#<data>,FPSR/FPIAR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_011_000_000_0000-{data} 5037: //FMOVEM.L <ea>,FPCR/FPIAR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_101_000_000_0000 5038: //FMOVEM.L #<data>,#<data>,FPCR/FPIAR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_101_000_000_0000-{data} 5039: //FMOVEM.L <ea>,FPCR/FPSR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_110_000_000_0000 5040: //FMOVEM.L #<data>,#<data>,FPCR/FPSR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_110_000_000_0000-{data} 5041: //FMOVEM.L <ea>,FPCR/FPSR/FPIAR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_111_000_000_0000 5042: //FMOVEM.L #<d>,#<d>,#<d>,FPCR/FPSR/FPIAR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_111_000_000_0000-{data} 5043: //FMOVE.L FPIAR,<ea> --CC46|-|-----|-----|DAM+-WXZ |1111_001_000_mmm_rrr-101_001_000_000_0000 5044: //FMOVE.L FPSR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_010_000_000_0000 5045: //FMOVE.L FPCR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_100_000_000_0000 5046: //FMOVEM.L FPIAR,<ea> --CC46|-|-----|-----|DAM+-WXZ |1111_001_000_mmm_rrr-101_001_000_000_0000 5047: //FMOVEM.L FPSR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_010_000_000_0000 5048: //FMOVEM.L FPCR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_100_000_000_0000 5049: //FMOVEM.L FPSR/FPIAR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_011_000_000_0000 5050: //FMOVEM.L FPCR/FPIAR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_101_000_000_0000 5051: //FMOVEM.L FPCR/FPSR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_110_000_000_0000 5052: //FMOVEM.L FPCR/FPSR/FPIAR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_111_000_000_0000 5053: //FMOVEM.X <ea>,#<data> --CC46|-|-----|-----| M+ WXZP |1111_001_000_mmm_rrr-110_100_00d_ddd_dddd 5054: //FMOVEM.X <ea>,<list> --CC46|-|-----|-----| M+ WXZP |1111_001_000_mmm_rrr-110_100_00l_lll_llll 5055: //FMOVEM.X <ea>,Dl --CC4S|-|-----|-----| M+ WXZP |1111_001_000_mmm_rrr-110_110_000_lll_0000 5056: //FMOVEM.X #<data>,-(Ar) --CC46|-|-----|-----| - |1111_001_000_100_rrr-111_000_00d_ddd_dddd 5057: //FMOVEM.X #<data>,<ea> --CC46|-|-----|-----| M WXZ |1111_001_000_mmm_rrr-111_100_00d_ddd_dddd 5058: //FMOVEM.X <list>,-(Ar) --CC46|-|-----|-----| - |1111_001_000_100_rrr-111_000_00l_lll_llll 5059: //FMOVEM.X <list>,<ea> --CC46|-|-----|-----| M WXZ |1111_001_000_mmm_rrr-111_100_00l_lll_llll 5060: //FMOVEM.X Dl,-(Ar) --CC4S|-|-----|-----| - |1111_001_000_100_rrr-111_010_000_lll_0000 5061: //FMOVEM.X Dl,<ea> --CC4S|-|-----|-----| M WXZ |1111_001_000_mmm_rrr-111_110_000_lll_0000 5062: case 0b1111_001_000: return disFgen (sb); 5063: 5064: //FDBcc Dr,<label> --CC4S|-|-----|-----| |1111_001_001_001_rrr-000_000_000_0cc_cccc-{offset} 5065: //FTRAPcc.W #<data> --CC4S|-|-----|-----| |1111_001_001_111_010-000_000_000_0cc_cccc-{data} 5066: //FTRAPcc.L #<data> --CC4S|-|-----|-----| |1111_001_001_111_011-000_000_000_0cc_cccc-{data} 5067: //FTRAPcc --CC4S|-|-----|-----| |1111_001_001_111_100-000_000_000_0cc_cccc 5068: //FScc.B <ea> --CC4S|-|-----|-----|D M+-WXZ |1111_001_001_mmm_rrr-000_000_000_0cc_cccc 5069: case 0b1111_001_001: return disFscc (sb); 5070: 5071: //FNOP --CC46|-|-----|-----| |1111_001_010_000_000-000_000_000_000_0000 5072: //FBcc.W <label> --CC46|-|-----|-----| |1111_001_010_ccc_ccc-{offset} 5073: case 0b1111_001_010: return disFbccWord (sb); 5074: 5075: //FBcc.L <label> --CC46|-|-----|-----| |1111_001_011_ccc_ccc-{offset} 5076: case 0b1111_001_011: return disFbccLong (sb); 5077: 5078: //FSAVE <ea> --CC46|P|-----|-----| M -WXZ |1111_001_100_mmm_rrr 5079: case 0b1111_001_100: return disFsave (sb); 5080: 5081: //FRESTORE <ea> --CC46|P|-----|-----| M+ WXZP |1111_001_101_mmm_rrr 5082: case 0b1111_001_101: return disFrestore (sb); 5083: 5084: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 5085: case 0b1111_001_110: 5086: case 0b1111_001_111: return disFline (sb); 5087: 5088: //CINVL NC,(An) ----46|P|-----|-----| |1111_010_000_001_nnn 5089: //CINVP NC,(An) ----46|P|-----|-----| |1111_010_000_010_nnn 5090: //CINVA NC ----46|P|-----|-----| |1111_010_000_011_000 5091: //CPUSHL NC,(An) ----46|P|-----|-----| |1111_010_000_101_nnn 5092: //INTOUCH (An) ------|P|-----|-----| |1111_010_000_101_nnn (ISA_B) 5093: //CPUSHP NC,(An) ----46|P|-----|-----| |1111_010_000_110_nnn 5094: //CPUSHA NC ----46|P|-----|-----| |1111_010_000_111_000 5095: case 0b1111_010_000: return disCinvCpush (sb); 5096: 5097: //CINVL DC,(An) ----46|P|-----|-----| |1111_010_001_001_nnn 5098: //CINVP DC,(An) ----46|P|-----|-----| |1111_010_001_010_nnn 5099: //CINVA DC ----46|P|-----|-----| |1111_010_001_011_000 5100: //CPUSHL DC,(An) ----46|P|-----|-----| |1111_010_001_101_nnn 5101: //CPUSHP DC,(An) ----46|P|-----|-----| |1111_010_001_110_nnn 5102: //CPUSHA DC ----46|P|-----|-----| |1111_010_001_111_000 5103: case 0b1111_010_001: return disCinvCpush (sb); 5104: 5105: //CINVL IC,(An) ----46|P|-----|-----| |1111_010_010_001_nnn 5106: //CINVP IC,(An) ----46|P|-----|-----| |1111_010_010_010_nnn 5107: //CINVA IC ----46|P|-----|-----| |1111_010_010_011_000 5108: //CPUSHL IC,(An) ----46|P|-----|-----| |1111_010_010_101_nnn 5109: //CPUSHP IC,(An) ----46|P|-----|-----| |1111_010_010_110_nnn 5110: //CPUSHA IC ----46|P|-----|-----| |1111_010_010_111_000 5111: case 0b1111_010_010: return disCinvCpush (sb); 5112: 5113: //CINVL BC,(An) ----46|P|-----|-----| |1111_010_011_001_nnn 5114: //CINVP BC,(An) ----46|P|-----|-----| |1111_010_011_010_nnn 5115: //CINVA BC ----46|P|-----|-----| |1111_010_011_011_000 5116: //CPUSHL BC,(An) ----46|P|-----|-----| |1111_010_011_101_nnn 5117: //CPUSHP BC,(An) ----46|P|-----|-----| |1111_010_011_110_nnn 5118: //CPUSHA BC ----46|P|-----|-----| |1111_010_011_111_000 5119: case 0b1111_010_011: return disCinvCpush (sb); 5120: 5121: //PFLUSHN (An) ----46|P|-----|-----| |1111_010_100_000_nnn 5122: //PFLUSH (An) ----46|P|-----|-----| |1111_010_100_001_nnn 5123: //PFLUSHAN ----46|P|-----|-----| |1111_010_100_010_000 5124: //PFLUSHA ----46|P|-----|-----| |1111_010_100_011_000 5125: case 0b1111_010_100: return disPflush (sb); 5126: 5127: //PTESTW (An) ----4-|P|-----|-----| |1111_010_101_001_nnn 5128: //PTESTR (An) ----4-|P|-----|-----| |1111_010_101_101_nnn 5129: case 0b1111_010_101: return disPtest (sb); 5130: 5131: //PLPAW (An) -----6|P|-----|-----| |1111_010_110_001_nnn 5132: case 0b1111_010_110: return disPlpaw (sb); 5133: 5134: //PLPAR (An) -----6|P|-----|-----| |1111_010_111_001_nnn 5135: case 0b1111_010_111: return disPlpar (sb); 5136: 5137: //MOVE16 (An)+,xxx.L ----46|-|-----|-----| |1111_011_000_000_nnn-{address} 5138: //MOVE16 xxx.L,(An)+ ----46|-|-----|-----| |1111_011_000_001_nnn-{address} 5139: //MOVE16 (An),xxx.L ----46|-|-----|-----| |1111_011_000_010_nnn-{address} 5140: //MOVE16 xxx.L,(An) ----46|-|-----|-----| |1111_011_000_011_nnn-{address} 5141: //MOVE16 (Ax)+,(Ay)+ ----46|-|-----|-----| |1111_011_000_100_xxx-1yyy000000000000 5142: case 0b1111_011_000: return disMove16 (sb); 5143: 5144: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 5145: case 0b1111_011_001: 5146: case 0b1111_011_010: 5147: case 0b1111_011_011: 5148: case 0b1111_011_100: 5149: case 0b1111_011_101: 5150: case 0b1111_011_110: 5151: case 0b1111_011_111: return disFline (sb); 5152: 5153: //LPSTOP.W #<data> -----6|P|-----|-----| |1111_100_000_000_000-0000000111000000-{data} 5154: case 0b1111_100_000: return disLpstop (sb); 5155: 5156: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 5157: case 0b1111_100_001: 5158: case 0b1111_100_010: 5159: case 0b1111_100_011: 5160: case 0b1111_100_100: 5161: case 0b1111_100_101: 5162: case 0b1111_100_110: 5163: case 0b1111_100_111: 5164: case 0b1111_101_000: 5165: case 0b1111_101_001: 5166: case 0b1111_101_010: 5167: case 0b1111_101_011: return disFline (sb); 5168: 5169: //WDDATA.B <ea> ------|-|-----|-----| M+-WXZ |1111_101_100_mmm_rrr (ISA_A) 5170: case 0b1111_101_100: return disWddataByte (sb); 5171: 5172: //WDDATA.W <ea> ------|-|-----|-----| M+-WXZ |1111_101_101_mmm_rrr (ISA_A) 5173: case 0b1111_101_101: return disWddataWord (sb); 5174: 5175: //WDDATA.L <ea> ------|-|-----|-----| M+-WXZ |1111_101_110_mmm_rrr (ISA_A) 5176: case 0b1111_101_110: return disWddataLong (sb); 5177: 5178: //WDEBUG.L <ea> ------|P|-----|-----| M W |1111_101_111_mmm_rrr-0000000000000011 (ISA_A) 5179: case 0b1111_101_111: return disWdebug (sb); 5180: 5181: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 5182: case 0b1111_110_000: 5183: case 0b1111_110_001: 5184: case 0b1111_110_010: 5185: case 0b1111_110_011: 5186: case 0b1111_110_100: 5187: case 0b1111_110_101: 5188: case 0b1111_110_110: 5189: case 0b1111_110_111: return disFline (sb); 5190: 5191: //FPACK <name> 012346|-|-----|-----| |1111_111_0xx_xxx_xxx 5192: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 5193: case 0b1111_111_000: 5194: case 0b1111_111_001: 5195: case 0b1111_111_010: 5196: case 0b1111_111_011: return disFpack (sb); 5197: 5198: //DOS <name> 012346|-|-----|-----| |1111_111_1xx_xxx_xxx 5199: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 5200: case 0b1111_111_100: 5201: case 0b1111_111_101: 5202: case 0b1111_111_110: 5203: case 0b1111_111_111: return disDos (sb); 5204: 5205: } 5206: return disIllegal (sb); 5207: } //disDisassemble(StringBuilder,int,int) 5208: 5209: //ORI.B #<data>,CCR 012346|-|*****|*****| |0000_000_000_111_100-{data} 5210: //ORI.B #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_000_000_mmm_rrr-{data} 5211: public static StringBuilder disOriByte (StringBuilder sb) { 5212: int ea = disOC & 63; 5213: if (XEiJ.EAM_DLT << ea < 0L) { 5214: return disEab (disIMb (sb.append ("ori.b ")).append (','), ea); 5215: } 5216: if (ea == 0b111_100) { 5217: return disIMb (sb.append ("ori.b ")).append (",ccr"); 5218: } 5219: return disIllegal (sb); 5220: } //disOriByte(StringBuilder) 5221: 5222: //ORI.W #<data>,SR 012346|P|*****|*****| |0000_000_001_111_100-{data} 5223: //ORI.W #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_000_001_mmm_rrr-{data} 5224: public static StringBuilder disOriWord (StringBuilder sb) { 5225: int ea = disOC & 63; 5226: if (XEiJ.EAM_DLT << ea < 0L) { 5227: return disEaw (disIMw (sb.append ("ori.w ")).append (','), ea); 5228: } 5229: if (ea == 0b111_100) { 5230: return disIMw (sb.append ("ori.w ")).append (",sr"); 5231: } 5232: return disIllegal (sb); 5233: } //disOriWord(StringBuilder) 5234: 5235: //ORI.L #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_000_010_mmm_rrr-{data} 5236: public static StringBuilder disOriLong (StringBuilder sb) { 5237: int ea = disOC & 63; 5238: if (XEiJ.EAM_DLT << ea < 0L) { 5239: return disEal (disIMl (sb.append ("ori.l ")).append (','), ea); 5240: } 5241: return disIllegal (sb); 5242: } //disOriLong(StringBuilder) 5243: 5244: //ANDI.B #<data>,CCR 012346|-|*****|*****| |0000_001_000_111_100-{data} 5245: //ANDI.B #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_001_000_mmm_rrr-{data} 5246: public static StringBuilder disAndiByte (StringBuilder sb) { 5247: int ea = disOC & 63; 5248: if (XEiJ.EAM_DLT << ea < 0L) { 5249: return disEab (disIMb (sb.append ("andi.b ")).append (','), ea); 5250: } 5251: if (ea == 0b111_100) { 5252: return disIMb (sb.append ("andi.b ")).append (",ccr"); 5253: } 5254: return disIllegal (sb); 5255: } //disAndiByte(StringBuilder) 5256: 5257: //ANDI.W #<data>,SR 012346|P|*****|*****| |0000_001_001_111_100-{data} 5258: //ANDI.W #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_001_001_mmm_rrr-{data} 5259: public static StringBuilder disAndiWord (StringBuilder sb) { 5260: int ea = disOC & 63; 5261: if (XEiJ.EAM_DLT << ea < 0L) { 5262: return disEaw (disIMw (sb.append ("andi.w ")).append (','), ea); 5263: } 5264: if (ea == 0b111_100) { 5265: return disIMw (sb.append ("andi.w ")).append (",sr"); 5266: } 5267: return disIllegal (sb); 5268: } //disAndiWord(StringBuilder) 5269: 5270: //ANDI.L #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_001_010_mmm_rrr-{data} 5271: public static StringBuilder disAndiLong (StringBuilder sb) { 5272: int ea = disOC & 63; 5273: if (XEiJ.EAM_DLT << ea < 0L) { 5274: return disEal (disIMl (sb.append ("andi.l ")).append (','), ea); 5275: } 5276: return disIllegal (sb); 5277: } //disAndiLong(StringBuilder) 5278: 5279: //SUBI.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_010_000_mmm_rrr-{data} 5280: public static StringBuilder disSubiByte (StringBuilder sb) { 5281: int ea = disOC & 63; 5282: if (XEiJ.EAM_DLT << ea < 0L) { 5283: return disEab (disIMb (sb.append ("subi.b ")).append (','), ea); 5284: } 5285: return disIllegal (sb); 5286: } //disSubiByte(StringBuilder) 5287: 5288: //SUBI.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_010_001_mmm_rrr-{data} 5289: public static StringBuilder disSubiWord (StringBuilder sb) { 5290: int ea = disOC & 63; 5291: if (XEiJ.EAM_DLT << ea < 0L) { 5292: return disEaw (disIMw (sb.append ("subi.w ")).append (','), ea); 5293: } 5294: return disIllegal (sb); 5295: } //disSubiWord(StringBuilder) 5296: 5297: //SUBI.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_010_010_mmm_rrr-{data} 5298: public static StringBuilder disSubiLong (StringBuilder sb) { 5299: int ea = disOC & 63; 5300: if (XEiJ.EAM_DLT << ea < 0L) { 5301: return disEal (disIMl (sb.append ("subi.l ")).append (','), ea); 5302: } 5303: return disIllegal (sb); 5304: } //disSubiLong(StringBuilder) 5305: 5306: //BITREV.L Dr ------|-|-----|-----| |0000_000_011_000_rrr (ISA_C) 5307: //CMP2.B <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_000_011_mmm_rrr-rnnn_000_000_000_000 5308: //CHK2.B <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_000_011_mmm_rrr-rnnn_100_000_000_000 5309: public static StringBuilder disCmp2Chk2Byte (StringBuilder sb) { 5310: int ea = disOC & 63; 5311: if (XEiJ.EAM_CNT << ea < 0L) { 5312: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 5313: if ((w & ~0b1111_100_000_000_000) == 0) { 5314: return disRn (disEab (sb.append ((w & 0b0000_100_000_000_000) == 0 ? "cmp2.b " : "chk2.b "), ea).append (','), w >> 12); 5315: } 5316: return disIllegal (sb); 5317: } 5318: int mmm = ea >> 3; 5319: int rrr = ea & 7; 5320: if (mmm == XEiJ.MMM_DR) { 5321: return disDR (sb.append ("bitrev.l "), rrr); 5322: } 5323: return disIllegal (sb); 5324: } //disCmp2Chk2Byte(StringBuilder) 5325: 5326: //BYTEREV.L Dr ------|-|-----|-----| |0000_001_011_000_rrr (ISA_C) 5327: //CMP2.W <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_001_011_mmm_rrr-rnnn_000_000_000_000 5328: //CHK2.W <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_001_011_mmm_rrr-rnnn_100_000_000_000 5329: public static StringBuilder disCmp2Chk2Word (StringBuilder sb) { 5330: int ea = disOC & 63; 5331: if (XEiJ.EAM_CNT << ea < 0L) { 5332: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 5333: if ((w & ~0b1111_100_000_000_000) == 0) { 5334: return disRn (disEaw (sb.append ((w & 0b0000_100_000_000_000) == 0 ? "cmp2.w " : "chk2.w "), ea).append (','), w >> 12); 5335: } 5336: return disIllegal (sb); 5337: } 5338: int mmm = ea >> 3; 5339: int rrr = ea & 7; 5340: if (mmm == XEiJ.MMM_DR) { 5341: return disDR (sb.append ("byterev.l "), rrr); 5342: } 5343: return disIllegal (sb); 5344: } //disCmp2Chk2Word(StringBuilder) 5345: 5346: //FF1.L Dr ------|-|-UUUU|-**00| |0000_010_011_000_rrr (ISA_C) 5347: //CMP2.L <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_010_011_mmm_rrr-rnnn_000_000_000_000 5348: //CHK2.L <ea>,Rn --234S|-|-UUUU|-U*U*| M WXZP |0000_010_011_mmm_rrr-rnnn_100_000_000_000 5349: public static StringBuilder disCmp2Chk2Long (StringBuilder sb) { 5350: int ea = disOC & 63; 5351: if (XEiJ.EAM_CNT << ea < 0L) { 5352: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 5353: if ((w & ~0b1111_100_000_000_000) == 0) { 5354: return disRn (disEal (sb.append ((w & 0b0000_100_000_000_000) == 0 ? "cmp2.l " : "chk2.l "), ea).append (','), w >> 12); 5355: } 5356: return disIllegal (sb); 5357: } 5358: int mmm = ea >> 3; 5359: int rrr = ea & 7; 5360: if (mmm == XEiJ.MMM_DR) { 5361: return disDR (sb.append ("ff1.l "), rrr); 5362: } 5363: return disIllegal (sb); 5364: } //disCmp2Chk2Long(StringBuilder) 5365: 5366: //ADDI.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_011_000_mmm_rrr-{data} 5367: public static StringBuilder disAddiByte (StringBuilder sb) { 5368: int ea = disOC & 63; 5369: if (XEiJ.EAM_DLT << ea < 0L) { 5370: return disEab (disIMb (sb.append ("addi.b ")).append (','), ea); 5371: } 5372: return disIllegal (sb); 5373: } //disAddiByte(StringBuilder) 5374: 5375: //ADDI.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_011_001_mmm_rrr-{data} 5376: public static StringBuilder disAddiWord (StringBuilder sb) { 5377: int ea = disOC & 63; 5378: if (XEiJ.EAM_DLT << ea < 0L) { 5379: return disEaw (disIMw (sb.append ("addi.w ")).append (','), ea); 5380: } 5381: return disIllegal (sb); 5382: } //disAddiWord(StringBuilder) 5383: 5384: //ADDI.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0000_011_010_mmm_rrr-{data} 5385: public static StringBuilder disAddiLong (StringBuilder sb) { 5386: int ea = disOC & 63; 5387: if (XEiJ.EAM_DLT << ea < 0L) { 5388: return disEal (disIMl (sb.append ("addi.l ")).append (','), ea); 5389: } 5390: return disIllegal (sb); 5391: } //disAddiLong(StringBuilder) 5392: 5393: //RTM Rn --2---|-|UUUUU|*****| |0000_011_011_00n_nnn 5394: //CALLM #<data>,<ea> --2---|-|-----|-----| M WXZP |0000_011_011_mmm_rrr-0000_000_0dd_ddd_ddd 5395: public static StringBuilder disCallm (StringBuilder sb) { 5396: int ea = disOC & 63; 5397: if (XEiJ.EAM_CNT << ea < 0L) { 5398: return disEaw (disIMb (sb.append ("callm ")).append (','), ea); 5399: } 5400: if (ea <= 15) { 5401: return disRn (sb.append ("rtm "), ea); 5402: } 5403: return disIllegal (sb); 5404: } //disCallm(StringBuilder) 5405: 5406: public static final String[] DIS_BXXX = { "btst", "bchg", "bclr", "bset" }; 5407: 5408: //BTST.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_000_000_rrr-{data} 5409: //BTST.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZP |0000_100_000_mmm_rrr-{data} 5410: public static StringBuilder disBtstImm (StringBuilder sb) { 5411: int ea = disOC & 63; 5412: if (XEiJ.EAM_MEM << ea < 0L) { 5413: return disEab (disIMb (sb.append ("btst.b ")).append (','), ea); 5414: } 5415: int mmm = ea >> 3; 5416: int rrr = ea & 7; 5417: if (mmm == XEiJ.MMM_DR) { 5418: return disDR (disIMb (sb.append ("btst.l ")).append (','), rrr); 5419: } 5420: return disIllegal (sb); 5421: } //disBtstImm(StringBuilder) 5422: 5423: //BCHG.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_001_000_rrr-{data} 5424: //BCHG.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_100_001_mmm_rrr-{data} 5425: public static StringBuilder disBchgImm (StringBuilder sb) { 5426: int ea = disOC & 63; 5427: if (XEiJ.EAM_MLT << ea < 0L) { 5428: return disEab (disIMb (sb.append ("bchg.b ")).append (','), ea); 5429: } 5430: int mmm = ea >> 3; 5431: int rrr = ea & 7; 5432: if (mmm == XEiJ.MMM_DR) { 5433: return disDR (disIMb (sb.append ("bchg.l ")).append (','), rrr); 5434: } 5435: return disIllegal (sb); 5436: } //disBchgImm(StringBuilder) 5437: 5438: //BCLR.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_010_000_rrr-{data} 5439: //BCLR.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_100_010_mmm_rrr-{data} 5440: public static StringBuilder disBclrImm (StringBuilder sb) { 5441: int ea = disOC & 63; 5442: if (XEiJ.EAM_MLT << ea < 0L) { 5443: return disEab (disIMb (sb.append ("bclr.b ")).append (','), ea); 5444: } 5445: int mmm = ea >> 3; 5446: int rrr = ea & 7; 5447: if (mmm == XEiJ.MMM_DR) { 5448: return disDR (disIMb (sb.append ("bclr.l ")).append (','), rrr); 5449: } 5450: return disIllegal (sb); 5451: } //disBclrImm(StringBuilder) 5452: 5453: //BSET.L #<data>,Dr 012346|-|--U--|--*--| |0000_100_011_000_rrr-{data} 5454: //BSET.B #<data>,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_100_011_mmm_rrr-{data} 5455: public static StringBuilder disBsetImm (StringBuilder sb) { 5456: int ea = disOC & 63; 5457: if (XEiJ.EAM_MLT << ea < 0L) { 5458: return disEab (disIMb (sb.append ("bset.b ")).append (','), ea); 5459: } 5460: int mmm = ea >> 3; 5461: int rrr = ea & 7; 5462: if (mmm == XEiJ.MMM_DR) { 5463: return disDR (disIMb (sb.append ("bset.l ")).append (','), rrr); 5464: } 5465: return disIllegal (sb); 5466: } //disBsetImm(StringBuilder) 5467: 5468: //EORI.B #<data>,CCR 012346|-|*****|*****| |0000_101_000_111_100-{data} 5469: //EORI.B #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_101_000_mmm_rrr-{data} 5470: public static StringBuilder disEoriByte (StringBuilder sb) { 5471: int ea = disOC & 63; 5472: if (XEiJ.EAM_DLT << ea < 0L) { 5473: return disEab (disIMb (sb.append ("eori.b ")).append (','), ea); 5474: } 5475: if (ea == 0b111_100) { 5476: return disIMb (sb.append ("eori.b ")).append (",ccr"); 5477: } 5478: return disIllegal (sb); 5479: } //disEoriByte(StringBuilder) 5480: 5481: //EORI.W #<data>,SR 012346|P|*****|*****| |0000_101_001_111_100-{data} 5482: //EORI.W #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_101_001_mmm_rrr-{data} 5483: public static StringBuilder disEoriWord (StringBuilder sb) { 5484: int ea = disOC & 63; 5485: if (XEiJ.EAM_DLT << ea < 0L) { 5486: return disEaw (disIMw (sb.append ("eori.w ")).append (','), ea); 5487: } 5488: if (ea == 0b111_100) { 5489: return disIMw (sb.append ("eori.w ")).append (",sr"); 5490: } 5491: return disIllegal (sb); 5492: } //disEoriWord(StringBuilder) 5493: 5494: //EORI.L #<data>,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |0000_101_010_mmm_rrr-{data} 5495: public static StringBuilder disEoriLong (StringBuilder sb) { 5496: int ea = disOC & 63; 5497: if (XEiJ.EAM_DLT << ea < 0L) { 5498: return disEal (disIMl (sb.append ("eori.l ")).append (','), ea); 5499: } 5500: return disIllegal (sb); 5501: } //disEoriLong(StringBuilder) 5502: 5503: //CAS.B Dc,Du,<ea> --2346|-|-UUUU|-****| M+-WXZ |0000_101_011_mmm_rrr-0000_000_uuu_000_ccc 5504: public static StringBuilder disCasByte (StringBuilder sb) { 5505: int ea = disOC & 63; 5506: if (XEiJ.EAM_MLT << ea < 0L) { 5507: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5508: if ((w & ~0b0000_000_111_000_111) == 0) { 5509: return disEab (disDR (disDR (sb.append ("cas.b "), 5510: w & 7).append (','), 5511: w >> 6 & 7).append (','), 5512: ea); 5513: } 5514: } 5515: return disIllegal (sb); 5516: } //disCasByte(StringBuilder) 5517: 5518: //CMPI.B #<data>,<ea> 012346|-|-UUUU|-****|D M+-WXZ |0000_110_000_mmm_rrr-{data} 5519: //CMPI.B #<data>,<ea> --2346|-|-UUUU|-****| P |0000_110_000_mmm_rrr-{data} 5520: public static StringBuilder disCmpiByte (StringBuilder sb) { 5521: int ea = disOC & 63; 5522: if (XEiJ.EAM_DME << ea < 0L) { 5523: return disEab (disIMb (sb.append ("cmpi.b ")).append (','), ea); 5524: } 5525: return disIllegal (sb); 5526: } //disCmpiByte(StringBuilder) 5527: 5528: //CMPI.W #<data>,<ea> 012346|-|-UUUU|-****|D M+-WXZ |0000_110_001_mmm_rrr-{data} 5529: //CMPI.W #<data>,<ea> --2346|-|-UUUU|-****| P |0000_110_001_mmm_rrr-{data} 5530: public static StringBuilder disCmpiWord (StringBuilder sb) { 5531: int ea = disOC & 63; 5532: if (XEiJ.EAM_DME << ea < 0L) { 5533: return disEaw (disIMw (sb.append ("cmpi.w ")).append (','), ea); 5534: } 5535: return disIllegal (sb); 5536: } //disCmpiWord(StringBuilder) 5537: 5538: //CMPI.L #<data>,<ea> 012346|-|-UUUU|-****|D M+-WXZ |0000_110_010_mmm_rrr-{data} 5539: //CMPI.L #<data>,<ea> --2346|-|-UUUU|-****| P |0000_110_010_mmm_rrr-{data} 5540: public static StringBuilder disCmpiLong (StringBuilder sb) { 5541: int ea = disOC & 63; 5542: if (XEiJ.EAM_DME << ea < 0L) { 5543: return disEal (disIMl (sb.append ("cmpi.l ")).append (','), ea); 5544: } 5545: return disIllegal (sb); 5546: } //disCmpiLong(StringBuilder) 5547: 5548: //CAS2.W Dc1:Dc2,Du1:Du2,(Rn1):(Rn2) --234S|-|-UUUU|-****| |0000_110_011_111_100-rnnn_000_uuu_000_ccc(1)-rnnn_000_uuu_000_ccc(2) 5549: //CAS.W Dc,Du,<ea> --2346|-|-UUUU|-****| M+-WXZ |0000_110_011_mmm_rrr-0000_000_uuu_000_ccc (68060 software emulate misaligned <ea>) 5550: public static StringBuilder disCasWord (StringBuilder sb) { 5551: int ea = disOC & 63; 5552: if (XEiJ.EAM_MLT << ea < 0L) { 5553: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5554: if ((w & ~0b0000_000_111_000_111) == 0) { 5555: return disEaw (disDR (disDR (sb.append ("cas.w "), 5556: w & 7).append (','), 5557: w >> 6 & 7).append (','), 5558: ea); 5559: } 5560: } else if (ea == 0b111_100) { 5561: int w1 = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5562: if ((w1 & ~0b1111_000_111_000_111) == 0) { 5563: int w2 = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5564: if ((w2 & ~0b1111_000_111_000_111) == 0) { 5565: return disRn (disRn (disDR (disDR (disDR (disDR (sb.append ("cas2.w "), 5566: w1 & 7).append (':'), 5567: w2 & 7).append (','), 5568: w1 >> 6 & 7).append (':'), 5569: w2 >> 6 & 7).append (",("), 5570: w1 >> 12).append ("):("), 5571: w2 >> 12).append (')'); 5572: } 5573: } 5574: } 5575: return disIllegal (sb); 5576: } //disCasWord(StringBuilder) 5577: 5578: //MOVES.B <ea>,Rn -12346|P|-----|-----| M+-WXZ |0000_111_000_mmm_rrr-rnnn_000_000_000_000 5579: //MOVES.B Rn,<ea> -12346|P|-----|-----| M+-WXZ |0000_111_000_mmm_rrr-rnnn_100_000_000_000 5580: // MOVES.B An,(An)+とMOVES.B An,-(An)で書き込まれるAnが更新前か更新後かは定義されていない 5581: public static StringBuilder disMovesByte (StringBuilder sb) { 5582: int ea = disOC & 63; 5583: if (XEiJ.EAM_MLT << ea < 0L) { 5584: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5585: if ((w & ~0b1111_100_000_000_000) == 0) { 5586: if ((w & 0b0000_100_000_000_000) == 0) { 5587: return disRn (disEab (sb.append ("moves.b "), ea).append (','), w >> 12); 5588: } else { 5589: return disEab (disRn (sb.append ("moves.b "), w >> 12).append (','), ea); 5590: } 5591: } 5592: } 5593: return disIllegal (sb); 5594: } //disMovesByte(StringBuilder) 5595: 5596: //MOVES.W <ea>,Rn -12346|P|-----|-----| M+-WXZ |0000_111_001_mmm_rrr-rnnn_000_000_000_000 5597: //MOVES.W Rn,<ea> -12346|P|-----|-----| M+-WXZ |0000_111_001_mmm_rrr-rnnn_100_000_000_000 5598: // MOVES.W An,(An)+とMOVES.W An,-(An)で書き込まれるAnが更新前か更新後かは定義されていない 5599: public static StringBuilder disMovesWord (StringBuilder sb) { 5600: int ea = disOC & 63; 5601: if (XEiJ.EAM_MLT << ea < 0L) { 5602: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5603: if ((w & ~0b1111_100_000_000_000) == 0) { 5604: if ((w & 0b0000_100_000_000_000) == 0) { 5605: return disRn (disEaw (sb.append ("moves.w "), ea).append (','), w >> 12); 5606: } else { 5607: return disEaw (disRn (sb.append ("moves.w "), w >> 12).append (','), ea); 5608: } 5609: } 5610: } 5611: return disIllegal (sb); 5612: } //disMovesWord(StringBuilder) 5613: 5614: //MOVES.L <ea>,Rn -12346|P|-----|-----| M+-WXZ |0000_111_010_mmm_rrr-rnnn_000_000_000_000 5615: //MOVES.L Rn,<ea> -12346|P|-----|-----| M+-WXZ |0000_111_010_mmm_rrr-rnnn_100_000_000_000 5616: // MOVES.L An,(An)+とMOVES.L An,-(An)で書き込まれるAnが更新前か更新後かは定義されていない 5617: public static StringBuilder disMovesLong (StringBuilder sb) { 5618: int ea = disOC & 63; 5619: if (XEiJ.EAM_MLT << ea < 0L) { 5620: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5621: if ((w & ~0b1111_100_000_000_000) == 0) { 5622: if ((w & 0b0000_100_000_000_000) == 0) { 5623: return disRn (disEal (sb.append ("moves.l "), ea).append (','), w >> 12); 5624: } else { 5625: return disEal (disRn (sb.append ("moves.l "), w >> 12).append (','), ea); 5626: } 5627: } 5628: } 5629: return disIllegal (sb); 5630: } //disMovesLong(StringBuilder) 5631: 5632: //CAS2.L Dc1:Dc2,Du1:Du2,(Rn1):(Rn2) --234S|-|-UUUU|-****| |0000_111_011_111_100-rnnn_000_uuu_000_ccc(1)-rnnn_000_uuu_000_ccc(2) 5633: //CAS.L Dc,Du,<ea> --2346|-|-UUUU|-****| M+-WXZ |0000_111_011_mmm_rrr-0000_000_uuu_000_ccc (68060 software emulate misaligned <ea>) 5634: public static StringBuilder disCasLong (StringBuilder sb) { 5635: int ea = disOC & 63; 5636: if (XEiJ.EAM_MLT << ea < 0L) { 5637: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5638: if ((w & ~0b0000_000_111_000_111) == 0) { 5639: return disEal (disDR (disDR (sb.append ("cas.l "), 5640: w & 7).append (','), 5641: w >> 6 & 7).append (','), 5642: ea); 5643: } 5644: } else if (ea == 0b111_100) { 5645: int w1 = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5646: if ((w1 & ~0b1111_000_111_000_111) == 0) { 5647: int w2 = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 5648: if ((w2 & ~0b1111_000_111_000_111) == 0) { 5649: return disRn (disRn (disDR (disDR (disDR (disDR (sb.append ("cas2.l "), 5650: w1 & 7).append (':'), 5651: w2 & 7).append (','), 5652: w1 >> 6 & 7).append (':'), 5653: w2 >> 6 & 7).append (",("), 5654: w1 >> 12).append ("):("), 5655: w2 >> 12).append (')'); 5656: } 5657: } 5658: } 5659: return disIllegal (sb); 5660: } //disCasLong(StringBuilder) 5661: 5662: //BTST.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_100_000_rrr 5663: //MOVEP.W (d16,Ar),Dq 01234S|-|-----|-----| |0000_qqq_100_001_rrr-{data} 5664: //BTST.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZPI|0000_qqq_100_mmm_rrr 5665: public static StringBuilder disBtstReg (StringBuilder sb) { 5666: int qqq = disOC >> 9 & 7; 5667: int ea = disOC & 63; 5668: if (XEiJ.EAM_ANY << ea < 0L) { 5669: return disEab (disDR (sb.append ("btst.b "), qqq).append (','), ea); 5670: } 5671: int mmm = ea >> 3; 5672: int rrr = ea & 7; 5673: if (mmm == XEiJ.MMM_DR) { 5674: return disDR (disDR (sb.append ("btst.l "), qqq).append (','), rrr); 5675: } 5676: if (mmm == XEiJ.MMM_AR) { 5677: return disDR (disMW (sb.append ("movep.w "), rrr).append (','), qqq); 5678: } 5679: return disIllegal (sb); 5680: } //disBtstReg(StringBuilder) 5681: 5682: //BCHG.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_101_000_rrr 5683: //MOVEP.L (d16,Ar),Dq 01234S|-|-----|-----| |0000_qqq_101_001_rrr-{data} 5684: //BCHG.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_qqq_101_mmm_rrr 5685: public static StringBuilder disBchgReg (StringBuilder sb) { 5686: int qqq = disOC >> 9 & 7; 5687: int ea = disOC & 63; 5688: if (XEiJ.EAM_MLT << ea < 0L) { 5689: return disEab (disDR (sb.append ("bchg.b "), qqq).append (','), ea); 5690: } 5691: int mmm = ea >> 3; 5692: int rrr = ea & 7; 5693: if (mmm == XEiJ.MMM_DR) { 5694: return disDR (disDR (sb.append ("bchg.l "), qqq).append (','), rrr); 5695: } 5696: if (mmm == XEiJ.MMM_AR) { 5697: return disDR (disMW (sb.append ("movep.l "), rrr).append (','), qqq); 5698: } 5699: return disIllegal (sb); 5700: } //disBchgReg(StringBuilder) 5701: 5702: //BCLR.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_110_000_rrr 5703: //MOVEP.W Dq,(d16,Ar) 01234S|-|-----|-----| |0000_qqq_110_001_rrr-{data} 5704: //BCLR.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_qqq_110_mmm_rrr 5705: public static StringBuilder disBclrReg (StringBuilder sb) { 5706: int qqq = disOC >> 9 & 7; 5707: int ea = disOC & 63; 5708: if (XEiJ.EAM_MLT << ea < 0L) { 5709: return disEab (disDR (sb.append ("bclr.b "), qqq).append (','), ea); 5710: } 5711: int mmm = ea >> 3; 5712: int rrr = ea & 7; 5713: if (mmm == XEiJ.MMM_DR) { 5714: return disDR (disDR (sb.append ("bclr.l "), qqq).append (','), rrr); 5715: } 5716: if (mmm == XEiJ.MMM_AR) { 5717: return disMW (disDR (sb.append ("movep.w "), qqq).append (','), rrr); 5718: } 5719: return disIllegal (sb); 5720: } //disBclrReg(StringBuilder) 5721: 5722: //BSET.L Dq,Dr 012346|-|--U--|--*--| |0000_qqq_111_000_rrr 5723: //MOVEP.L Dq,(d16,Ar) 01234S|-|-----|-----| |0000_qqq_111_001_rrr-{data} 5724: //BSET.B Dq,<ea> 012346|-|--U--|--*--| M+-WXZ |0000_qqq_111_mmm_rrr 5725: public static StringBuilder disBsetReg (StringBuilder sb) { 5726: int qqq = disOC >> 9 & 7; 5727: int ea = disOC & 63; 5728: if (XEiJ.EAM_MLT << ea < 0L) { 5729: return disEab (disDR (sb.append ("bset.b "), qqq).append (','), ea); 5730: } 5731: int mmm = ea >> 3; 5732: int rrr = ea & 7; 5733: if (mmm == XEiJ.MMM_DR) { 5734: return disDR (disDR (sb.append ("bset.l "), qqq).append (','), rrr); 5735: } 5736: if (mmm == XEiJ.MMM_AR) { 5737: return disMW (disDR (sb.append ("movep.l "), qqq).append (','), rrr); 5738: } 5739: return disIllegal (sb); 5740: } //disBsetReg(StringBuilder) 5741: 5742: //MOVE.B <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_000_mmm_rrr 5743: public static StringBuilder disMoveToRegByte (StringBuilder sb) { 5744: int qqq = disOC >> 9 & 7; 5745: int ea = disOC & 63; 5746: if (XEiJ.EAM_DAT << ea < 0L) { 5747: return disDR (disEab (sb.append ("move.b "), ea).append (','), qqq); 5748: } 5749: return disIllegal (sb); 5750: } //disMoveToRegByte(StringBuilder) 5751: 5752: //MOVE.B <ea>,<nnnqqq> 012346|-|-UUUU|-**00|D M+-WXZPI|0001_qqq_nnn_mmm_rrr (nnnqqq:M+-WXZ) 5753: public static StringBuilder disMoveToMemByte (StringBuilder sb) { 5754: int qqq = disOC >> 9 & 7; 5755: int nnn = disOC >> 6 & 7; 5756: int ea = disOC & 63; 5757: if (XEiJ.EAM_DAT << ea < 0L) { 5758: return disEab (disEab (sb.append ("move.b "), ea).append (','), nnn << 3 | qqq); 5759: } 5760: return disIllegal (sb); 5761: } //disMoveToMemByte(StringBuilder) 5762: 5763: //MOVE.L <ea>,Dq 012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_000_mmm_rrr 5764: public static StringBuilder disMoveToRegLong (StringBuilder sb) { 5765: int qqq = disOC >> 9 & 7; 5766: int ea = disOC & 63; 5767: if (XEiJ.EAM_ALL << ea < 0L) { 5768: return disDR (disEal (sb.append ("move.l "), ea).append (','), qqq); 5769: } 5770: return disIllegal (sb); 5771: } //disMoveToRegLong(StringBuilder) 5772: 5773: //MOVEA.L <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|0010_qqq_001_mmm_rrr 5774: public static StringBuilder disMoveaLong (StringBuilder sb) { 5775: int qqq = disOC >> 9 & 7; 5776: int ea = disOC & 63; 5777: if (XEiJ.EAM_ALL << ea < 0L) { 5778: return disAR (disEal (sb.append ("movea.l "), ea).append (','), qqq); 5779: } 5780: return disIllegal (sb); 5781: } //disMoveaLong(StringBuilder) 5782: 5783: //MOVE.L <ea>,<nnnqqq> 012346|-|-UUUU|-**00|DAM+-WXZPI|0010_qqq_nnn_mmm_rrr (nnnqqq:M+-WXZ) 5784: public static StringBuilder disMoveToMemLong (StringBuilder sb) { 5785: int qqq = disOC >> 9 & 7; 5786: int nnn = disOC >> 6 & 7; 5787: int ea = disOC & 63; 5788: if (XEiJ.EAM_ALL << ea < 0L) { 5789: return disEal (disEal (sb.append ("move.l "), ea).append (','), nnn << 3 | qqq); 5790: } 5791: return disIllegal (sb); 5792: } //disMoveToMemLong(StringBuilder) 5793: 5794: //MOVE.W <ea>,Dq 012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_000_mmm_rrr 5795: public static StringBuilder disMoveToRegWord (StringBuilder sb) { 5796: int qqq = disOC >> 9 & 7; 5797: int ea = disOC & 63; 5798: if (XEiJ.EAM_ALL << ea < 0L) { 5799: return disDR (disEaw (sb.append ("move.w "), ea).append (','), qqq); 5800: } 5801: return disIllegal (sb); 5802: } //disMoveToRegWord(StringBuilder) 5803: 5804: //MOVEA.W <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|0011_qqq_001_mmm_rrr 5805: public static StringBuilder disMoveaWord (StringBuilder sb) { 5806: int qqq = disOC >> 9 & 7; 5807: int ea = disOC & 63; 5808: if (XEiJ.EAM_ALL << ea < 0L) { 5809: return disAR (disEaw (sb.append ("movea.w "), ea).append (','), qqq); 5810: } 5811: return disIllegal (sb); 5812: } //disMoveaWord(StringBuilder) 5813: 5814: //MOVE.W <ea>,<nnnqqq> 012346|-|-UUUU|-**00|DAM+-WXZPI|0011_qqq_nnn_mmm_rrr (nnnqqq:M+-WXZ) 5815: public static StringBuilder disMoveToMemWord (StringBuilder sb) { 5816: int qqq = disOC >> 9 & 7; 5817: int nnn = disOC >> 6 & 7; 5818: int ea = disOC & 63; 5819: if (XEiJ.EAM_ALL << ea < 0L) { 5820: return disEaw (disEaw (sb.append ("move.w "), ea).append (','), nnn << 3 | qqq); 5821: } 5822: return disIllegal (sb); 5823: } //disMoveToMemWord(StringBuilder) 5824: 5825: //NEGX.B <ea> 012346|-|*UUUU|*****|D M+-WXZ |0100_000_000_mmm_rrr 5826: public static StringBuilder disNegxByte (StringBuilder sb) { 5827: int ea = disOC & 63; 5828: if (XEiJ.EAM_DLT << ea < 0L) { 5829: return disEab (sb.append ("negx.b "), ea); 5830: } 5831: return disIllegal (sb); 5832: } //disNegxByte(StringBuilder) 5833: 5834: //NEGX.W <ea> 012346|-|*UUUU|*****|D M+-WXZ |0100_000_001_mmm_rrr 5835: public static StringBuilder disNegxWord (StringBuilder sb) { 5836: int ea = disOC & 63; 5837: if (XEiJ.EAM_DLT << ea < 0L) { 5838: return disEaw (sb.append ("negx.w "), ea); 5839: } 5840: return disIllegal (sb); 5841: } //disNegxWord(StringBuilder) 5842: 5843: //NEGX.L <ea> 012346|-|*UUUU|*****|D M+-WXZ |0100_000_010_mmm_rrr 5844: public static StringBuilder disNegxLong (StringBuilder sb) { 5845: int ea = disOC & 63; 5846: if (XEiJ.EAM_DLT << ea < 0L) { 5847: return disEal (sb.append ("negx.l "), ea); 5848: } 5849: return disIllegal (sb); 5850: } //disNegxLong(StringBuilder) 5851: 5852: //STRLDSR.W #<data> ------|P|*****|*****| |0100_000_011_100_111-0100_011_011_111_100-{data} (ISA_C) 5853: //MOVE.W SR,<ea> 0-----|-|*****|-----|D M+-WXZ |0100_000_011_mmm_rrr (68000 and 68008 read before move) 5854: //MOVE.W SR,<ea> -12346|P|*****|-----|D M+-WXZ |0100_000_011_mmm_rrr 5855: public static StringBuilder disMoveFromSR (StringBuilder sb) { 5856: int ea = disOC & 63; 5857: if (XEiJ.EAM_DLT << ea < 0L) { 5858: return disEaw (sb.append ("move.w sr,"), ea); 5859: } 5860: return disIllegal (sb); 5861: } //disMoveFromSR(StringBuilder) 5862: 5863: //CLR.B <ea> 012346|-|-UUUU|-0100|D M+-WXZ |0100_001_000_mmm_rrr (68000 and 68008 read before clear) 5864: public static StringBuilder disClrByte (StringBuilder sb) { 5865: int ea = disOC & 63; 5866: if (XEiJ.EAM_DLT << ea < 0L) { 5867: return disEab (sb.append ("clr.b "), ea); 5868: } 5869: return disIllegal (sb); 5870: } //disClrByte(StringBuilder) 5871: 5872: //CLR.W <ea> 012346|-|-UUUU|-0100|D M+-WXZ |0100_001_001_mmm_rrr (68000 and 68008 read before clear) 5873: public static StringBuilder disClrWord (StringBuilder sb) { 5874: int ea = disOC & 63; 5875: if (XEiJ.EAM_DLT << ea < 0L) { 5876: return disEaw (sb.append ("clr.w "), ea); 5877: } 5878: return disIllegal (sb); 5879: } //disClrWord(StringBuilder) 5880: 5881: //CLR.L <ea> 012346|-|-UUUU|-0100|D M+-WXZ |0100_001_010_mmm_rrr (68000 and 68008 read before clear) 5882: public static StringBuilder disClrLong (StringBuilder sb) { 5883: int ea = disOC & 63; 5884: if (XEiJ.EAM_DLT << ea < 0L) { 5885: return disEal (sb.append ("clr.l "), ea); 5886: } 5887: return disIllegal (sb); 5888: } //disClrLong(StringBuilder) 5889: 5890: //MOVE.W CCR,<ea> -12346|-|*****|-----|D M+-WXZ |0100_001_011_mmm_rrr 5891: public static StringBuilder disMoveFromCCR (StringBuilder sb) { 5892: int ea = disOC & 63; 5893: if (XEiJ.EAM_DLT << ea < 0L) { 5894: return disEaw (sb.append ("move.w ccr,"), ea); 5895: } 5896: return disIllegal (sb); 5897: } //disMoveFromCCR(StringBuilder) 5898: 5899: //NEG.B <ea> 012346|-|UUUUU|*****|D M+-WXZ |0100_010_000_mmm_rrr 5900: public static StringBuilder disNegByte (StringBuilder sb) { 5901: int ea = disOC & 63; 5902: if (XEiJ.EAM_DLT << ea < 0L) { 5903: return disEab (sb.append ("neg.b "), ea); 5904: } 5905: return disIllegal (sb); 5906: } //disNegByte(StringBuilder) 5907: 5908: //NEG.W <ea> 012346|-|UUUUU|*****|D M+-WXZ |0100_010_001_mmm_rrr 5909: public static StringBuilder disNegWord (StringBuilder sb) { 5910: int ea = disOC & 63; 5911: if (XEiJ.EAM_DLT << ea < 0L) { 5912: return disEaw (sb.append ("neg.w "), ea); 5913: } 5914: return disIllegal (sb); 5915: } //disNegWord(StringBuilder) 5916: 5917: //NEG.L <ea> 012346|-|UUUUU|*****|D M+-WXZ |0100_010_010_mmm_rrr 5918: public static StringBuilder disNegLong (StringBuilder sb) { 5919: int ea = disOC & 63; 5920: if (XEiJ.EAM_DLT << ea < 0L) { 5921: return disEal (sb.append ("neg.l "), ea); 5922: } 5923: return disIllegal (sb); 5924: } //disNegLong(StringBuilder) 5925: 5926: //MOVE.W <ea>,CCR 012346|-|UUUUU|*****|D M+-WXZPI|0100_010_011_mmm_rrr 5927: public static StringBuilder disMoveToCCR (StringBuilder sb) { 5928: int ea = disOC & 63; 5929: if (XEiJ.EAM_DAT << ea < 0L) { 5930: return disEaw (sb.append ("move.w "), ea).append (",ccr"); 5931: } 5932: return disIllegal (sb); 5933: } //disMoveToCCR(StringBuilder) 5934: 5935: //NOT.B <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_011_000_mmm_rrr 5936: public static StringBuilder disNotByte (StringBuilder sb) { 5937: int ea = disOC & 63; 5938: if (XEiJ.EAM_DLT << ea < 0L) { 5939: return disEab (sb.append ("not.b "), ea); 5940: } 5941: return disIllegal (sb); 5942: } //disNotByte(StringBuilder) 5943: 5944: //NOT.W <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_011_001_mmm_rrr 5945: public static StringBuilder disNotWord (StringBuilder sb) { 5946: int ea = disOC & 63; 5947: if (XEiJ.EAM_DLT << ea < 0L) { 5948: return disEaw (sb.append ("not.w "), ea); 5949: } 5950: return disIllegal (sb); 5951: } //disNotWord(StringBuilder) 5952: 5953: //NOT.L <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_011_010_mmm_rrr 5954: public static StringBuilder disNotLong (StringBuilder sb) { 5955: int ea = disOC & 63; 5956: if (XEiJ.EAM_DLT << ea < 0L) { 5957: return disEal (sb.append ("not.l "), ea); 5958: } 5959: return disIllegal (sb); 5960: } //disNotLong(StringBuilder) 5961: 5962: //MOVE.W <ea>,SR 012346|P|UUUUU|*****|D M+-WXZPI|0100_011_011_mmm_rrr 5963: public static StringBuilder disMoveToSR (StringBuilder sb) { 5964: int ea = disOC & 63; 5965: if (XEiJ.EAM_DAT << ea < 0L) { 5966: return disEaw (sb.append ("move.w "), ea).append (",sr"); 5967: } 5968: return disIllegal (sb); 5969: } //disMoveToSR(StringBuilder) 5970: 5971: //LINK.L Ar,#<data> --2346|-|-----|-----| |0100_100_000_001_rrr-{data} 5972: //NBCD.B <ea> 012346|-|UUUUU|*U*U*|D M+-WXZ |0100_100_000_mmm_rrr 5973: public static StringBuilder disNbcd (StringBuilder sb) { 5974: int ea = disOC & 63; 5975: if (XEiJ.EAM_DLT << ea < 0L) { 5976: return disEab (sb.append ("nbcd.b "), ea); 5977: } 5978: int rrr = ea & 7; 5979: if (ea == XEiJ.EA_AR) { 5980: return disIMl (disAR (sb.append ("link.l "), rrr).append (",")); 5981: } 5982: return disIllegal (sb); 5983: } //disNbcd(StringBuilder) 5984: 5985: //SWAP.W Dr 012346|-|-UUUU|-**00| |0100_100_001_000_rrr 5986: //BKPT #<data> -12346|-|-----|-----| |0100_100_001_001_ddd 5987: //PEA.L <ea> 012346|-|-----|-----| M WXZP |0100_100_001_mmm_rrr 5988: public static StringBuilder disPea (StringBuilder sb) { 5989: int ea = disOC & 63; 5990: if (XEiJ.EAM_CNT << ea < 0L) { 5991: return disEaz (sb.append ("pea.l "), ea); 5992: } 5993: int mmm = ea >> 3; 5994: int rrr = ea & 7; 5995: if (mmm == XEiJ.MMM_DR) { 5996: return disDR (sb.append ("swap.w "), rrr); 5997: } 5998: if (mmm == XEiJ.MMM_AR) { 5999: return disHex2 (sb.append ("bkpt #"), rrr); 6000: } 6001: return disIllegal (sb); 6002: } //disPea(StringBuilder) 6003: 6004: //EXT.W Dr 012346|-|-UUUU|-**00| |0100_100_010_000_rrr 6005: //MOVEM.W <list>,<ea> 012346|-|-----|-----| M -WXZ |0100_100_010_mmm_rrr-llllllllllllllll 6006: public static StringBuilder disMovemToMemWord (StringBuilder sb) { 6007: int ea = disOC & 63; 6008: if (XEiJ.EAM_WTL << ea < 0L) { 6009: return disEaw (disLst (sb.append ("movem.w "), ea >> 3 == XEiJ.MMM_MN).append (','), ea); 6010: } 6011: int mmm = ea >> 3; 6012: int rrr = ea & 7; 6013: if (mmm == XEiJ.MMM_DR) { 6014: return disDR (sb.append ("ext.w "), rrr); 6015: } 6016: return disIllegal (sb); 6017: } //disMovemToMemWord(StringBuilder) 6018: 6019: //EXT.L Dr 012346|-|-UUUU|-**00| |0100_100_011_000_rrr 6020: //MOVEM.L <list>,<ea> 012346|-|-----|-----| M -WXZ |0100_100_011_mmm_rrr-llllllllllllllll 6021: public static StringBuilder disMovemToMemLong (StringBuilder sb) { 6022: int ea = disOC & 63; 6023: if (XEiJ.EAM_WTL << ea < 0L) { 6024: return disEal (disLst (sb.append ("movem.l "), ea >> 3 == XEiJ.MMM_MN).append (','), ea); 6025: } 6026: int mmm = ea >> 3; 6027: int rrr = ea & 7; 6028: if (mmm == XEiJ.MMM_DR) { 6029: return disDR (sb.append ("ext.l "), rrr); 6030: } 6031: return disIllegal (sb); 6032: } //disMovemToMemLong(StringBuilder) 6033: 6034: //TST.B <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_000_mmm_rrr 6035: //TST.B <ea> --2346|-|-UUUU|-**00| PI|0100_101_000_mmm_rrr 6036: public static StringBuilder disTstByte (StringBuilder sb) { 6037: int ea = disOC & 63; 6038: if (XEiJ.EAM_DAT << ea < 0L) { 6039: return disEab (sb.append ("tst.b "), ea); 6040: } 6041: return disIllegal (sb); 6042: } //disTstByte(StringBuilder) 6043: 6044: //TST.W <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_001_mmm_rrr 6045: //TST.W <ea> --2346|-|-UUUU|-**00| A PI|0100_101_001_mmm_rrr 6046: public static StringBuilder disTstWord (StringBuilder sb) { 6047: int ea = disOC & 63; 6048: if (XEiJ.EAM_ALL << ea < 0L) { 6049: return disEaw (sb.append ("tst.w "), ea); 6050: } 6051: return disIllegal (sb); 6052: } //disTstWord(StringBuilder) 6053: 6054: //TST.L <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_010_mmm_rrr 6055: //TST.L <ea> --2346|-|-UUUU|-**00| A PI|0100_101_010_mmm_rrr 6056: public static StringBuilder disTstLong (StringBuilder sb) { 6057: int ea = disOC & 63; 6058: if (XEiJ.EAM_ALL << ea < 0L) { 6059: return disEal (sb.append ("tst.l "), ea); 6060: } 6061: return disIllegal (sb); 6062: } //disTstLong(StringBuilder) 6063: 6064: //HALT ------|P|-----|-----| |0100_101_011_001_000 (ISA_A) 6065: //PULSE ------|-|-----|-----| |0100_101_011_001_100 (ISA_A) 6066: //ILLEGAL 012346|-|-----|-----| |0100_101_011_111_100 6067: //TAS.B <ea> 012346|-|-UUUU|-**00|D M+-WXZ |0100_101_011_mmm_rrr 6068: public static StringBuilder disTas (StringBuilder sb) { 6069: int ea = disOC & 63; 6070: if (XEiJ.EAM_DLT << ea < 0L) { 6071: return disEab (sb.append ("tas.b "), ea); 6072: } 6073: if (ea == 0b001_000) { 6074: return sb.append ("halt"); 6075: } 6076: if (ea == 0b001_100) { 6077: return sb.append ("pulse"); 6078: } 6079: if (ea == 0b111_100) { 6080: return sb.append ("illegal"); 6081: } 6082: return disIllegal (sb); 6083: } //disTas(StringBuilder) 6084: 6085: //MULU.L <ea>,Dl --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_000_000_000_hhh (h is not used) 6086: //MULU.L <ea>,Dh:Dl --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_010_000_000_hhh (if h=l then result is not defined) 6087: //MULS.L <ea>,Dl --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_100_000_000_hhh (h is not used) 6088: //MULS.L <ea>,Dh:Dl --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_000_mmm_rrr-0lll_110_000_000_hhh (if h=l then result is not defined) 6089: public static StringBuilder disMuluMulsLong (StringBuilder sb) { 6090: int ea = disOC & 63; 6091: if (XEiJ.EAM_DAT << ea < 0L) { 6092: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード。0lll_sq0_000_000_hhh 6093: if ((w & ~0b0111_110_000_000_111) == 0) { //拡張ワードの0でなければならないbitがすべて0 6094: int low = w >> 12; //被乗数。積の下位32bit 6095: int signed = w & 0b0000_100_000_000_000; //0=符号なし,0以外=符号あり 6096: int quad = w & 0b0000_010_000_000_000; //0=積は32bit,0以外=積は64bit 6097: int high = w & 7; //積の上位32bit 6098: disEal (sb.append (signed == 0 ? "mulu.l " : "muls.l "), ea).append (','); 6099: if (quad != 0) { 6100: disDR (sb, high).append (':'); 6101: } 6102: return disDR (sb, low); 6103: } 6104: } 6105: return disIllegal (sb); 6106: } //disMuluMulsLong(StringBuilder) 6107: 6108: //DIVU.L <ea>,Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_000_000_000_qqq 6109: //DIVUL.L <ea>,Dr:Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_000_000_000_rrr (q is not equal to r) 6110: //REMU.L <ea>,Dr:Dq ------|-|-UUUU|-***0|D M+-W |0100_110_001_mmm_rrr-0qqq_000_000_000_rrr (ISA_A, q is not equal to r) 6111: //DIVU.L <ea>,Dr:Dq --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_010_000_000_rrr (q is not equal to r) 6112: //DIVS.L <ea>,Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_100_000_000_qqq 6113: //DIVSL.L <ea>,Dr:Dq --2346|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_100_000_000_rrr (q is not equal to r) 6114: //REMS.L <ea>,Dr:Dq ------|-|-UUUU|-***0|D M+-W |0100_110_001_mmm_rrr-0qqq_100_000_000_rrr (ISA_A, q is not equal to r) 6115: //DIVS.L <ea>,Dr:Dq --234S|-|-UUUU|-***0|D M+-WXZPI|0100_110_001_mmm_rrr-0qqq_110_000_000_rrr (q is not equal to r) 6116: public static StringBuilder disDivuDivsLong (StringBuilder sb) { 6117: int ea = disOC & 63; 6118: if (XEiJ.EAM_DAT << ea < 0L) { 6119: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード。0qqq_sq0_000_000_rrr 6120: if ((w & ~0b0111_110_000_000_111) == 0) { //拡張ワードの0でなければならないbitがすべて0 6121: int quo = w >> 12; //被除数の下位32bit、商 6122: int signed = w & 0b0000_100_000_000_000; //0=符号なし,0以外=符号あり 6123: int quad = w & 0b0000_010_000_000_000; //0=被除数は32bit,0以外=被除数は64bit 6124: int rem = w & 7; //被除数の上位32bit、余り 6125: // ColdFireにはDIV*L.L <ea>,Dr:Dq (q!=r)という命令が存在せず、同じオペコードにREM*.L <ea>,Dr:Dq (q!=r)が割り当てられている 6126: // REM*.L <ea>,Dr:Dq (q!=r)はDrに余りを格納するがDqに商を格納しない 6127: disEal (sb.append (signed == 0 ? "divu" : "divs").append (quad == 0 && quo != rem ? "l.l " : ".l "), ea).append (','); 6128: if (quad != 0 || quo != rem) { 6129: disDR (sb, rem).append (':'); 6130: } 6131: return disDR (sb, quo); 6132: } 6133: } 6134: return disIllegal (sb); 6135: } //disDivuDivsLong(StringBuilder) 6136: 6137: //SATS.L Dr ------|-|-UUUU|-**00| |0100_110_010_000_rrr (ISA_B) 6138: //MOVEM.W <ea>,<list> 012346|-|-----|-----| M+ WXZP |0100_110_010_mmm_rrr-llllllllllllllll 6139: public static StringBuilder disMovemToRegWord (StringBuilder sb) { 6140: int ea = disOC & 63; 6141: if (XEiJ.EAM_RDL << ea < 0L) { 6142: StringBuilder tb = disLst (new StringBuilder (), false); //レジスタリストと実効アドレスの順序に注意 6143: return disEaw (sb.append ("movem.w "), ea).append (',').append (tb); 6144: } 6145: int mmm = ea >> 3; 6146: int rrr = ea & 7; 6147: if (mmm == XEiJ.MMM_DR) { 6148: return disDR (sb.append ("sats.l "), rrr); 6149: } 6150: return disIllegal (sb); 6151: } //disMovemToRegWord(StringBuilder) 6152: 6153: //MOVEM.L <ea>,<list> 012346|-|-----|-----| M+ WXZP |0100_110_011_mmm_rrr-llllllllllllllll 6154: public static StringBuilder disMovemToRegLong (StringBuilder sb) { 6155: int ea = disOC & 63; 6156: if (XEiJ.EAM_RDL << ea < 0L) { 6157: StringBuilder tb = disLst (new StringBuilder (), false); //レジスタリストと実効アドレスの順序に注意 6158: return disEal (sb.append ("movem.l "), ea).append (',').append (tb); 6159: } 6160: return disIllegal (sb); 6161: } //disMovemToRegLong(StringBuilder) 6162: 6163: //HFSBOOT 012346|-|-----|-----| |0100_111_000_000_000 6164: //HFSINST 012346|-|-----|-----| |0100_111_000_000_001 6165: //HFSSTR 012346|-|-----|-----| |0100_111_000_000_010 6166: //HFSINT 012346|-|-----|-----| |0100_111_000_000_011 6167: //EMXNOP 012346|-|-----|-----| |0100_111_000_000_100 6168: public static StringBuilder disEmx (StringBuilder sb) { 6169: int ea = disOC & 63; 6170: if (ea < XEiJ.EMX_MNEMONIC_ARRAY.length) { 6171: return sb.append (XEiJ.EMX_MNEMONIC_ARRAY[ea]); 6172: } 6173: return disIllegal (sb); 6174: } //disEmx(StringBuilder) 6175: 6176: //TRAP #<vector> 012346|-|-----|-----| |0100_111_001_00v_vvv 6177: //LINK.W Ar,#<data> 012346|-|-----|-----| |0100_111_001_010_rrr-{data} 6178: //UNLK Ar 012346|-|-----|-----| |0100_111_001_011_rrr 6179: //MOVE.L Ar,USP 012346|P|-----|-----| |0100_111_001_100_rrr 6180: //MOVE.L USP,Ar 012346|P|-----|-----| |0100_111_001_101_rrr 6181: //RESET 012346|P|-----|-----| |0100_111_001_110_000 6182: //NOP 012346|-|-----|-----| |0100_111_001_110_001 6183: //STOP #<data> 012346|P|UUUUU|*****| |0100_111_001_110_010-{data} 6184: //RTE 012346|P|UUUUU|*****| |0100_111_001_110_011 6185: //RTD #<data> -12346|-|-----|-----| |0100_111_001_110_100-{data} 6186: //RTS 012346|-|-----|-----| |0100_111_001_110_101 6187: //TRAPV 012346|-|---*-|-----| |0100_111_001_110_110 6188: //RTR 012346|-|UUUUU|*****| |0100_111_001_110_111 6189: //MOVEC.L Rc,Rn -12346|P|-----|-----| |0100_111_001_111_010-rnnn_ccc_ccc_ccc_ccc 6190: //MOVEC.L Rn,Rc -12346|P|-----|-----| |0100_111_001_111_011-rnnn_ccc_ccc_ccc_ccc 6191: public static StringBuilder disMisc (StringBuilder sb) { 6192: int ea = disOC & 63; 6193: switch (ea) { 6194: case 0b000_000: 6195: case 0b000_001: 6196: case 0b000_010: 6197: case 0b000_011: 6198: case 0b000_100: 6199: case 0b000_101: 6200: case 0b000_110: 6201: case 0b000_111: 6202: case 0b001_000: 6203: case 0b001_001: 6204: case 0b001_010: 6205: case 0b001_011: 6206: case 0b001_100: 6207: case 0b001_101: 6208: case 0b001_110: 6209: case 0b001_111: //TRAP #<vector> 6210: return disIM8 (sb.append ("trap "), ea & 15); 6211: case 0b010_000: 6212: case 0b010_001: 6213: case 0b010_010: 6214: case 0b010_011: 6215: case 0b010_100: 6216: case 0b010_101: 6217: case 0b010_110: 6218: case 0b010_111: //LINK.W Ar,#<data> 6219: return disIMw (disAR (sb.append ("link.w "), ea & 7).append (',')); 6220: case 0b011_000: 6221: case 0b011_001: 6222: case 0b011_010: 6223: case 0b011_011: 6224: case 0b011_100: 6225: case 0b011_101: 6226: case 0b011_110: 6227: case 0b011_111: //UNLK Ar 6228: return disAR (sb.append ("unlk "), ea & 7); 6229: case 0b100_000: 6230: case 0b100_001: 6231: case 0b100_010: 6232: case 0b100_011: 6233: case 0b100_100: 6234: case 0b100_101: 6235: case 0b100_110: 6236: case 0b100_111: //MOVE.L Ar,USP 6237: return disAR (sb.append ("move.l "), ea & 7).append (",usp"); 6238: case 0b101_000: 6239: case 0b101_001: 6240: case 0b101_010: 6241: case 0b101_011: 6242: case 0b101_100: 6243: case 0b101_101: 6244: case 0b101_110: 6245: case 0b101_111: //MOVE.L USP,Ar 6246: return disAR (sb.append ("move.l usp,"), ea & 7); 6247: case 0b110_000: //RESET 6248: return sb.append ("reset "); 6249: case 0b110_001: //NOP 6250: return sb.append ("nop "); 6251: case 0b110_010: //STOP #<data> 6252: return disIMw (sb.append ("stop.w ")); 6253: case 0b110_011: //RTE 6254: disStatus = DIS_ALWAYS_BRANCH; 6255: return sb.append ("rte "); 6256: case 0b110_100: //RTD 6257: disStatus = DIS_ALWAYS_BRANCH; 6258: return disIMw (sb.append ("rtd.w ")); 6259: case 0b110_101: //RTS 6260: disStatus = DIS_ALWAYS_BRANCH; 6261: return sb.append ("rts "); 6262: case 0b110_110: //TRAPV 6263: return sb.append ("trapv "); 6264: case 0b110_111: //RTR 6265: disStatus = DIS_ALWAYS_BRANCH; 6266: return sb.append ("rtr "); 6267: case 0b111_010: //MOVEC.L Rc,Rn 6268: { 6269: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 6270: int c = w & 0x07ff; 6271: String[] disRc = (w & 0x0800) == 0 ? DIS_RCNAME_0XX : DIS_RCNAME_8XX; 6272: if (c < disRc.length && 0 < disRc[c].length ()) { 6273: return disRn (sb.append ("movec.l ").append (disRc[c]).append (','), w >> 12); 6274: } 6275: } 6276: break; 6277: case 0b111_011: //MOVEC.L Rn,Rc 6278: { 6279: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 6280: int c = w & 0x07ff; 6281: String[] disRc = (w & 0x0800) == 0 ? DIS_RCNAME_0XX : DIS_RCNAME_8XX; 6282: if (c < disRc.length && 0 < disRc[c].length ()) { 6283: return disRn (sb.append ("movec.l "), w >> 12).append (',').append (disRc[c]); 6284: } 6285: } 6286: break; 6287: } 6288: return disIllegal (sb); 6289: } //disMisc(StringBuilder) 6290: 6291: //JSR <ea> 012346|-|-----|-----| M WXZP |0100_111_010_mmm_rrr 6292: public static StringBuilder disJsr (StringBuilder sb) { 6293: disStatus = DIS_CALL_SUBROUTINE; 6294: int ea = disOC & 63; 6295: if (XEiJ.EAM_CNT << ea < 0L) { 6296: return disEaz (sb.append ("jsr "), ea); 6297: } 6298: return disIllegal (sb); 6299: } //disJsr(StringBuilder) 6300: 6301: //JMP <ea> 012346|-|-----|-----| M WXZP |0100_111_011_mmm_rrr 6302: public static StringBuilder disJmp (StringBuilder sb) { 6303: disStatus = DIS_ALWAYS_BRANCH; 6304: int ea = disOC & 63; 6305: if (XEiJ.EAM_CNT << ea < 0L) { 6306: return disEaz (sb.append ("jmp "), ea); 6307: } 6308: return disIllegal (sb); 6309: } //disJmp(StringBuilder) 6310: 6311: //CHK.L <ea>,Dq --2346|-|-UUUU|-*UUU|D M+-WXZPI|0100_qqq_100_mmm_rrr 6312: public static StringBuilder disChkLong (StringBuilder sb) { 6313: int qqq = disOC >> 9 & 7; 6314: int ea = disOC & 63; 6315: if (XEiJ.EAM_DAT << ea < 0L) { 6316: return disDR (disEaw (sb.append ("chk.l "), ea).append (','), qqq); 6317: } 6318: return disIllegal (sb); 6319: } //disChkLong(StringBuilder) 6320: 6321: //CHK.W <ea>,Dq 012346|-|-UUUU|-*UUU|D M+-WXZPI|0100_qqq_110_mmm_rrr 6322: public static StringBuilder disChkWord (StringBuilder sb) { 6323: int qqq = disOC >> 9 & 7; 6324: int ea = disOC & 63; 6325: if (XEiJ.EAM_DAT << ea < 0L) { 6326: return disDR (disEaw (sb.append ("chk.w "), ea).append (','), qqq); 6327: } 6328: return disIllegal (sb); 6329: } //disChkWord(StringBuilder) 6330: 6331: //EXTB.L Dr --2346|-|-UUUU|-**00| |0100_100_111_000_rrr 6332: //LEA.L <ea>,Aq 012346|-|-----|-----| M WXZP |0100_qqq_111_mmm_rrr 6333: public static StringBuilder disLea (StringBuilder sb) { 6334: int qqq = disOC >> 9 & 7; 6335: int ea = disOC & 63; 6336: if (XEiJ.EAM_CNT << ea < 0L) { 6337: return disAR (disEaz (sb.append ("lea.l "), ea).append (','), qqq); 6338: } 6339: int mmm = ea >> 3; 6340: int rrr = ea & 7; 6341: if (qqq == 0b100 && mmm == 0b000) { 6342: return disDR (sb.append ("extb.l "), rrr); 6343: } 6344: return disIllegal (sb); 6345: } //disLea(StringBuilder) 6346: 6347: //ADDQ.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_000_mmm_rrr 6348: public static StringBuilder disAddqByte (StringBuilder sb) { 6349: int qqq = disOC >> 9 & 7; 6350: int ea = disOC & 63; 6351: if (XEiJ.EAM_DLT << ea < 0L) { 6352: return disEab (disIM3 (sb.append ("addq.b "), qqq).append (','), ea); 6353: } 6354: return disIllegal (sb); 6355: } //disAddqByte(StringBuilder) 6356: 6357: //ADDQ.W #<data>,Ar 012346|-|-----|-----| A |0101_qqq_001_001_rrr 6358: //ADDQ.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_001_mmm_rrr 6359: public static StringBuilder disAddqWord (StringBuilder sb) { 6360: int qqq = disOC >> 9 & 7; 6361: int ea = disOC & 63; 6362: if (XEiJ.EAM_ALT << ea < 0L) { 6363: return disEaw (disIM3 (sb.append ("addq.w "), qqq).append (','), ea); 6364: } 6365: return disIllegal (sb); 6366: } //disAddqWord(StringBuilder) 6367: 6368: //ADDQ.L #<data>,Ar 012346|-|-----|-----| A |0101_qqq_010_001_rrr 6369: //ADDQ.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_010_mmm_rrr 6370: public static StringBuilder disAddqLong (StringBuilder sb) { 6371: int qqq = disOC >> 9 & 7; 6372: int ea = disOC & 63; 6373: if (XEiJ.EAM_ALT << ea < 0L) { 6374: return disEal (disIM3 (sb.append ("addq.l "), qqq).append (','), ea); 6375: } 6376: return disIllegal (sb); 6377: } //disAddqLong(StringBuilder) 6378: 6379: //SUBQ.B #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_100_mmm_rrr 6380: public static StringBuilder disSubqByte (StringBuilder sb) { 6381: int qqq = disOC >> 9 & 7; 6382: int ea = disOC & 63; 6383: if (XEiJ.EAM_DLT << ea < 0L) { 6384: return disEab (disIM3 (sb.append ("subq.b "), qqq).append (','), ea); 6385: } 6386: return disIllegal (sb); 6387: } //disSubqByte(StringBuilder) 6388: 6389: //SUBQ.W #<data>,Ar 012346|-|-----|-----| A |0101_qqq_101_001_rrr 6390: //SUBQ.W #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_101_mmm_rrr 6391: public static StringBuilder disSubqWord (StringBuilder sb) { 6392: int qqq = disOC >> 9 & 7; 6393: int ea = disOC & 63; 6394: if (XEiJ.EAM_ALT << ea < 0L) { 6395: return disEaw (disIM3 (sb.append ("subq.w "), qqq).append (','), ea); 6396: } 6397: return disIllegal (sb); 6398: } //disSubqWord(StringBuilder) 6399: 6400: //SUBQ.L #<data>,Ar 012346|-|-----|-----| A |0101_qqq_110_001_rrr 6401: //SUBQ.L #<data>,<ea> 012346|-|UUUUU|*****|D M+-WXZ |0101_qqq_110_mmm_rrr 6402: public static StringBuilder disSubqLong (StringBuilder sb) { 6403: int qqq = disOC >> 9 & 7; 6404: int ea = disOC & 63; 6405: if (XEiJ.EAM_ALT << ea < 0L) { 6406: return disEal (disIM3 (sb.append ("subq.l "), qqq).append (','), ea); 6407: } 6408: return disIllegal (sb); 6409: } //disSubqLong(StringBuilder) 6410: 6411: //DBRA.W Dr,<label> 012346|-|-----|-----| |0101_000_111_001_rrr-{offset} 6412: //DBcc.W Dr,<label> 012346|-|-****|-----| |0101_ccc_c11_001_rrr-{offset} 6413: //TRAPcc.W #<data> --2346|-|-****|-----| |0101_ccc_c11_111_010-{data} 6414: //TRAPcc.L #<data> --2346|-|-****|-----| |0101_ccc_c11_111_011-{data} 6415: //TRAPcc --2346|-|-****|-----| |0101_ccc_c11_111_100 6416: //Scc.B <ea> 012346|-|-****|-----|D M+-WXZ |0101_ccc_c11_mmm_rrr 6417: public static StringBuilder disScc (StringBuilder sb) { 6418: int cccc = disOC >> 8 & 15; 6419: int ea = disOC & 63; 6420: if (XEiJ.EAM_DLT << ea < 0L) { 6421: return disEab (disOp3 (sb, "s", DIS_CC[cccc], ".b"), ea); 6422: } 6423: int mmm = ea >> 3; 6424: int rrr = ea & 7; 6425: if (mmm == XEiJ.MMM_AR) { 6426: if (cccc != XEiJ.CCCC_T) { 6427: disStatus = DIS_SOMETIMES_BRANCH; 6428: return disProgramHex8 (disDR (disOp3 (sb, 6429: "db", 6430: cccc == XEiJ.CCCC_F ? "ra" : DIS_CC[cccc], 6431: ".w"), 6432: rrr).append (","), 6433: disPC + MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, 6434: disSupervisor)); 6435: } 6436: } else if (ea == XEiJ.EA_PW) { 6437: return disIMw (sb.append ("trap").append (DIS_CC[cccc]).append (".w ")); 6438: } else if (ea == XEiJ.EA_PX) { 6439: return disIMl (sb.append ("trap").append (DIS_CC[cccc]).append (".l ")); 6440: } else if (ea == XEiJ.EA_IM) { 6441: // ColdFireのTRAPccはオペランドを読み飛ばすだけのTRAPFのみでTPFと書く 6442: return sb.append ("trap").append (DIS_CC[cccc]); 6443: } 6444: return disIllegal (sb); 6445: } //disScc(StringBuilder) 6446: 6447: //BRA.W <label> 012346|-|-----|-----| |0110_000_000_000_000-{offset} 6448: //BRA.L <label> --2346|-|-----|-----| |0110_000_011_111_111-{offset} 6449: //BRA.S <label> 012346|-|-----|-----| |0110_000_0aa_aaa_aaa (a is not equal to 0,-1) 6450: public static StringBuilder disBra (StringBuilder sb) { 6451: disStatus = DIS_ALWAYS_BRANCH; 6452: int offset = (byte) disOC; 6453: if (offset == 0) { 6454: return disProgramHex8 (sb.append ("bra.w "), 6455: disPC + MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, 6456: disSupervisor)); 6457: } else if (offset == -1) { 6458: return disProgramHex8 (sb.append ("bra.l "), 6459: disPC + MC68060.mmuPeekLongCode ((disPC += 4) - 4, 6460: disSupervisor)); 6461: } else { 6462: return disProgramHex8 (sb.append ("bra.s "), 6463: disPC + offset); 6464: } 6465: } //disBra(StringBuilder) 6466: 6467: //BSR.W <label> 012346|-|-----|-----| |0110_000_100_000_000-{offset} 6468: //BSR.L <label> --2346|-|-----|-----| |0110_000_111_111_111-{offset} 6469: //BSR.S <label> 012346|-|-----|-----| |0110_000_1aa_aaa_aaa (a is not equal to 0,-1) 6470: public static StringBuilder disBsr (StringBuilder sb) { 6471: disStatus = DIS_CALL_SUBROUTINE; 6472: int offset = (byte) disOC; 6473: if (offset == 0) { 6474: return disProgramHex8 (sb.append ("bsr.w "), 6475: disPC + MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, 6476: disSupervisor)); 6477: } else if (offset == -1) { 6478: return disProgramHex8 (sb.append ("bsr.l "), 6479: disPC + MC68060.mmuPeekLongCode ((disPC += 4) - 4, 6480: disSupervisor)); 6481: } else { 6482: return disProgramHex8 (sb.append ("bsr.s "), 6483: disPC + offset); 6484: } 6485: } //disBsr(StringBuilder) 6486: 6487: //Bcc.W <label> 012346|-|-****|-----| |0110_ccc_c00_000_000-{offset} 6488: //Bcc.L <label> --2346|-|-****|-----| |0110_ccc_c11_111_111-{offset} 6489: //Bcc.S <label> 012346|-|-****|-----| |0110_ccc_caa_aaa_aaa (a is not equal to 0,-1) 6490: public static StringBuilder disBcc (StringBuilder sb) { 6491: disStatus = DIS_SOMETIMES_BRANCH; 6492: int cccc = disOC >> 8 & 15; 6493: int offset = (byte) disOC; 6494: if (offset == 0) { 6495: return disProgramHex8 (disOp3 (sb, 6496: "b", 6497: DIS_CC[cccc], 6498: ".w"), 6499: disPC + MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, 6500: disSupervisor)); 6501: } else if (offset == -1) { 6502: return disProgramHex8 (disOp3 (sb, 6503: "b", 6504: DIS_CC[cccc], 6505: ".l"), 6506: disPC + MC68060.mmuPeekLongCode ((disPC += 4) - 4, 6507: disSupervisor)); 6508: } else { 6509: return disProgramHex8 (disOp3 (sb, 6510: "b", 6511: DIS_CC[cccc], 6512: ".s"), 6513: disPC + offset); 6514: } 6515: } //disBcc(StringBuilder) 6516: 6517: //IOCS <name> 012346|-|-UUUU|-**00| |0111_000_0dd_ddd_ddd-0100_111_001_001_111 6518: //MOVEQ.L #<data>,Dq 012346|-|-UUUU|-**00| |0111_qqq_0dd_ddd_ddd 6519: public static StringBuilder disMoveq (StringBuilder sb) { 6520: int qqq = disOC >> 9 & 7; 6521: if (qqq == 0 && MC68060.mmuPeekWordZeroCode (disPC, disSupervisor) == 0b0100_111_001_001_111) { //MOVEQ.L #<data>,D0;TRAP #15 → IOCS <name> 6522: disPC += 2; 6523: sb.append ("IOCS "); 6524: if (disOC == 0x70ff) { //_ABORTJOB 6525: disStatus = DIS_ALWAYS_BRANCH; 6526: } 6527: String name = DIS_IOCS_NAME[disOC & 255]; 6528: if (name.length () != 0) { 6529: return sb.append (name); 6530: } 6531: return disHex2 (sb, disOC & 255); 6532: } 6533: return disDR (disIM8 (sb.append ("moveq.l "), disOC).append (','), qqq); 6534: } //disMoveq(StringBuilder) 6535: 6536: //MVS.B <ea>,Dq ------|-|-UUUU|-**00|D M+-WXZPI|0111_qqq_100_mmm_rrr (ISA_B) 6537: public static StringBuilder disMvsByte (StringBuilder sb) { 6538: int qqq = disOC >> 9 & 7; 6539: int ea = disOC & 63; 6540: if (XEiJ.EAM_DAT << ea < 0L) { 6541: return disDR (disEab (sb.append ("mvs.b "), ea).append (','), qqq); 6542: } 6543: return disIllegal (sb); 6544: } //disMvsByte(StringBuilder) 6545: 6546: //MVS.W <ea>,Dq ------|-|-UUUU|-**00|D M+-WXZPI|0111_qqq_101_mmm_rrr (ISA_B) 6547: public static StringBuilder disMvsWord (StringBuilder sb) { 6548: int qqq = disOC >> 9 & 7; 6549: int ea = disOC & 63; 6550: if (XEiJ.EAM_DAT << ea < 0L) { 6551: return disDR (disEaw (sb.append ("mvs.w "), ea).append (','), qqq); 6552: } 6553: return disIllegal (sb); 6554: } //disMvsWord(StringBuilder) 6555: 6556: //MVZ.B <ea>,Dq ------|-|-UUUU|-0*00|D M+-WXZPI|0111_qqq_110_mmm_rrr (ISA_B) 6557: public static StringBuilder disMvzByte (StringBuilder sb) { 6558: int qqq = disOC >> 9 & 7; 6559: int ea = disOC & 63; 6560: if (XEiJ.EAM_DAT << ea < 0L) { 6561: return disDR (disEab (sb.append ("mvz.b "), ea).append (','), qqq); 6562: } 6563: return disIllegal (sb); 6564: } //disMvzByte(StringBuilder) 6565: 6566: //MVZ.W <ea>,Dq ------|-|-UUUU|-0*00|D M+-WXZPI|0111_qqq_111_mmm_rrr (ISA_B) 6567: public static StringBuilder disMvzWord (StringBuilder sb) { 6568: int qqq = disOC >> 9 & 7; 6569: int ea = disOC & 63; 6570: if (XEiJ.EAM_DAT << ea < 0L) { 6571: return disDR (disEaw (sb.append ("mvz.w "), ea).append (','), qqq); 6572: } 6573: return disIllegal (sb); 6574: } //disMvzWord(StringBuilder) 6575: 6576: //OR.B <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_000_mmm_rrr 6577: public static StringBuilder disOrToRegByte (StringBuilder sb) { 6578: int qqq = disOC >> 9 & 7; 6579: int ea = disOC & 63; 6580: if (XEiJ.EAM_DAT << ea < 0L) { 6581: return disDR (disEab (sb.append ("or.b "), ea).append (','), qqq); 6582: } 6583: return disIllegal (sb); 6584: } //disOrToRegByte(StringBuilder) 6585: 6586: //OR.W <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_001_mmm_rrr 6587: public static StringBuilder disOrToRegWord (StringBuilder sb) { 6588: int qqq = disOC >> 9 & 7; 6589: int ea = disOC & 63; 6590: if (XEiJ.EAM_DAT << ea < 0L) { 6591: return disDR (disEaw (sb.append ("or.w "), ea).append (','), qqq); 6592: } 6593: return disIllegal (sb); 6594: } //disOrToRegWord(StringBuilder) 6595: 6596: //OR.L <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1000_qqq_010_mmm_rrr 6597: public static StringBuilder disOrToRegLong (StringBuilder sb) { 6598: int qqq = disOC >> 9 & 7; 6599: int ea = disOC & 63; 6600: if (XEiJ.EAM_DAT << ea < 0L) { 6601: return disDR (disEal (sb.append ("or.l "), ea).append (','), qqq); 6602: } 6603: return disIllegal (sb); 6604: } //disOrToRegLong(StringBuilder) 6605: 6606: //DIVU.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1000_qqq_011_mmm_rrr 6607: public static StringBuilder disDivuWord (StringBuilder sb) { 6608: int qqq = disOC >> 9 & 7; 6609: int ea = disOC & 63; 6610: if (XEiJ.EAM_DAT << ea < 0L) { 6611: return disDR (disEaw (sb.append ("divu.w "), ea).append (','), qqq); 6612: } 6613: return disIllegal (sb); 6614: } //disDivuWord(StringBuilder) 6615: 6616: //DIVS.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1000_qqq_111_mmm_rrr 6617: public static StringBuilder disDivsWord (StringBuilder sb) { 6618: int qqq = disOC >> 9 & 7; 6619: int ea = disOC & 63; 6620: if (XEiJ.EAM_DAT << ea < 0L) { 6621: return disDR (disEaw (sb.append ("divs.w "), ea).append (','), qqq); 6622: } 6623: return disIllegal (sb); 6624: } //disDivsWord(StringBuilder) 6625: 6626: //SBCD.B Dr,Dq 012346|-|UUUUU|*U*U*| |1000_qqq_100_000_rrr 6627: //SBCD.B -(Ar),-(Aq) 012346|-|UUUUU|*U*U*| |1000_qqq_100_001_rrr 6628: //OR.B Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1000_qqq_100_mmm_rrr 6629: public static StringBuilder disOrToMemByte (StringBuilder sb) { 6630: int qqq = disOC >> 9 & 7; 6631: int ea = disOC & 63; 6632: if (XEiJ.EAM_MLT << ea < 0L) { 6633: return disEab (disDR (sb.append ("or.b "), qqq).append (','), ea); 6634: } 6635: int mmm = ea >> 3; 6636: int rrr = ea & 7; 6637: if (mmm == XEiJ.MMM_DR) { 6638: return disDR (disDR (sb.append ("sbcd.b "), rrr).append (','), qqq); 6639: } 6640: if (mmm == XEiJ.MMM_AR) { 6641: return disMN (disMN (sb.append ("sbcd.b "), rrr).append (','), qqq); 6642: } 6643: return disIllegal (sb); 6644: } //disOrToMemByte(StringBuilder) 6645: 6646: //PACK Dr,Dq,#<data> --2346|-|-----|-----| |1000_qqq_101_000_rrr-{data} 6647: //PACK -(Ar),-(Aq),#<data> --2346|-|-----|-----| |1000_qqq_101_001_rrr-{data} 6648: //OR.W Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1000_qqq_101_mmm_rrr 6649: public static StringBuilder disOrToMemWord (StringBuilder sb) { 6650: int qqq = disOC >> 9 & 7; 6651: int ea = disOC & 63; 6652: if (XEiJ.EAM_MLT << ea < 0L) { 6653: return disEaw (disDR (sb.append ("or.w "), qqq).append (','), ea); 6654: } 6655: int mmm = ea >> 3; 6656: int rrr = ea & 7; 6657: if (mmm == XEiJ.MMM_DR) { 6658: return disIMw (disDR (disDR (sb.append ("pack "), rrr).append (','), qqq).append (',')); 6659: } 6660: if (mmm == XEiJ.MMM_AR) { 6661: return disIMw (disMN (disMN (sb.append ("pack "), rrr).append (','), qqq).append (',')); 6662: } 6663: return disIllegal (sb); 6664: } //disOrToMemWord(StringBuilder) 6665: 6666: //UNPK Dr,Dq,#<data> --2346|-|-----|-----| |1000_qqq_110_000_rrr-{data} 6667: //UNPK -(Ar),-(Aq),#<data> --2346|-|-----|-----| |1000_qqq_110_001_rrr-{data} 6668: //OR.L Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1000_qqq_110_mmm_rrr 6669: public static StringBuilder disOrToMemLong (StringBuilder sb) { 6670: int qqq = disOC >> 9 & 7; 6671: int ea = disOC & 63; 6672: if (XEiJ.EAM_MLT << ea < 0L) { 6673: return disEal (disDR (sb.append ("or.l "), qqq).append (','), ea); 6674: } 6675: int mmm = ea >> 3; 6676: int rrr = ea & 7; 6677: if (mmm == XEiJ.MMM_DR) { 6678: return disIMw (disDR (disDR (sb.append ("unpk "), rrr).append (','), qqq).append (',')); 6679: } 6680: if (mmm == XEiJ.MMM_AR) { 6681: return disIMw (disMN (disMN (sb.append ("unpk "), rrr).append (','), qqq).append (',')); 6682: } 6683: return disIllegal (sb); 6684: } //disOrToMemLong(StringBuilder) 6685: 6686: //SUB.B <ea>,Dq 012346|-|UUUUU|*****|D M+-WXZPI|1001_qqq_000_mmm_rrr 6687: public static StringBuilder disSubToRegByte (StringBuilder sb) { 6688: int qqq = disOC >> 9 & 7; 6689: int ea = disOC & 63; 6690: if (XEiJ.EAM_DAT << ea < 0L) { 6691: return disDR (disEab (sb.append ("sub.b "), ea).append (','), qqq); 6692: } 6693: return disIllegal (sb); 6694: } //disSubToRegByte(StringBuilder) 6695: 6696: //SUB.W <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1001_qqq_001_mmm_rrr 6697: public static StringBuilder disSubToRegWord (StringBuilder sb) { 6698: int qqq = disOC >> 9 & 7; 6699: int ea = disOC & 63; 6700: if (XEiJ.EAM_ALL << ea < 0L) { 6701: return disDR (disEaw (sb.append ("sub.w "), ea).append (','), qqq); 6702: } 6703: return disIllegal (sb); 6704: } //disSubToRegWord(StringBuilder) 6705: 6706: //SUB.L <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1001_qqq_010_mmm_rrr 6707: public static StringBuilder disSubToRegLong (StringBuilder sb) { 6708: int qqq = disOC >> 9 & 7; 6709: int ea = disOC & 63; 6710: if (XEiJ.EAM_ALL << ea < 0L) { 6711: return disDR (disEal (sb.append ("sub.l "), ea).append (','), qqq); 6712: } 6713: return disIllegal (sb); 6714: } //disSubToRegLong(StringBuilder) 6715: 6716: //SUBA.W <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1001_qqq_011_mmm_rrr 6717: public static StringBuilder disSubaWord (StringBuilder sb) { 6718: int ea = disOC & 63; 6719: int qqq = disOC >> 9 & 7; 6720: if (XEiJ.EAM_ALL << ea < 0L) { 6721: return disAR (disEaw (sb.append ("suba.w "), ea).append (','), qqq); 6722: } 6723: return disIllegal (sb); 6724: } //disSubaWord(StringBuilder) 6725: 6726: //SUBA.L <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1001_qqq_111_mmm_rrr 6727: public static StringBuilder disSubaLong (StringBuilder sb) { 6728: int ea = disOC & 63; 6729: int qqq = disOC >> 9 & 7; 6730: if (XEiJ.EAM_ALL << ea < 0L) { 6731: return disAR (disEal (sb.append ("suba.l "), ea).append (','), qqq); 6732: } 6733: return disIllegal (sb); 6734: } //disSubaLong(StringBuilder) 6735: 6736: //SUBX.B Dr,Dq 012346|-|*UUUU|*****| |1001_qqq_100_000_rrr 6737: //SUBX.B -(Ar),-(Aq) 012346|-|*UUUU|*****| |1001_qqq_100_001_rrr 6738: //SUB.B Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1001_qqq_100_mmm_rrr 6739: public static StringBuilder disSubToMemByte (StringBuilder sb) { 6740: int qqq = disOC >> 9 & 7; 6741: int ea = disOC & 63; 6742: if (XEiJ.EAM_MLT << ea < 0L) { 6743: return disEab (disDR (sb.append ("sub.b "), qqq).append (','), ea); 6744: } 6745: int mmm = ea >> 3; 6746: int rrr = ea & 7; 6747: if (mmm == XEiJ.MMM_DR) { 6748: return disDR (disDR (sb.append ("subx.b "), rrr).append (','), qqq); 6749: } 6750: if (mmm == XEiJ.MMM_AR) { 6751: return disMN (disMN (sb.append ("subx.b "), rrr).append (','), qqq); 6752: } 6753: return disIllegal (sb); 6754: } //disSubToMemByte(StringBuilder) 6755: 6756: //SUBX.W Dr,Dq 012346|-|*UUUU|*****| |1001_qqq_101_000_rrr 6757: //SUBX.W -(Ar),-(Aq) 012346|-|*UUUU|*****| |1001_qqq_101_001_rrr 6758: //SUB.W Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1001_qqq_101_mmm_rrr 6759: public static StringBuilder disSubToMemWord (StringBuilder sb) { 6760: int qqq = disOC >> 9 & 7; 6761: int ea = disOC & 63; 6762: if (XEiJ.EAM_MLT << ea < 0L) { 6763: return disEaw (disDR (sb.append ("sub.w "), qqq).append (','), ea); 6764: } 6765: int mmm = ea >> 3; 6766: int rrr = ea & 7; 6767: if (mmm == XEiJ.MMM_DR) { 6768: return disDR (disDR (sb.append ("subx.w "), rrr).append (','), qqq); 6769: } 6770: if (mmm == XEiJ.MMM_AR) { 6771: return disMN (disMN (sb.append ("subx.w "), rrr).append (','), qqq); 6772: } 6773: return disIllegal (sb); 6774: } //disSubToMemWord(StringBuilder) 6775: 6776: //SUBX.L Dr,Dq 012346|-|*UUUU|*****| |1001_qqq_110_000_rrr 6777: //SUBX.L -(Ar),-(Aq) 012346|-|*UUUU|*****| |1001_qqq_110_001_rrr 6778: //SUB.L Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1001_qqq_110_mmm_rrr 6779: public static StringBuilder disSubToMemLong (StringBuilder sb) { 6780: int qqq = disOC >> 9 & 7; 6781: int ea = disOC & 63; 6782: if (XEiJ.EAM_MLT << ea < 0L) { 6783: return disEal (disDR (sb.append ("sub.l "), qqq).append (','), ea); 6784: } 6785: int mmm = ea >> 3; 6786: int rrr = ea & 7; 6787: if (mmm == XEiJ.MMM_DR) { 6788: return disDR (disDR (sb.append ("subx.l "), rrr).append (','), qqq); 6789: } 6790: if (mmm == XEiJ.MMM_AR) { 6791: return disMN (disMN (sb.append ("subx.l "), rrr).append (','), qqq); 6792: } 6793: return disIllegal (sb); 6794: } //disSubToMemLong(StringBuilder) 6795: 6796: //MOV3Q.L #<data>,<ea> ------|-|-UUUU|-**00|DAM+-WXZ |1010_qqq_101_mmm_rrr (ISA_B) 6797: //SXCALL <name> 012346|-|-----|-----| |1010_xxx_xxx_xxx_xxx 6798: //line 1010 emulator 012346|-|-----|-----| |1010_xxx_xxx_xxx_xxx 6799: public static StringBuilder disSxcall (StringBuilder sb) { 6800: if (disOC < 0xa800) { 6801: String name = DIS_SXCALL_NAME[disOC & 2047]; 6802: if (name.length () != 0) { 6803: return sb.append ("SXCALL ").append (name); 6804: } 6805: } 6806: return disAline (sb); 6807: } //disSxcall(StringBuilder) 6808: 6809: //line 1010 emulator 012346|-|-----|-----| |1010_xxx_xxx_xxx_xxx 6810: public static StringBuilder disAline (StringBuilder sb) { 6811: return disHex4 (sb.append (".dc.w "), disOC); 6812: } //disAline(StringBuilder) 6813: 6814: //CMP.B <ea>,Dq 012346|-|-UUUU|-****|D M+-WXZPI|1011_qqq_000_mmm_rrr 6815: public static StringBuilder disCmpByte (StringBuilder sb) { 6816: int qqq = disOC >> 9 & 7; 6817: int ea = disOC & 63; 6818: if (XEiJ.EAM_DAT << ea < 0L) { 6819: return disDR (disEab (sb.append ("cmp.b "), ea).append (','), qqq); 6820: } 6821: return disIllegal (sb); 6822: } //disCmpByte(StringBuilder) 6823: 6824: //CMP.W <ea>,Dq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_001_mmm_rrr 6825: public static StringBuilder disCmpWord (StringBuilder sb) { 6826: int qqq = disOC >> 9 & 7; 6827: int ea = disOC & 63; 6828: if (XEiJ.EAM_ALL << ea < 0L) { 6829: return disDR (disEaw (sb.append ("cmp.w "), ea).append (','), qqq); 6830: } 6831: return disIllegal (sb); 6832: } //disCmpWord(StringBuilder) 6833: 6834: //CMP.L <ea>,Dq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_010_mmm_rrr 6835: public static StringBuilder disCmpLong (StringBuilder sb) { 6836: int qqq = disOC >> 9 & 7; 6837: int ea = disOC & 63; 6838: if (XEiJ.EAM_ALL << ea < 0L) { 6839: return disDR (disEal (sb.append ("cmp.l "), ea).append (','), qqq); 6840: } 6841: return disIllegal (sb); 6842: } //disCmpLong(StringBuilder) 6843: 6844: //CMPA.W <ea>,Aq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_011_mmm_rrr 6845: public static StringBuilder disCmpaWord (StringBuilder sb) { 6846: int qqq = disOC >> 9 & 7; 6847: int ea = disOC & 63; 6848: if (XEiJ.EAM_ALL << ea < 0L) { 6849: return disAR (disEaw (sb.append ("cmpa.w "), ea).append (','), qqq); 6850: } 6851: return disIllegal (sb); 6852: } //disCmpaWord(StringBuilder) 6853: 6854: //CMPA.L <ea>,Aq 012346|-|-UUUU|-****|DAM+-WXZPI|1011_qqq_111_mmm_rrr 6855: public static StringBuilder disCmpaLong (StringBuilder sb) { 6856: int qqq = disOC >> 9 & 7; 6857: int ea = disOC & 63; 6858: if (XEiJ.EAM_ALL << ea < 0L) { 6859: return disAR (disEal (sb.append ("cmpa.l "), ea).append (','), qqq); 6860: } 6861: return disIllegal (sb); 6862: } //disCmpaLong(StringBuilder) 6863: 6864: //CMPM.B (Ar)+,(Aq)+ 012346|-|-UUUU|-****| |1011_qqq_100_001_rrr 6865: //EOR.B Dq,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |1011_qqq_100_mmm_rrr 6866: public static StringBuilder disEorToMemByte (StringBuilder sb) { 6867: int qqq = disOC >> 9 & 7; 6868: int ea = disOC & 63; 6869: if (XEiJ.EAM_DLT << ea < 0L) { 6870: return disEab (disDR (sb.append ("eor.b "), qqq).append (','), ea); 6871: } 6872: int mmm = ea >> 3; 6873: int rrr = ea & 7; 6874: if (mmm == XEiJ.MMM_AR) { 6875: return disMP (disMP (sb.append ("cmpm.b "), rrr).append (','), qqq); 6876: } 6877: return disIllegal (sb); 6878: } //disEorToMemByte(StringBuilder) 6879: 6880: //CMPM.W (Ar)+,(Aq)+ 012346|-|-UUUU|-****| |1011_qqq_101_001_rrr 6881: //EOR.W Dq,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |1011_qqq_101_mmm_rrr 6882: public static StringBuilder disEorToMemWord (StringBuilder sb) { 6883: int qqq = disOC >> 9 & 7; 6884: int ea = disOC & 63; 6885: if (XEiJ.EAM_DLT << ea < 0L) { 6886: return disEaw (disDR (sb.append ("eor.w "), qqq).append (','), ea); 6887: } 6888: int mmm = ea >> 3; 6889: int rrr = ea & 7; 6890: if (mmm == XEiJ.MMM_AR) { 6891: return disMP (disMP (sb.append ("cmpm.w "), rrr).append (','), qqq); 6892: } 6893: return disIllegal (sb); 6894: } //disEorToMemWord(StringBuilder) 6895: 6896: //CMPM.L (Ar)+,(Aq)+ 012346|-|-UUUU|-****| |1011_qqq_110_001_rrr 6897: //EOR.L Dq,<ea> 012346|-|-UUUU|-**00|D M+-WXZ |1011_qqq_110_mmm_rrr 6898: public static StringBuilder disEorToMemLong (StringBuilder sb) { 6899: int qqq = disOC >> 9 & 7; 6900: int ea = disOC & 63; 6901: if (XEiJ.EAM_DLT << ea < 0L) { 6902: return disEal (disDR (sb.append ("eor.l "), qqq).append (','), ea); 6903: } 6904: int mmm = ea >> 3; 6905: int rrr = ea & 7; 6906: if (mmm == XEiJ.MMM_AR) { 6907: return disMP (disMP (sb.append ("cmpm.l "), rrr).append (','), qqq); 6908: } 6909: return disIllegal (sb); 6910: } //disEorToMemLong(StringBuilder) 6911: 6912: //AND.B <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_000_mmm_rrr 6913: public static StringBuilder disAndToRegByte (StringBuilder sb) { 6914: int qqq = disOC >> 9 & 7; 6915: int ea = disOC & 63; 6916: if (XEiJ.EAM_DAT << ea < 0L) { 6917: return disDR (disEab (sb.append ("and.b "), ea).append (','), qqq); 6918: } 6919: return disIllegal (sb); 6920: } //disAndToRegByte(StringBuilder) 6921: 6922: //AND.W <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_001_mmm_rrr 6923: public static StringBuilder disAndToRegWord (StringBuilder sb) { 6924: int qqq = disOC >> 9 & 7; 6925: int ea = disOC & 63; 6926: if (XEiJ.EAM_DAT << ea < 0L) { 6927: return disDR (disEaw (sb.append ("and.w "), ea).append (','), qqq); 6928: } 6929: return disIllegal (sb); 6930: } //disAndToRegWord(StringBuilder) 6931: 6932: //AND.L <ea>,Dq 012346|-|-UUUU|-**00|D M+-WXZPI|1100_qqq_010_mmm_rrr 6933: public static StringBuilder disAndToRegLong (StringBuilder sb) { 6934: int qqq = disOC >> 9 & 7; 6935: int ea = disOC & 63; 6936: if (XEiJ.EAM_DAT << ea < 0L) { 6937: return disDR (disEal (sb.append ("and.l "), ea).append (','), qqq); 6938: } 6939: return disIllegal (sb); 6940: } //disAndToRegLong(StringBuilder) 6941: 6942: //MULU.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1100_qqq_011_mmm_rrr 6943: public static StringBuilder disMuluWord (StringBuilder sb) { 6944: int qqq = disOC >> 9 & 7; 6945: int ea = disOC & 63; 6946: if (XEiJ.EAM_DAT << ea < 0L) { 6947: return disDR (disEaw (sb.append ("mulu.w "), ea).append (','), qqq); 6948: } 6949: return disIllegal (sb); 6950: } //disMuluWord(StringBuilder) 6951: 6952: //MULS.W <ea>,Dq 012346|-|-UUUU|-***0|D M+-WXZPI|1100_qqq_111_mmm_rrr 6953: public static StringBuilder disMulsWord (StringBuilder sb) { 6954: int qqq = disOC >> 9 & 7; 6955: int ea = disOC & 63; 6956: if (XEiJ.EAM_DAT << ea < 0L) { 6957: return disDR (disEaw (sb.append ("muls.w "), ea).append (','), qqq); 6958: } 6959: return disIllegal (sb); 6960: } //disMulsWord(StringBuilder) 6961: 6962: //ABCD.B Dr,Dq 012346|-|UUUUU|*U*U*| |1100_qqq_100_000_rrr 6963: //ABCD.B -(Ar),-(Aq) 012346|-|UUUUU|*U*U*| |1100_qqq_100_001_rrr 6964: //AND.B Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1100_qqq_100_mmm_rrr 6965: public static StringBuilder disAndToMemByte (StringBuilder sb) { 6966: int qqq = disOC >> 9 & 7; 6967: int ea = disOC & 63; 6968: if (XEiJ.EAM_MLT << ea < 0L) { 6969: return disEab (disDR (sb.append ("and.b "), qqq).append (','), ea); 6970: } 6971: int mmm = ea >> 3; 6972: int rrr = ea & 7; 6973: if (mmm == XEiJ.MMM_DR) { 6974: return disDR (disDR (sb.append ("abcd.b "), rrr).append (','), qqq); 6975: } 6976: if (mmm == XEiJ.MMM_AR) { 6977: return disMN (disMN (sb.append ("abcd.b "), rrr).append (','), qqq); 6978: } 6979: return disIllegal (sb); 6980: } //disAndToMemByte(StringBuilder) 6981: 6982: //EXG.L Dq,Dr 012346|-|-----|-----| |1100_qqq_101_000_rrr 6983: //EXG.L Aq,Ar 012346|-|-----|-----| |1100_qqq_101_001_rrr 6984: //AND.W Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1100_qqq_101_mmm_rrr 6985: public static StringBuilder disAndToMemWord (StringBuilder sb) { 6986: int qqq = disOC >> 9 & 7; 6987: int ea = disOC & 63; 6988: if (XEiJ.EAM_MLT << ea < 0L) { 6989: return disEaw (disDR (sb.append ("and.w "), qqq).append (','), ea); 6990: } 6991: int mmm = ea >> 3; 6992: int rrr = ea & 7; 6993: if (mmm == XEiJ.MMM_DR) { 6994: return disDR (disDR (sb.append ("exg.l "), qqq).append (','), rrr); 6995: } 6996: if (mmm == XEiJ.MMM_AR) { 6997: return disAR (disAR (sb.append ("exg.l "), qqq).append (','), rrr); 6998: } 6999: return disIllegal (sb); 7000: } //disAndToMemWord(StringBuilder) 7001: 7002: //EXG.L Dq,Ar 012346|-|-----|-----| |1100_qqq_110_001_rrr 7003: //AND.L Dq,<ea> 012346|-|-UUUU|-**00| M+-WXZ |1100_qqq_110_mmm_rrr 7004: public static StringBuilder disAndToMemLong (StringBuilder sb) { 7005: int qqq = disOC >> 9 & 7; 7006: int ea = disOC & 63; 7007: if (XEiJ.EAM_MLT << ea < 0L) { 7008: return disEal (disDR (sb.append ("and.l "), qqq).append (','), ea); 7009: } 7010: int mmm = ea >> 3; 7011: int rrr = ea & 7; 7012: if (mmm == XEiJ.MMM_AR) { 7013: return disAR (disDR (sb.append ("exg.l "), qqq).append (','), rrr); 7014: } 7015: return disIllegal (sb); 7016: } //disAndToMemLong(StringBuilder) 7017: 7018: //ADD.B <ea>,Dq 012346|-|UUUUU|*****|D M+-WXZPI|1101_qqq_000_mmm_rrr 7019: public static StringBuilder disAddToRegByte (StringBuilder sb) { 7020: int qqq = disOC >> 9 & 7; 7021: int ea = disOC & 63; 7022: if (XEiJ.EAM_DAT << ea < 0L) { 7023: return disDR (disEab (sb.append ("add.b "), ea).append (','), qqq); 7024: } 7025: return disIllegal (sb); 7026: } //disAddToRegByte(StringBuilder) 7027: 7028: //ADD.W <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1101_qqq_001_mmm_rrr 7029: public static StringBuilder disAddToRegWord (StringBuilder sb) { 7030: int qqq = disOC >> 9 & 7; 7031: int ea = disOC & 63; 7032: if (XEiJ.EAM_ALL << ea < 0L) { 7033: return disDR (disEaw (sb.append ("add.w "), ea).append (','), qqq); 7034: } 7035: return disIllegal (sb); 7036: } //disAddToRegWord(StringBuilder) 7037: 7038: //ADD.L <ea>,Dq 012346|-|UUUUU|*****|DAM+-WXZPI|1101_qqq_010_mmm_rrr 7039: public static StringBuilder disAddToRegLong (StringBuilder sb) { 7040: int qqq = disOC >> 9 & 7; 7041: int ea = disOC & 63; 7042: if (XEiJ.EAM_ALL << ea < 0L) { 7043: return disDR (disEal (sb.append ("add.l "), ea).append (','), qqq); 7044: } 7045: return disIllegal (sb); 7046: } //disAddToRegLong(StringBuilder) 7047: 7048: //ADDA.W <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1101_qqq_011_mmm_rrr 7049: public static StringBuilder disAddaWord (StringBuilder sb) { 7050: int ea = disOC & 63; 7051: int qqq = disOC >> 9 & 7; 7052: if (XEiJ.EAM_ALL << ea < 0L) { 7053: return disAR (disEaw (sb.append ("adda.w "), ea).append (','), qqq); 7054: } 7055: return disIllegal (sb); 7056: } //disAddaWord(StringBuilder) 7057: 7058: //ADDA.L <ea>,Aq 012346|-|-----|-----|DAM+-WXZPI|1101_qqq_111_mmm_rrr 7059: public static StringBuilder disAddaLong (StringBuilder sb) { 7060: int ea = disOC & 63; 7061: int qqq = disOC >> 9 & 7; 7062: if (XEiJ.EAM_ALL << ea < 0L) { 7063: return disAR (disEal (sb.append ("adda.l "), ea).append (','), qqq); 7064: } 7065: return disIllegal (sb); 7066: } //disAddaLong(StringBuilder) 7067: 7068: //ADDX.B Dr,Dq 012346|-|*UUUU|*****| |1101_qqq_100_000_rrr 7069: //ADDX.B -(Ar),-(Aq) 012346|-|*UUUU|*****| |1101_qqq_100_001_rrr 7070: //ADD.B Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1101_qqq_100_mmm_rrr 7071: public static StringBuilder disAddToMemByte (StringBuilder sb) { 7072: int qqq = disOC >> 9 & 7; 7073: int ea = disOC & 63; 7074: if (XEiJ.EAM_MLT << ea < 0L) { 7075: return disEab (disDR (sb.append ("add.b "), qqq).append (','), ea); 7076: } 7077: int mmm = ea >> 3; 7078: int rrr = ea & 7; 7079: if (mmm == XEiJ.MMM_DR) { 7080: return disDR (disDR (sb.append ("addx.b "), rrr).append (','), qqq); 7081: } 7082: if (mmm == XEiJ.MMM_AR) { 7083: return disMN (disMN (sb.append ("addx.b "), rrr).append (','), qqq); 7084: } 7085: return disIllegal (sb); 7086: } //disAddToMemByte(StringBuilder) 7087: 7088: //ADDX.W Dr,Dq 012346|-|*UUUU|*****| |1101_qqq_101_000_rrr 7089: //ADDX.W -(Ar),-(Aq) 012346|-|*UUUU|*****| |1101_qqq_101_001_rrr 7090: //ADD.W Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1101_qqq_101_mmm_rrr 7091: public static StringBuilder disAddToMemWord (StringBuilder sb) { 7092: int qqq = disOC >> 9 & 7; 7093: int ea = disOC & 63; 7094: if (XEiJ.EAM_MLT << ea < 0L) { 7095: return disEaw (disDR (sb.append ("add.w "), qqq).append (','), ea); 7096: } 7097: int mmm = ea >> 3; 7098: int rrr = ea & 7; 7099: if (mmm == XEiJ.MMM_DR) { 7100: return disDR (disDR (sb.append ("addx.w "), rrr).append (','), qqq); 7101: } 7102: if (mmm == XEiJ.MMM_AR) { 7103: return disMN (disMN (sb.append ("addx.w "), rrr).append (','), qqq); 7104: } 7105: return disIllegal (sb); 7106: } //disAddToMemWord(StringBuilder) 7107: 7108: //ADDX.L Dr,Dq 012346|-|*UUUU|*****| |1101_qqq_110_000_rrr 7109: //ADDX.L -(Ar),-(Aq) 012346|-|*UUUU|*****| |1101_qqq_110_001_rrr 7110: //ADD.L Dq,<ea> 012346|-|UUUUU|*****| M+-WXZ |1101_qqq_110_mmm_rrr 7111: public static StringBuilder disAddToMemLong (StringBuilder sb) { 7112: int qqq = disOC >> 9 & 7; 7113: int ea = disOC & 63; 7114: if (XEiJ.EAM_MLT << ea < 0L) { 7115: return disEal (disDR (sb.append ("add.l "), qqq).append (','), ea); 7116: } 7117: int mmm = ea >> 3; 7118: int rrr = ea & 7; 7119: if (mmm == XEiJ.MMM_DR) { 7120: return disDR (disDR (sb.append ("addx.l "), rrr).append (','), qqq); 7121: } 7122: if (mmm == XEiJ.MMM_AR) { 7123: return disMN (disMN (sb.append ("addx.l "), rrr).append (','), qqq); 7124: } 7125: return disIllegal (sb); 7126: } //disAddToMemLong(StringBuilder) 7127: 7128: public static final String[] DIS_XXR_BYTE = { "asr.b ", "lsr.b ", "roxr.b ", "ror.b " }; 7129: public static final String[] DIS_XXR_WORD = { "asr.w ", "lsr.w ", "roxr.w ", "ror.w " }; 7130: public static final String[] DIS_XXR_LONG = { "asr.l ", "lsr.l ", "roxr.l ", "ror.l " }; 7131: 7132: //ASR.B #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_000_rrr 7133: //LSR.B #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_001_rrr 7134: //ROXR.B #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_000_010_rrr 7135: //ROR.B #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_000_011_rrr 7136: //ASR.B Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_100_rrr 7137: //LSR.B Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_000_101_rrr 7138: //ROXR.B Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_000_110_rrr 7139: //ROR.B Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_000_111_rrr 7140: public static StringBuilder disXxrToRegByte (StringBuilder sb) { 7141: int qqq = disOC >> 9 & 7; 7142: sb.append (DIS_XXR_BYTE[disOC >> 3 & 3]); 7143: int rrr = disOC & 7; 7144: return ((disOC & 0b100_000) == 0 ? 7145: disDR (disIM3 (sb, qqq).append (','), rrr) : 7146: disDR (disDR (sb, qqq).append (','), rrr)); 7147: } //disXxrToRegByte(StringBuilder) 7148: 7149: //ASR.W #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_000_rrr 7150: //LSR.W #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_001_rrr 7151: //ROXR.W #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_001_010_rrr 7152: //ROR.W #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_001_011_rrr 7153: //ASR.W Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_100_rrr 7154: //LSR.W Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_001_101_rrr 7155: //ROXR.W Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_001_110_rrr 7156: //ROR.W Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_001_111_rrr 7157: public static StringBuilder disXxrToRegWord (StringBuilder sb) { 7158: int qqq = disOC >> 9 & 7; 7159: sb.append (DIS_XXR_WORD[disOC >> 3 & 3]); 7160: int rrr = disOC & 7; 7161: return ((disOC & 0b100_000) == 0 ? 7162: disDR (disIM3 (sb, qqq).append (','), rrr) : 7163: disDR (disDR (sb, qqq).append (','), rrr)); 7164: } //disXxrToRegWord(StringBuilder) 7165: 7166: //ASR.L #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_000_rrr 7167: //LSR.L #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_001_rrr 7168: //ROXR.L #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_010_010_rrr 7169: //ROR.L #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_010_011_rrr 7170: //ASR.L Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_100_rrr 7171: //LSR.L Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_010_101_rrr 7172: //ROXR.L Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_010_110_rrr 7173: //ROR.L Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_010_111_rrr 7174: public static StringBuilder disXxrToRegLong (StringBuilder sb) { 7175: int qqq = disOC >> 9 & 7; 7176: sb.append (DIS_XXR_LONG[disOC >> 3 & 3]); 7177: int rrr = disOC & 7; 7178: return ((disOC & 0b100_000) == 0 ? 7179: disDR (disIM3 (sb, qqq).append (','), rrr) : 7180: disDR (disDR (sb, qqq).append (','), rrr)); 7181: } //disXxrToRegLong(StringBuilder) 7182: 7183: //ASR.W <ea> 012346|-|UUUUU|***0*| M+-WXZ |1110_000_011_mmm_rrr 7184: public static StringBuilder disAsrToMem (StringBuilder sb) { 7185: int ea = disOC & 63; 7186: if (XEiJ.EAM_MLT << ea < 0L) { 7187: return disEaw (sb.append ("asr.w "), ea); 7188: } 7189: return disIllegal (sb); 7190: } //disAsrToMem(StringBuilder) 7191: 7192: //LSR.W <ea> 012346|-|UUUUU|*0*0*| M+-WXZ |1110_001_011_mmm_rrr 7193: public static StringBuilder disLsrToMem (StringBuilder sb) { 7194: int ea = disOC & 63; 7195: if (XEiJ.EAM_MLT << ea < 0L) { 7196: return disEaw (sb.append ("lsr.w "), ea); 7197: } 7198: return disIllegal (sb); 7199: } //disLsrToMem(StringBuilder) 7200: 7201: //ROXR.W <ea> 012346|-|*UUUU|***0*| M+-WXZ |1110_010_011_mmm_rrr 7202: public static StringBuilder disRoxrToMem (StringBuilder sb) { 7203: int ea = disOC & 63; 7204: if (XEiJ.EAM_MLT << ea < 0L) { 7205: return disEaw (sb.append ("roxr.w "), ea); 7206: } 7207: return disIllegal (sb); 7208: } //disRoxrToMem(StringBuilder) 7209: 7210: //ROR.W <ea> 012346|-|-UUUU|-**0*| M+-WXZ |1110_011_011_mmm_rrr 7211: public static StringBuilder disRorToMem (StringBuilder sb) { 7212: int ea = disOC & 63; 7213: if (XEiJ.EAM_MLT << ea < 0L) { 7214: return disEaw (sb.append ("ror.w "), ea); 7215: } 7216: return disIllegal (sb); 7217: } //disRorToMem(StringBuilder) 7218: 7219: public static final String[] DIS_XXL_BYTE = { "asl.b ", "lsl.b ", "roxl.b ", "rol.b " }; 7220: public static final String[] DIS_XXL_WORD = { "asl.w ", "lsl.w ", "roxl.w ", "rol.w " }; 7221: public static final String[] DIS_XXL_LONG = { "asl.l ", "lsl.l ", "roxl.l ", "rol.l " }; 7222: 7223: //ASL.B #<data>,Dr 012346|-|UUUUU|*****| |1110_qqq_100_000_rrr 7224: //LSL.B #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_100_001_rrr 7225: //ROXL.B #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_100_010_rrr 7226: //ROL.B #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_100_011_rrr 7227: //ASL.B Dq,Dr 012346|-|UUUUU|*****| |1110_qqq_100_100_rrr 7228: //LSL.B Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_100_101_rrr 7229: //ROXL.B Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_100_110_rrr 7230: //ROL.B Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_100_111_rrr 7231: public static StringBuilder disXxlToRegByte (StringBuilder sb) { 7232: int qqq = disOC >> 9 & 7; 7233: sb.append (DIS_XXL_BYTE[disOC >> 3 & 3]); 7234: int rrr = disOC & 7; 7235: return ((disOC & 0b100_000) == 0 ? 7236: disDR (disIM3 (sb, qqq).append (','), rrr) : 7237: disDR (disDR (sb, qqq).append (','), rrr)); 7238: } //disXxlToRegByte(StringBuilder) 7239: 7240: //ASL.W #<data>,Dr 012346|-|UUUUU|*****| |1110_qqq_101_000_rrr 7241: //LSL.W #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_101_001_rrr 7242: //ROXL.W #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_101_010_rrr 7243: //ROL.W #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_101_011_rrr 7244: //ASL.W Dq,Dr 012346|-|UUUUU|*****| |1110_qqq_101_100_rrr 7245: //LSL.W Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_101_101_rrr 7246: //ROXL.W Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_101_110_rrr 7247: //ROL.W Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_101_111_rrr 7248: public static StringBuilder disXxlToRegWord (StringBuilder sb) { 7249: int qqq = disOC >> 9 & 7; 7250: sb.append (DIS_XXL_WORD[disOC >> 3 & 3]); 7251: int rrr = disOC & 7; 7252: return ((disOC & 0b100_000) == 0 ? 7253: disDR (disIM3 (sb, qqq).append (','), rrr) : 7254: disDR (disDR (sb, qqq).append (','), rrr)); 7255: } //disXxlToRegWord(StringBuilder) 7256: 7257: //ASL.L #<data>,Dr 012346|-|UUUUU|*****| |1110_qqq_110_000_rrr 7258: //LSL.L #<data>,Dr 012346|-|UUUUU|***0*| |1110_qqq_110_001_rrr 7259: //ROXL.L #<data>,Dr 012346|-|*UUUU|***0*| |1110_qqq_110_010_rrr 7260: //ROL.L #<data>,Dr 012346|-|-UUUU|-**0*| |1110_qqq_110_011_rrr 7261: //ASL.L Dq,Dr 012346|-|UUUUU|*****| |1110_qqq_110_100_rrr 7262: //LSL.L Dq,Dr 012346|-|UUUUU|***0*| |1110_qqq_110_101_rrr 7263: //ROXL.L Dq,Dr 012346|-|*UUUU|***0*| |1110_qqq_110_110_rrr 7264: //ROL.L Dq,Dr 012346|-|-UUUU|-**0*| |1110_qqq_110_111_rrr 7265: public static StringBuilder disXxlToRegLong (StringBuilder sb) { 7266: int qqq = disOC >> 9 & 7; 7267: sb.append (DIS_XXL_LONG[disOC >> 3 & 3]); 7268: int rrr = disOC & 7; 7269: return ((disOC & 0b100_000) == 0 ? 7270: disDR (disIM3 (sb, qqq).append (','), rrr) : 7271: disDR (disDR (sb, qqq).append (','), rrr)); 7272: } //disXxlToRegLong(StringBuilder) 7273: 7274: //ASL.W <ea> 012346|-|UUUUU|*****| M+-WXZ |1110_000_111_mmm_rrr 7275: public static StringBuilder disAslToMem (StringBuilder sb) { 7276: int ea = disOC & 63; 7277: if (XEiJ.EAM_MLT << ea < 0L) { 7278: return disEaw (sb.append ("asl.w "), ea); 7279: } 7280: return disIllegal (sb); 7281: } //disAslToMem(StringBuilder) 7282: 7283: //LSL.W <ea> 012346|-|UUUUU|***0*| M+-WXZ |1110_001_111_mmm_rrr 7284: public static StringBuilder disLslToMem (StringBuilder sb) { 7285: int ea = disOC & 63; 7286: if (XEiJ.EAM_MLT << ea < 0L) { 7287: return disEaw (sb.append ("lsl.w "), ea); 7288: } 7289: return disIllegal (sb); 7290: } //disLslToMem(StringBuilder) 7291: 7292: //ROXL.W <ea> 012346|-|*UUUU|***0*| M+-WXZ |1110_010_111_mmm_rrr 7293: public static StringBuilder disRoxlToMem (StringBuilder sb) { 7294: int ea = disOC & 63; 7295: if (XEiJ.EAM_MLT << ea < 0L) { 7296: return disEaw (sb.append ("roxl.w "), ea); 7297: } 7298: return disIllegal (sb); 7299: } //disRoxlToMem(StringBuilder) 7300: 7301: //ROL.W <ea> 012346|-|-UUUU|-**0*| M+-WXZ |1110_011_111_mmm_rrr 7302: public static StringBuilder disRolToMem (StringBuilder sb) { 7303: int ea = disOC & 63; 7304: if (XEiJ.EAM_MLT << ea < 0L) { 7305: return disEaw (sb.append ("rol.w "), ea); 7306: } 7307: return disIllegal (sb); 7308: } //disRolToMem(StringBuilder) 7309: 7310: //BFTST <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_0oo_ooo_0ww_www 7311: //BFTST <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_0oo_ooo_100_www 7312: //BFTST <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_100_ooo_0ww_www 7313: //BFTST <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZP |1110_100_011_mmm_rrr-0000_100_ooo_100_www 7314: public static StringBuilder disBftst (StringBuilder sb) { 7315: int ea = disOC & 63; 7316: if (XEiJ.EAM_DCN << ea < 0L) { 7317: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7318: return disBF (disEab (sb.append ("bftst "), ea), w); 7319: } 7320: return disIllegal (sb); 7321: } //disBftst(StringBuilder) 7322: 7323: //BFEXTU <ea>{#o:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 7324: //BFEXTU <ea>{#o:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_0oo_ooo_100_www 7325: //BFEXTU <ea>{Do:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_100_ooo_0ww_www 7326: //BFEXTU <ea>{Do:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_100_111_mmm_rrr-0nnn_100_ooo_100_www 7327: public static StringBuilder disBfextu (StringBuilder sb) { 7328: int ea = disOC & 63; 7329: if (XEiJ.EAM_DCN << ea < 0L) { 7330: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7331: return disDR (disBF (disEab (sb.append ("bfextu "), ea), w).append (','), w >> 12 & 7); 7332: } 7333: return disIllegal (sb); 7334: } //disBfextu(StringBuilder) 7335: 7336: //BFCHG <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_0oo_ooo_0ww_www 7337: //BFCHG <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_0oo_ooo_100_www 7338: //BFCHG <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_100_ooo_0ww_www 7339: //BFCHG <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_101_011_mmm_rrr-0000_100_ooo_100_www 7340: public static StringBuilder disBfchg (StringBuilder sb) { 7341: int ea = disOC & 63; 7342: if (XEiJ.EAM_DCL << ea < 0L) { 7343: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7344: return disBF (disEab (sb.append ("bfchg "), ea), w); 7345: } 7346: return disIllegal (sb); 7347: } //disBfchg(StringBuilder) 7348: 7349: //BFEXTS <ea>{#o:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 7350: //BFEXTS <ea>{#o:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_0oo_ooo_100_www 7351: //BFEXTS <ea>{Do:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_100_ooo_0ww_www 7352: //BFEXTS <ea>{Do:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_101_111_mmm_rrr-0nnn_100_ooo_100_www 7353: public static StringBuilder disBfexts (StringBuilder sb) { 7354: int ea = disOC & 63; 7355: if (XEiJ.EAM_DCN << ea < 0L) { 7356: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7357: return disDR (disBF (disEab (sb.append ("bfexts "), ea), w).append (','), w >> 12 & 7); 7358: } 7359: return disIllegal (sb); 7360: } //disBfexts(StringBuilder) 7361: 7362: //BFCLR <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_0oo_ooo_0ww_www 7363: //BFCLR <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_0oo_ooo_100_www 7364: //BFCLR <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_100_ooo_0ww_www 7365: //BFCLR <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_110_011_mmm_rrr-0000_100_ooo_100_www 7366: public static StringBuilder disBfclr (StringBuilder sb) { 7367: int ea = disOC & 63; 7368: if (XEiJ.EAM_DCL << ea < 0L) { 7369: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7370: return disBF (disEab (sb.append ("bfclr "), ea), w); 7371: } 7372: return disIllegal (sb); 7373: } //disBfclr(StringBuilder) 7374: 7375: //BFFFO <ea>{#o:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 7376: //BFFFO <ea>{#o:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_0oo_ooo_100_www 7377: //BFFFO <ea>{Do:#w},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_100_ooo_0ww_www 7378: //BFFFO <ea>{Do:Dw},Dn --2346|-|-UUUU|-**00|D M WXZP |1110_110_111_mmm_rrr-0nnn_100_ooo_100_www 7379: public static StringBuilder disBfffo (StringBuilder sb) { 7380: int ea = disOC & 63; 7381: if (XEiJ.EAM_DCN << ea < 0L) { 7382: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7383: return disDR (disBF (disEab (sb.append ("bfffo "), ea), w).append (','), w >> 12 & 7); 7384: } 7385: return disIllegal (sb); 7386: } //disBfffo(StringBuilder) 7387: 7388: //BFSET <ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_0oo_ooo_0ww_www 7389: //BFSET <ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_0oo_ooo_100_www 7390: //BFSET <ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_100_ooo_0ww_www 7391: //BFSET <ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_011_mmm_rrr-0000_100_ooo_100_www 7392: public static StringBuilder disBfset (StringBuilder sb) { 7393: int ea = disOC & 63; 7394: if (XEiJ.EAM_DCL << ea < 0L) { 7395: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7396: return disBF (disEab (sb.append ("bfset "), ea), w); 7397: } 7398: return disIllegal (sb); 7399: } //disBfset(StringBuilder) 7400: 7401: //BFINS Dn,<ea>{#o:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_0oo_ooo_0ww_www 7402: //BFINS Dn,<ea>{#o:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_0oo_ooo_100_www 7403: //BFINS Dn,<ea>{Do:#w} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_100_ooo_0ww_www 7404: //BFINS Dn,<ea>{Do:Dw} --2346|-|-UUUU|-**00|D M WXZ |1110_111_111_mmm_rrr-0nnn_100_ooo_100_www 7405: public static StringBuilder disBfins (StringBuilder sb) { 7406: int ea = disOC & 63; 7407: if (XEiJ.EAM_DCL << ea < 0L) { 7408: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); 7409: return disBF (disEab (disDR (sb.append ("bfins "), w >> 12 & 7).append (','), ea), w); 7410: } 7411: return disIllegal (sb); 7412: } //disBfins(StringBuilder) 7413: 7414: //PMOVE.L <ea>,TTn ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00001n0000000000 7415: //PMOVEFD.L <ea>,TTn ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00001n0100000000 7416: //PMOVE.L TTn,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00001n1000000000 7417: //PLOADW SFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000000000 7418: //PLOADW DFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000000001 7419: //PLOADW Dn,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000001nnn 7420: //PLOADW #<data>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010000000010ddd 7421: //PLOADW #<data>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-001000000001dddd 7422: //PLOADR SFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000000000 7423: //PLOADR DFC,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000000001 7424: //PLOADR Dn,<ea> --M3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000001nnn 7425: //PLOADR #<data>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010001000010ddd 7426: //PLOADR #<data>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-001000100001dddd 7427: //PFLUSHA --M---|P|-----|-----| |1111_000_000_000_000-0010010000000000 7428: //PFLUSHA ---3--|P|-----|-----| |1111_000_000_000_000-0010010000000000 7429: //PVALID.L VAL,<ea> --M---|-|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010100000000000 7430: //PVALID.L An,<ea> --M---|-|-----|-----| M WXZ |1111_000_000_mmm_rrr-0010110000000nnn 7431: //PFLUSH SFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm00000 7432: //PFLUSH SFC,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm00000 7433: //PFLUSH DFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm00001 7434: //PFLUSH DFC,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm00001 7435: //PFLUSH Dn,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm01nnn 7436: //PFLUSH Dn,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm01nnn 7437: //PFLUSH #<data>,#<mask> ---3--|P|-----|-----| |1111_000_000_000_000-00110000mmm10ddd 7438: //PFLUSH #<data>,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011000mmmm1dddd 7439: //PFLUSHS SFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm00000 7440: //PFLUSHS DFC,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm00001 7441: //PFLUSHS Dn,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm01nnn 7442: //PFLUSHS #<data>,#<mask> --M---|P|-----|-----| |1111_000_000_000_000-0011010mmmm1dddd 7443: //PFLUSH SFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm00000 7444: //PFLUSH SFC,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm00000 7445: //PFLUSH DFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm00001 7446: //PFLUSH DFC,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm00001 7447: //PFLUSH Dn,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm01nnn 7448: //PFLUSH #<data>,#<mask>,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-00111000mmm10ddd 7449: //PFLUSH Dn,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm01nnn 7450: //PFLUSH #<data>,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011100mmmm1dddd 7451: //PFLUSHS SFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm00000 7452: //PFLUSHS DFC,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm00001 7453: //PFLUSHS Dn,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm01nnn 7454: //PFLUSHS #<data>,#<mask>,<ea> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0011110mmmm1dddd 7455: //PMOVE.L <ea>,TC ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100000000000000 7456: //PMOVE.L <ea>,TC --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0100000000000000 7457: //PMOVEFD.L <ea>,TC ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100000100000000 7458: //PMOVE.L TC,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100001000000000 7459: //PMOVE.L TC,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0100001000000000 7460: //PMOVE.Q <ea>,DRP --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-0100010000000000 7461: //PMOVE.Q DRP,<ea> --M---|P|-----|-----| M+-WXZ |1111_000_000_mmm_rrr-0100011000000000 7462: //PMOVE.Q <ea>,SRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100100000000000 7463: //PMOVE.Q <ea>,SRP --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-0100100000000000 7464: //PMOVEFD.Q <ea>,SRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100100100000000 7465: //PMOVE.Q SRP,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100101000000000 7466: //PMOVE.Q SRP,<ea> --M---|P|-----|-----| M+-WXZ |1111_000_000_mmm_rrr-0100101000000000 7467: //PMOVE.Q <ea>,CRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100110000000000 7468: //PMOVE.Q <ea>,CRP --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-0100110000000000 7469: //PMOVEFD.Q <ea>,CRP ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100110100000000 7470: //PMOVE.Q CRP,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0100111000000000 7471: //PMOVE.Q CRP,<ea> --M---|P|-----|-----| M+-WXZ |1111_000_000_mmm_rrr-0100111000000000 7472: //PMOVE.B <ea>,CAL --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101000000000000 7473: //PMOVE.B CAL,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101001000000000 7474: //PMOVE.B <ea>,VAL --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101010000000000 7475: //PMOVE.B VAL,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101011000000000 7476: //PMOVE.B <ea>,SCC --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101100000000000 7477: //PMOVE.B SCC,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101101000000000 7478: //PMOVE.W <ea>,AC --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0101110000000000 7479: //PMOVE.W AC,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0101111000000000 7480: //PMOVE.W <ea>,MMUSR ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0110000000000000 7481: //PMOVE.W <ea>,PSR --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0110000000000000 7482: //PMOVE.W MMUSR,<ea> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-0110001000000000 7483: //PMOVE.W PSR,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0110001000000000 7484: //PMOVE.W <ea>,PCSR --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-0110010000000000 7485: //PMOVE.W PCSR,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-0110011000000000 7486: //PMOVE.W <ea>,BADn --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-01110000000nnn00 7487: //PMOVE.W BADn,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-01110010000nnn00 7488: //PMOVE.W <ea>,BACn --M---|P|-----|-----|DAM+-WXZPI|1111_000_000_mmm_rrr-01110100000nnn00 7489: //PMOVE.W BACn,<ea> --M---|P|-----|-----|DAM+-WXZ |1111_000_000_mmm_rrr-01110110000nnn00 7490: //PTESTW SFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000000 7491: //PTESTW SFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000000 7492: //PTESTW DFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000001 7493: //PTESTW DFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000000001 7494: //PTESTW Dn,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000001nnn 7495: //PTESTW Dn,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000001nnn 7496: //PTESTW #<data>,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll000001dddd 7497: //PTESTW #<data>,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll0000010ddd 7498: //PTESTW SFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00000 7499: //PTESTW SFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00000 7500: //PTESTW DFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00001 7501: //PTESTW DFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn00001 7502: //PTESTW Dn,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn01nnn 7503: //PTESTW Dn,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn01nnn 7504: //PTESTW #<data>,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn1dddd 7505: //PTESTW #<data>,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll01nnn10ddd 7506: //PTESTR SFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000000 7507: //PTESTR SFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000000 7508: //PTESTR DFC,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000001 7509: //PTESTR DFC,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000000001 7510: //PTESTR Dn,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000001nnn 7511: //PTESTR Dn,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000001nnn 7512: //PTESTR #<data>,<ea>,#<level> --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll100001dddd 7513: //PTESTR #<data>,<ea>,#<level> ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll1000010ddd 7514: //PTESTR SFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00000 7515: //PTESTR SFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00000 7516: //PTESTR DFC,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00001 7517: //PTESTR DFC,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn00001 7518: //PTESTR Dn,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn01nnn 7519: //PTESTR Dn,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn01nnn 7520: //PTESTR #<data>,<ea>,#<level>,An --M---|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn1dddd 7521: //PTESTR #<data>,<ea>,#<level>,An ---3--|P|-----|-----| M WXZ |1111_000_000_mmm_rrr-100lll11nnn10ddd 7522: //PFLUSHR <ea> --M---|P|-----|-----| M+-WXZPI|1111_000_000_mmm_rrr-1010000000000000 7523: public static StringBuilder disPgen (StringBuilder sb) { 7524: //!!! 7525: return disIllegal (sb); 7526: } //disPgen(StringBuilder) 7527: 7528: public static final String[] DIS_MM_CC = ( 7529: "bs," + //000000 7530: "bc," + //000001 7531: "ls," + //000010 7532: "lc," + //000011 7533: "ss," + //000100 7534: "sc," + //000101 7535: "as," + //000110 7536: "ac," + //000111 7537: "ws," + //001000 7538: "wc," + //001001 7539: "is," + //001010 7540: "ic," + //001011 7541: "gs," + //001100 7542: "gc," + //001101 7543: "cs," + //001110 7544: "cc" //001111 7545: ).split (","); 7546: 7547: //PDBcc.W Dn,<label> --M---|P|-----|-----| |1111_000_001_001_nnn-0000000000cccccc-{offset} 7548: //PTRAPcc.W #<data> --M---|P|-----|-----| |1111_000_001_111_010-0000000000cccccc-{data} 7549: //PTRAPcc.L #<data> --M---|P|-----|-----| |1111_000_001_111_011-0000000000cccccc-{data} 7550: //PTRAPcc --M---|P|-----|-----| |1111_000_001_111_100-0000000000cccccc 7551: //PScc.B <ea> --M---|P|-----|-----|D M+-WXZ |1111_000_001_mmm_rrr-0000000000cccccc 7552: public static StringBuilder disPscc (StringBuilder sb) { 7553: int c = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor) & 63; 7554: if (c < DIS_MM_CC.length) { 7555: int ea = disOC & 63; 7556: if (ea >> 3 == XEiJ.MMM_AR) { 7557: disStatus = DIS_SOMETIMES_BRANCH; 7558: return disOW (disDR (disOp3 (sb, "pdb", DIS_MM_CC[c], ".w"), disOC & 7).append (',')); //FDBccはUnsized、PDBccはWordらしい 7559: } 7560: if (ea == XEiJ.EA_PW) { 7561: return disIMw (disOp3 (sb, "ptrap", DIS_MM_CC[c], ".w")); 7562: } 7563: if (ea == XEiJ.EA_PX) { 7564: return disIMl (disOp3 (sb, "ptrap", DIS_MM_CC[c], ".l")); 7565: } 7566: if (ea == XEiJ.EA_IM) { 7567: return sb.append ("ptrap").append (DIS_MM_CC[c]); 7568: } 7569: if (XEiJ.EAM_DAT << ea < 0L) { 7570: return disEab (disOp3 (sb, "ps", DIS_MM_CC[c], ".b"), ea); 7571: } 7572: } 7573: return disIllegal (sb); 7574: } //disPscc(StringBuilder) 7575: 7576: //PBcc.W <label> --M---|P|-----|-----| |1111_000_010_ccc_ccc-{offset} 7577: public static StringBuilder disPbccWord (StringBuilder sb) { 7578: int c = disOC & 63; 7579: if (c < DIS_MM_CC.length) { 7580: disStatus = DIS_SOMETIMES_BRANCH; 7581: return disOW (disOp3 (sb, "pb", DIS_MM_CC[c], ".w")); 7582: } 7583: return disIllegal (sb); 7584: } //disPbccWord(StringBuilder) 7585: 7586: //PBcc.L <label> --M---|P|-----|-----| |1111_000_011_ccc_ccc-{offset} 7587: public static StringBuilder disPbccLong (StringBuilder sb) { 7588: int c = disOC & 63; 7589: if (c < DIS_MM_CC.length) { 7590: disStatus = DIS_SOMETIMES_BRANCH; 7591: return disOL (disOp3 (sb, "pb", DIS_MM_CC[c], ".l")); 7592: } 7593: return disIllegal (sb); 7594: } //disPbccLong(StringBuilder) 7595: 7596: //PSAVE <ea> --M---|P|-----|-----| M -WXZ |1111_000_100_mmm_rrr 7597: public static StringBuilder disPsave (StringBuilder sb) { 7598: int ea = disOC & 63; 7599: if (XEiJ.EAM_WTL << ea < 0L) { 7600: return disEaz (sb.append ("psave "), ea); 7601: } 7602: return disIllegal (sb); 7603: } //disPsave(StringBuilder) 7604: 7605: //PRESTORE <ea> --M---|P|-----|-----| M+ WXZP |1111_000_101_mmm_rrr 7606: public static StringBuilder disPrestore (StringBuilder sb) { 7607: int ea = disOC & 63; 7608: if (XEiJ.EAM_RDL << ea < 0L) { 7609: return disEaz (sb.append ("prestore "), ea); 7610: } 7611: return disIllegal (sb); 7612: } //disPrestore(StringBuilder) 7613: 7614: //CINVL NC,(An) ----46|P|-----|-----| |1111_010_000_001_nnn 7615: //CINVP NC,(An) ----46|P|-----|-----| |1111_010_000_010_nnn 7616: //CINVA NC ----46|P|-----|-----| |1111_010_000_011_000 7617: //CPUSHL NC,(An) ----46|P|-----|-----| |1111_010_000_101_nnn 7618: //INTOUCH (An) ------|P|-----|-----| |1111_010_000_101_nnn (ISA_B) 7619: //CPUSHP NC,(An) ----46|P|-----|-----| |1111_010_000_110_nnn 7620: //CPUSHA NC ----46|P|-----|-----| |1111_010_000_111_000 7621: //CINVL DC,(An) ----46|P|-----|-----| |1111_010_001_001_nnn 7622: //CINVP DC,(An) ----46|P|-----|-----| |1111_010_001_010_nnn 7623: //CINVA DC ----46|P|-----|-----| |1111_010_001_011_000 7624: //CPUSHL DC,(An) ----46|P|-----|-----| |1111_010_001_101_nnn 7625: //CPUSHP DC,(An) ----46|P|-----|-----| |1111_010_001_110_nnn 7626: //CPUSHA DC ----46|P|-----|-----| |1111_010_001_111_000 7627: //CINVL IC,(An) ----46|P|-----|-----| |1111_010_010_001_nnn 7628: //CINVP IC,(An) ----46|P|-----|-----| |1111_010_010_010_nnn 7629: //CINVA IC ----46|P|-----|-----| |1111_010_010_011_000 7630: //CPUSHL IC,(An) ----46|P|-----|-----| |1111_010_010_101_nnn 7631: //CPUSHP IC,(An) ----46|P|-----|-----| |1111_010_010_110_nnn 7632: //CPUSHA IC ----46|P|-----|-----| |1111_010_010_111_000 7633: //CINVL BC,(An) ----46|P|-----|-----| |1111_010_011_001_nnn 7634: //CINVP BC,(An) ----46|P|-----|-----| |1111_010_011_010_nnn 7635: //CINVA BC ----46|P|-----|-----| |1111_010_011_011_000 7636: //CPUSHL BC,(An) ----46|P|-----|-----| |1111_010_011_101_nnn 7637: //CPUSHP BC,(An) ----46|P|-----|-----| |1111_010_011_110_nnn 7638: //CPUSHA BC ----46|P|-----|-----| |1111_010_011_111_000 7639: public static StringBuilder disCinvCpush (StringBuilder sb) { 7640: int mmm = disOC >> 3 & 7; 7641: if ((disOC & 0b011_000) != 0) { 7642: sb.append ('c').append ((disOC & 0b100_000) == 0 ? "inv" : "push"). 7643: append ((char) (('a' << 24 | 'p' << 16 | 'l' << 8) >> (disOC & 0b011_000) & 255)). 7644: append ((disOC & 0b100_000) == 0 ? " " : " "). 7645: append ((char) (('b' << 24 | 'i' << 16 | 'd' << 8 | 'n') >> ((disOC & 0b011_000_000) >> 3) & 255)).append ('c'); 7646: if ((disOC & 0b011_000) != 0b011_000) { 7647: sb.append (",(a").append ((char) ('0' + (disOC & 7))).append (')'); 7648: } 7649: return sb; 7650: } 7651: return disIllegal (sb); 7652: } //disCinvCpush(StringBuilder) 7653: 7654: //PFLUSHN (An) ----46|P|-----|-----| |1111_010_100_000_nnn 7655: //PFLUSH (An) ----46|P|-----|-----| |1111_010_100_001_nnn 7656: //PFLUSHAN ----46|P|-----|-----| |1111_010_100_010_000 7657: //PFLUSHA ----46|P|-----|-----| |1111_010_100_011_000 7658: public static StringBuilder disPflush (StringBuilder sb) { 7659: int an = disOC >> 3 & 7; 7660: if (an <= 3) { 7661: sb.append (an == 0 ? "pflushn " : an == 1 ? "pflush " : an == 2 ? "pflushan " : "pflusha"); 7662: if (an <= 1) { 7663: sb.append ("(a").append ((char) ('0' + (disOC & 7))).append (')'); 7664: } 7665: return sb; 7666: } 7667: return disIllegal (sb); 7668: } //disPflush(StringBuilder) 7669: 7670: //PTESTW (An) ----4-|P|-----|-----| |1111_010_101_001_nnn 7671: //PTESTR (An) ----4-|P|-----|-----| |1111_010_101_101_nnn 7672: public static StringBuilder disPtest (StringBuilder sb) { 7673: int wr = disOC >> 3 & 7; 7674: if ((wr & 3) == 1) { 7675: return sb.append (wr == 1 ? "ptestw (a" : "ptestr (a").append ((char) ('0' + (disOC & 7))).append (')'); 7676: } 7677: return disIllegal (sb); 7678: } //disPtest(StringBuilder) 7679: 7680: //PLPAW (An) -----6|P|-----|-----| |1111_010_110_001_nnn 7681: public static StringBuilder disPlpaw (StringBuilder sb) { 7682: return sb.append ("plpaw (a").append ((char) ('0' + (disOC & 7))).append (')'); 7683: } //disPlpaw(StringBuilder) 7684: 7685: //PLPAR (An) -----6|P|-----|-----| |1111_010_111_001_nnn 7686: public static StringBuilder disPlpar (StringBuilder sb) { 7687: return sb.append ("plpar (a").append ((char) ('0' + (disOC & 7))).append (')'); 7688: } //disPlpar(StringBuilder) 7689: 7690: //MOVE16 (An)+,xxx.L ----46|-|-----|-----| |1111_011_000_000_nnn-{address} 7691: //MOVE16 xxx.L,(An)+ ----46|-|-----|-----| |1111_011_000_001_nnn-{address} 7692: //MOVE16 (An),xxx.L ----46|-|-----|-----| |1111_011_000_010_nnn-{address} 7693: //MOVE16 xxx.L,(An) ----46|-|-----|-----| |1111_011_000_011_nnn-{address} 7694: //MOVE16 (Ax)+,(Ay)+ ----46|-|-----|-----| |1111_011_000_100_xxx-1yyy000000000000 7695: public static StringBuilder disMove16 (StringBuilder sb) { 7696: switch (disOC >> 3 & 7) { 7697: case 0: 7698: return disZL (sb.append ("move16 (a").append ((char) ('0' + (disOC & 7))).append (")+,")); 7699: case 1: 7700: return disZL (sb.append ("move16 ")).append (",(a").append ((char) ('0' + (disOC & 7))).append (")+"); 7701: case 2: 7702: return disZL (sb.append ("move16 (a").append ((char) ('0' + (disOC & 7))).append ("),")); 7703: case 3: 7704: return disZL (sb.append ("move16 ")).append (",(a").append ((char) ('0' + (disOC & 7))).append (')'); 7705: case 4: 7706: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 7707: if ((w & 0b1000111111111111) == 0b1000000000000000) { 7708: return sb.append ("move16 (a").append ((char) ('0' + (disOC & 7))).append (")+,(a").append ((char) ('0' + (w >> 12 & 7))).append (")+"); 7709: } 7710: } 7711: return disIllegal (sb); 7712: } //disMove16(StringBuilder) 7713: 7714: //LPSTOP.W #<data> -----6|P|-----|-----| |1111_100_000_000_000-0000000111000000-{data} 7715: public static StringBuilder disLpstop (StringBuilder sb) { 7716: if (disOC == 0xf800) { 7717: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 7718: if (w == 0x01c0) { 7719: return disIMw (sb.append ("lpstop.w ")); 7720: } 7721: } 7722: return disIllegal (sb); 7723: } //disLpstop(StringBuilder) 7724: 7725: //WDDATA.B <ea> ------|-|-----|-----| M+-WXZ |1111_101_100_mmm_rrr (ISA_A) 7726: public static StringBuilder disWddataByte (StringBuilder sb) { 7727: int ea = disOC & 63; 7728: if (XEiJ.EAM_MLT << ea < 0L) { 7729: return disEab (sb.append ("wddata.b "), ea); 7730: } 7731: return disIllegal (sb); 7732: } //disWddataByte(StringBuilder) 7733: 7734: //WDDATA.W <ea> ------|-|-----|-----| M+-WXZ |1111_101_101_mmm_rrr (ISA_A) 7735: public static StringBuilder disWddataWord (StringBuilder sb) { 7736: int ea = disOC & 63; 7737: if (XEiJ.EAM_MLT << ea < 0L) { 7738: return disEaw (sb.append ("wddata.w "), ea); 7739: } 7740: return disIllegal (sb); 7741: } //disWddataWord(StringBuilder) 7742: 7743: //WDDATA.L <ea> ------|-|-----|-----| M+-WXZ |1111_101_110_mmm_rrr (ISA_A) 7744: public static StringBuilder disWddataLong (StringBuilder sb) { 7745: int ea = disOC & 63; 7746: if (XEiJ.EAM_MLT << ea < 0L) { 7747: return disEal (sb.append ("wddata.l "), ea); 7748: } 7749: return disIllegal (sb); 7750: } //disWddataLong(StringBuilder) 7751: 7752: //WDEBUG.L <ea> ------|P|-----|-----| M W |1111_101_111_mmm_rrr-0000000000000011 (ISA_A) 7753: public static StringBuilder disWdebug (StringBuilder sb) { 7754: int ea = disOC & 63; 7755: if (ea == XEiJ.EA_MM || ea == XEiJ.EA_MW) { 7756: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 7757: if (w == 3) { 7758: return disEal (sb.append ("wdebug.l "), ea); 7759: } 7760: } 7761: return disIllegal (sb); 7762: } //disWdebug(StringBuilder) 7763: 7764: //FPACK <name> 012346|-|-----|-----| |1111_111_0xx_xxx_xxx 7765: public static StringBuilder disFpack (StringBuilder sb) { 7766: String name = DIS_FPACK_NAME[disOC & 255]; 7767: if (name.length () != 0) { 7768: return sb.append ("FPACK ").append (name); 7769: } 7770: return disFline (sb); 7771: } //disFpack(StringBuilder) 7772: 7773: //DOS <name> 012346|-|-----|-----| |1111_111_1xx_xxx_xxx 7774: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 7775: public static StringBuilder disDos (StringBuilder sb) { 7776: if (disOC == 0xff00 || disOC == 0xff4c) { //_EXIT,_EXIT2 7777: disStatus = DIS_ALWAYS_BRANCH; 7778: } 7779: String name = DIS_DOS_NAME[disOC & 255]; 7780: if (name.length () != 0) { 7781: return sb.append ("DOS ").append (name); 7782: } 7783: return disFline (sb); 7784: } //disDos(StringBuilder) 7785: 7786: //line 1111 emulator 012346|-|-----|-----| |1111_xxx_xxx_xxx_xxx 7787: public static StringBuilder disFline (StringBuilder sb) { 7788: return disHex4 (sb.append (".dc.w "), disOC); 7789: } //disFline(StringBuilder) 7790: 7791: public static final String[] DIS_FP_SZ = { ".l", ".s", ".x", ".p", ".w", ".d", ".b", ".p" }; 7792: 7793: public static final String[] DIS_FP_FGEN = ( 7794: "fmove," + //000_0000 7795: "fint," + //000_0001 7796: "fsinh," + //000_0010 7797: "fintrz," + //000_0011 7798: "fsqrt," + //000_0100 7799: "," + //000_0101 7800: "flognp1," + //000_0110 7801: "," + //000_0111 7802: "fetoxm1," + //000_1000 7803: "ftanh," + //000_1001 7804: "fatan," + //000_1010 7805: "," + //000_1011 7806: "fasin," + //000_1100 7807: "fatanh," + //000_1101 7808: "fsin," + //000_1110 7809: "ftan," + //000_1111 7810: "fetox," + //001_0000 7811: "ftwotox," + //001_0001 7812: "ftentox," + //001_0010 7813: "," + //001_0011 7814: "flogn," + //001_0100 7815: "flog10," + //001_0101 7816: "flog2," + //001_0110 7817: "," + //001_0111 7818: "fabs," + //001_1000 7819: "fcosh," + //001_1001 7820: "fneg," + //001_1010 7821: "," + //001_1011 7822: "facos," + //001_1100 7823: "fcos," + //001_1101 7824: "fgetexp," + //001_1110 7825: "fgetman," + //001_1111 7826: "fdiv," + //010_0000 7827: "fmod," + //010_0001 7828: "fadd," + //010_0010 7829: "fmul," + //010_0011 7830: "fsgldiv," + //010_0100 7831: "frem," + //010_0101 7832: "fscale," + //010_0110 7833: "fsglmul," + //010_0111 7834: "fsub," + //010_1000 7835: "," + //010_1001 7836: "," + //010_1010 7837: "," + //010_1011 7838: "," + //010_1100 7839: "," + //010_1101 7840: "," + //010_1110 7841: "," + //010_1111 7842: "fsincos," + //011_0000 7843: "fsincos," + //011_0001 7844: "fsincos," + //011_0010 7845: "fsincos," + //011_0011 7846: "fsincos," + //011_0100 7847: "fsincos," + //011_0101 7848: "fsincos," + //011_0110 7849: "fsincos," + //011_0111 7850: "fcmp," + //011_1000 7851: "," + //011_1001 7852: "ftst," + //011_1010 7853: "," + //011_1011 7854: "," + //011_1100 7855: "," + //011_1101 7856: "," + //011_1110 7857: "," + //011_1111 7858: "fsmove," + //100_0000 7859: "fssqrt," + //100_0001 7860: "," + //100_0010 7861: "," + //100_0011 7862: "fdmove," + //100_0100 7863: "fdsqrt," + //100_0101 7864: "," + //100_0110 7865: "," + //100_0111 7866: "," + //100_1000 7867: "," + //100_1001 7868: "," + //100_1010 7869: "," + //100_1011 7870: "," + //100_1100 7871: "," + //100_1101 7872: "," + //100_1110 7873: "," + //100_1111 7874: "," + //101_0000 7875: "," + //101_0001 7876: "," + //101_0010 7877: "," + //101_0011 7878: "," + //101_0100 7879: "," + //101_0101 7880: "," + //101_0110 7881: "," + //101_0111 7882: "fsabs," + //101_1000 7883: "," + //101_1001 7884: "fsneg," + //101_1010 7885: "," + //101_1011 7886: "fdabs," + //101_1100 7887: "," + //101_1101 7888: "fdneg," + //101_1110 7889: "," + //101_1111 7890: "fsdiv," + //110_0000 7891: "," + //110_0001 7892: "fsadd," + //110_0010 7893: "fsmul," + //110_0011 7894: "fddiv," + //110_0100 7895: "," + //110_0101 7896: "fdadd," + //110_0110 7897: "fdmul," + //110_0111 7898: "fssub," + //110_1000 7899: "," + //110_1001 7900: "," + //110_1010 7901: "," + //110_1011 7902: "fdsub," + //110_1100 7903: "," + //110_1101 7904: "," + //110_1110 7905: "," + //110_1111 7906: "flgamma," + //111_0000 (EFPBox.EPB_EXTRA_OPERATION ? "flgamma," : ",") + 7907: "ftgamma," + //111_0001 (EFPBox.EPB_EXTRA_OPERATION ? "ftgamma," : ",") + 7908: "," + //111_0010 7909: "," + //111_0011 7910: "," + //111_0100 7911: "," + //111_0101 7912: "," + //111_0110 7913: "," + //111_0111 7914: "," + //111_1000 7915: "," + //111_1001 7916: "," + //111_1010 7917: "," + //111_1011 7918: "," + //111_1100 7919: "," + //111_1101 7920: "," + //111_1110 7921: "" //111_1111 7922: ).split (",", 128); //limitを書かないと末尾の空文字列が削除されて配列が短くなり末尾の要素を参照できなくなる 7923: 7924: public static final String[] DIS_FP_CC = ( 7925: "f," + //000000 7926: "eq," + //000001 7927: "ogt," + //000010 7928: "oge," + //000011 7929: "olt," + //000100 7930: "ole," + //000101 7931: "ogl," + //000110 7932: "or," + //000111 7933: "un," + //001000 7934: "ueq," + //001001 7935: "ugt," + //001010 7936: "uge," + //001011 7937: "ult," + //001100 7938: "ule," + //001101 7939: "ne," + //001110 7940: "t," + //001111 7941: "sf," + //010000 7942: "seq," + //010001 7943: "gt," + //010010 7944: "ge," + //010011 7945: "lt," + //010100 7946: "le," + //010101 7947: "gl," + //010110 7948: "gle," + //010111 7949: "ngle,"+ //011000 7950: "ngl," + //011001 7951: "nle," + //011010 7952: "nlt," + //011011 7953: "nge," + //011100 7954: "ngt," + //011101 7955: "sne," + //011110 7956: "st" //011111 7957: ).split (","); 7958: 7959: public static final String[] DIS_FP_CR = { "fpcr", "fpsr", "fpiar" }; 7960: 7961: //FMOVE.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0000 7962: //FINT.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0001 7963: //FSINH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0010 7964: //FINTRZ.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0011 7965: //FSQRT.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0100 7966: //FLOGNP1.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_0110 7967: //FETOXM1.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1000 7968: //FTANH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1001 7969: //FATAN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1010 7970: //FASIN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1100 7971: //FATANH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1101 7972: //FSIN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1110 7973: //FTAN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_000_1111 7974: //FETOX.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0000 7975: //FTWOTOX.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0001 7976: //FTENTOX.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0010 7977: //FLOGN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0100 7978: //FLOG10.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0101 7979: //FLOG2.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_0110 7980: //FABS.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1000 7981: //FCOSH.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1001 7982: //FNEG.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1010 7983: //FACOS.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1100 7984: //FCOS.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1101 7985: //FGETEXP.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1110 7986: //FGETMAN.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_001_1111 7987: //FDIV.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0000 7988: //FMOD.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0001 7989: //FADD.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0010 7990: //FMUL.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0011 7991: //FSGLDIV.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0100 7992: //FREM.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0101 7993: //FSCALE.X FPm,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0110 7994: //FSGLMUL.X FPm,FPn --CCS6|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_0111 7995: //FSUB.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_010_1000 7996: //FSINCOS.X FPm,FPc:FPs --CCSS|-|-----|-----| |1111_001_000_000_000-000_mmm_sss_011_0ccc 7997: //FCMP.X FPm,FPn --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_011_1000 7998: //FTST.X FPm --CC46|-|-----|-----| |1111_001_000_000_000-000_mmm_000_011_1010 7999: //FSMOVE.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0000 8000: //FSSQRT.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0001 8001: //FDMOVE.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0100 8002: //FDSQRT.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_100_0101 8003: //FSABS.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1000 8004: //FSNEG.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1010 8005: //FDABS.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1100 8006: //FDNEG.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_101_1110 8007: //FSDIV.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0000 8008: //FSADD.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0010 8009: //FSMUL.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0011 8010: //FDDIV.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0100 8011: //FDADD.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0110 8012: //FDMUL.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_0111 8013: //FSSUB.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_1000 8014: //FDSUB.X FPm,FPn ----46|-|-----|-----| |1111_001_000_000_000-000_mmm_nnn_110_1100 8015: //FMOVE.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0000 8016: //FMOVE.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0000 8017: //FMOVE.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0000 8018: //FMOVE.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0000 8019: //FMOVE.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0000 8020: //FMOVE.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0000 8021: //FMOVE.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0000 8022: //FINT.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0001 8023: //FINT.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0001 8024: //FINT.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0001 8025: //FINT.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0001 8026: //FINT.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0001 8027: //FINT.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0001 8028: //FINT.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0001 8029: //FSINH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0010 8030: //FSINH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0010 8031: //FSINH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0010 8032: //FSINH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0010 8033: //FSINH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0010 8034: //FSINH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0010 8035: //FSINH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0010 8036: //FINTRZ.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0011 8037: //FINTRZ.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0011 8038: //FINTRZ.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0011 8039: //FINTRZ.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0011 8040: //FINTRZ.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0011 8041: //FINTRZ.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0011 8042: //FINTRZ.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0011 8043: //FSQRT.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0100 8044: //FSQRT.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0100 8045: //FSQRT.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0100 8046: //FSQRT.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0100 8047: //FSQRT.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0100 8048: //FSQRT.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0100 8049: //FSQRT.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0100 8050: //FLOGNP1.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_0110 8051: //FLOGNP1.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_0110 8052: //FLOGNP1.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_0110 8053: //FLOGNP1.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_0110 8054: //FLOGNP1.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_0110 8055: //FLOGNP1.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_0110 8056: //FLOGNP1.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_0110 8057: //FETOXM1.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1000 8058: //FETOXM1.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1000 8059: //FETOXM1.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1000 8060: //FETOXM1.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1000 8061: //FETOXM1.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1000 8062: //FETOXM1.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1000 8063: //FETOXM1.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1000 8064: //FTANH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1001 8065: //FTANH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1001 8066: //FTANH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1001 8067: //FTANH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1001 8068: //FTANH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1001 8069: //FTANH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1001 8070: //FTANH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1001 8071: //FATAN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1010 8072: //FATAN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1010 8073: //FATAN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1010 8074: //FATAN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1010 8075: //FATAN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1010 8076: //FATAN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1010 8077: //FATAN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1010 8078: //FASIN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1100 8079: //FASIN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1100 8080: //FASIN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1100 8081: //FASIN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1100 8082: //FASIN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1100 8083: //FASIN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1100 8084: //FASIN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1100 8085: //FATANH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1101 8086: //FATANH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1101 8087: //FATANH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1101 8088: //FATANH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1101 8089: //FATANH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1101 8090: //FATANH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1101 8091: //FATANH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1101 8092: //FSIN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1110 8093: //FSIN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1110 8094: //FSIN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1110 8095: //FSIN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1110 8096: //FSIN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1110 8097: //FSIN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1110 8098: //FSIN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1110 8099: //FTAN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_000_1111 8100: //FTAN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_000_1111 8101: //FTAN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_000_1111 8102: //FTAN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_000_1111 8103: //FTAN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_000_1111 8104: //FTAN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_000_1111 8105: //FTAN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_000_1111 8106: //FETOX.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0000 8107: //FETOX.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0000 8108: //FETOX.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0000 8109: //FETOX.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0000 8110: //FETOX.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0000 8111: //FETOX.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0000 8112: //FETOX.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0000 8113: //FTWOTOX.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0001 8114: //FTWOTOX.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0001 8115: //FTWOTOX.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0001 8116: //FTWOTOX.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0001 8117: //FTWOTOX.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0001 8118: //FTWOTOX.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0001 8119: //FTWOTOX.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0001 8120: //FTENTOX.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0010 8121: //FTENTOX.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0010 8122: //FTENTOX.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0010 8123: //FTENTOX.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0010 8124: //FTENTOX.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0010 8125: //FTENTOX.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0010 8126: //FTENTOX.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0010 8127: //FLOGN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0100 8128: //FLOGN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0100 8129: //FLOGN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0100 8130: //FLOGN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0100 8131: //FLOGN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0100 8132: //FLOGN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0100 8133: //FLOGN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0100 8134: //FLOG10.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0101 8135: //FLOG10.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0101 8136: //FLOG10.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0101 8137: //FLOG10.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0101 8138: //FLOG10.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0101 8139: //FLOG10.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0101 8140: //FLOG10.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0101 8141: //FLOG2.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_0110 8142: //FLOG2.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_0110 8143: //FLOG2.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_0110 8144: //FLOG2.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_0110 8145: //FLOG2.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_0110 8146: //FLOG2.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_0110 8147: //FLOG2.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_0110 8148: //FABS.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1000 8149: //FABS.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1000 8150: //FABS.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1000 8151: //FABS.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1000 8152: //FABS.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1000 8153: //FABS.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1000 8154: //FABS.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1000 8155: //FCOSH.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1001 8156: //FCOSH.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1001 8157: //FCOSH.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1001 8158: //FCOSH.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1001 8159: //FCOSH.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1001 8160: //FCOSH.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1001 8161: //FCOSH.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1001 8162: //FNEG.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1010 8163: //FNEG.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1010 8164: //FNEG.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1010 8165: //FNEG.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1010 8166: //FNEG.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1010 8167: //FNEG.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1010 8168: //FNEG.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1010 8169: //FACOS.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1100 8170: //FACOS.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1100 8171: //FACOS.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1100 8172: //FACOS.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1100 8173: //FACOS.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1100 8174: //FACOS.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1100 8175: //FACOS.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1100 8176: //FCOS.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1101 8177: //FCOS.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1101 8178: //FCOS.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1101 8179: //FCOS.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1101 8180: //FCOS.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1101 8181: //FCOS.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1101 8182: //FCOS.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1101 8183: //FGETEXP.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1110 8184: //FGETEXP.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1110 8185: //FGETEXP.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1110 8186: //FGETEXP.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1110 8187: //FGETEXP.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1110 8188: //FGETEXP.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1110 8189: //FGETEXP.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1110 8190: //FGETMAN.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_001_1111 8191: //FGETMAN.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_001_1111 8192: //FGETMAN.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_001_1111 8193: //FGETMAN.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_001_1111 8194: //FGETMAN.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_001_1111 8195: //FGETMAN.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_001_1111 8196: //FGETMAN.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_001_1111 8197: //FDIV.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0000 8198: //FDIV.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0000 8199: //FDIV.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0000 8200: //FDIV.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0000 8201: //FDIV.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0000 8202: //FDIV.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0000 8203: //FDIV.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0000 8204: //FMOD.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0001 8205: //FMOD.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0001 8206: //FMOD.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0001 8207: //FMOD.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0001 8208: //FMOD.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0001 8209: //FMOD.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0001 8210: //FMOD.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0001 8211: //FADD.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0010 8212: //FADD.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0010 8213: //FADD.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0010 8214: //FADD.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0010 8215: //FADD.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0010 8216: //FADD.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0010 8217: //FADD.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0010 8218: //FMUL.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0011 8219: //FMUL.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0011 8220: //FMUL.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0011 8221: //FMUL.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0011 8222: //FMUL.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0011 8223: //FMUL.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0011 8224: //FMUL.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0011 8225: //FSGLDIV.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0100 8226: //FSGLDIV.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0100 8227: //FSGLDIV.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0100 8228: //FSGLDIV.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0100 8229: //FSGLDIV.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0100 8230: //FSGLDIV.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0100 8231: //FSGLDIV.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0100 8232: //FREM.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0101 8233: //FREM.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0101 8234: //FREM.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0101 8235: //FREM.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0101 8236: //FREM.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0101 8237: //FREM.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0101 8238: //FREM.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0101 8239: //FSCALE.L <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0110 8240: //FSCALE.S <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0110 8241: //FSCALE.X <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0110 8242: //FSCALE.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0110 8243: //FSCALE.W <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0110 8244: //FSCALE.D <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0110 8245: //FSCALE.B <ea>,FPn --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0110 8246: //FSGLMUL.L <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_0111 8247: //FSGLMUL.S <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_0111 8248: //FSGLMUL.X <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_0111 8249: //FSGLMUL.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_0111 8250: //FSGLMUL.W <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_0111 8251: //FSGLMUL.D <ea>,FPn --CCS6|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_0111 8252: //FSGLMUL.B <ea>,FPn --CCS6|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_0111 8253: //FSUB.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_010_1000 8254: //FSUB.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_010_1000 8255: //FSUB.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_010_1000 8256: //FSUB.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_010_1000 8257: //FSUB.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_010_1000 8258: //FSUB.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_010_1000 8259: //FSUB.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_010_1000 8260: //FSINCOS.L <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_sss_011_0ccc 8261: //FSINCOS.S <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_sss_011_0ccc 8262: //FSINCOS.X <ea>,FPc:FPs --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_sss_011_0ccc 8263: //FSINCOS.P <ea>,FPc:FPs --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_sss_011_0ccc 8264: //FSINCOS.W <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_sss_011_0ccc 8265: //FSINCOS.D <ea>,FPc:FPs --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_sss_011_0ccc 8266: //FSINCOS.B <ea>,FPc:FPs --CCSS|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_sss_011_0ccc 8267: //FCMP.L <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_011_1000 8268: //FCMP.S <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_011_1000 8269: //FCMP.X <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_011_1000 8270: //FCMP.P <ea>,FPn --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_011_1000 8271: //FCMP.W <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_011_1000 8272: //FCMP.D <ea>,FPn --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_011_1000 8273: //FCMP.B <ea>,FPn --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_011_1000 8274: //FTST.L <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_000_011_1010 8275: //FTST.S <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_000_011_1010 8276: //FTST.X <ea> --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_000_011_1010 8277: //FTST.P <ea> --CCSS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_000_011_1010 8278: //FTST.W <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_000_011_1010 8279: //FTST.D <ea> --CC46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_000_011_1010 8280: //FTST.B <ea> --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_000_011_1010 8281: //FSMOVE.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0000 8282: //FSMOVE.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0000 8283: //FSMOVE.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0000 8284: //FSMOVE.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0000 8285: //FSMOVE.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0000 8286: //FSMOVE.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0000 8287: //FSMOVE.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0000 8288: //FSSQRT.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0001 8289: //FSSQRT.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0001 8290: //FSSQRT.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0001 8291: //FSSQRT.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0001 8292: //FSSQRT.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0001 8293: //FSSQRT.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0001 8294: //FSSQRT.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0001 8295: //FDMOVE.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0100 8296: //FDMOVE.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0100 8297: //FDMOVE.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0100 8298: //FDMOVE.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0100 8299: //FDMOVE.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0100 8300: //FDMOVE.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0100 8301: //FDMOVE.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0100 8302: //FDSQRT.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_100_0101 8303: //FDSQRT.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_100_0101 8304: //FDSQRT.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_100_0101 8305: //FDSQRT.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_100_0101 8306: //FDSQRT.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_100_0101 8307: //FDSQRT.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_100_0101 8308: //FDSQRT.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_100_0101 8309: //FSABS.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1000 8310: //FSABS.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1000 8311: //FSABS.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1000 8312: //FSABS.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1000 8313: //FSABS.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1000 8314: //FSABS.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1000 8315: //FSABS.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1000 8316: //FSNEG.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1010 8317: //FSNEG.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1010 8318: //FSNEG.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1010 8319: //FSNEG.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1010 8320: //FSNEG.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1010 8321: //FSNEG.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1010 8322: //FSNEG.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1010 8323: //FDABS.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1100 8324: //FDABS.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1100 8325: //FDABS.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1100 8326: //FDABS.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1100 8327: //FDABS.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1100 8328: //FDABS.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1100 8329: //FDABS.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1100 8330: //FDNEG.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_101_1110 8331: //FDNEG.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_101_1110 8332: //FDNEG.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_101_1110 8333: //FDNEG.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_101_1110 8334: //FDNEG.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_101_1110 8335: //FDNEG.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_101_1110 8336: //FDNEG.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_101_1110 8337: //FSDIV.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0000 8338: //FSDIV.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0000 8339: //FSDIV.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0000 8340: //FSDIV.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0000 8341: //FSDIV.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0000 8342: //FSDIV.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0000 8343: //FSDIV.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0000 8344: //FSADD.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0010 8345: //FSADD.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0010 8346: //FSADD.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0010 8347: //FSADD.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0010 8348: //FSADD.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0010 8349: //FSADD.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0010 8350: //FSADD.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0010 8351: //FSMUL.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0011 8352: //FSMUL.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0011 8353: //FSMUL.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0011 8354: //FSMUL.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0011 8355: //FSMUL.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0011 8356: //FSMUL.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0011 8357: //FSMUL.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0011 8358: //FDDIV.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0100 8359: //FDDIV.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0100 8360: //FDDIV.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0100 8361: //FDDIV.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0100 8362: //FDDIV.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0100 8363: //FDDIV.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0100 8364: //FDDIV.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0100 8365: //FDADD.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0110 8366: //FDADD.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0110 8367: //FDADD.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0110 8368: //FDADD.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0110 8369: //FDADD.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0110 8370: //FDADD.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0110 8371: //FDADD.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0110 8372: //FDMUL.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_0111 8373: //FDMUL.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_0111 8374: //FDMUL.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_0111 8375: //FDMUL.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_0111 8376: //FDMUL.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_0111 8377: //FDMUL.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_0111 8378: //FDMUL.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_0111 8379: //FSSUB.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_1000 8380: //FSSUB.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_1000 8381: //FSSUB.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_1000 8382: //FSSUB.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_1000 8383: //FSSUB.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_1000 8384: //FSSUB.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_1000 8385: //FSSUB.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_1000 8386: //FDSUB.L <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_000_nnn_110_1100 8387: //FDSUB.S <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_001_nnn_110_1100 8388: //FDSUB.X <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_010_nnn_110_1100 8389: //FDSUB.P <ea>,FPn ----SS|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_011_nnn_110_1100 8390: //FDSUB.W <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_100_nnn_110_1100 8391: //FDSUB.D <ea>,FPn ----46|-|-----|-----| M+-WXZPI|1111_001_000_mmm_rrr-010_101_nnn_110_1100 8392: //FDSUB.B <ea>,FPn ----46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-010_110_nnn_110_1100 8393: //FMOVECR.X #ccc,FPn --CCSS|-|-----|-----| |1111_001_000_000_000-010_111_nnn_0cc_cccc 8394: //FMOVE.L FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_000_nnn_000_0000 8395: //FMOVE.S FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_001_nnn_000_0000 8396: //FMOVE.X FPn,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_010_nnn_000_0000 8397: //FMOVE.P FPn,<ea>{#k} --CCSS|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_011_nnn_kkk_kkkk 8398: //FMOVE.W FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_100_nnn_000_0000 8399: //FMOVE.D FPn,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_101_nnn_000_0000 8400: //FMOVE.B FPn,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-011_110_nnn_000_0000 8401: //FMOVE.P FPn,<ea>{Dl} --CCSS|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-011_111_nnn_lll_0000 8402: //FMOVE.L <ea>,FPIAR --CC46|-|-----|-----|DAM+-WXZPI|1111_001_000_mmm_rrr-100_001_000_000_0000 8403: //FMOVE.L <ea>,FPSR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_010_000_000_0000 8404: //FMOVE.L <ea>,FPCR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_100_000_000_0000 8405: //FMOVEM.L <ea>,FPIAR --CC46|-|-----|-----|DAM+-WXZPI|1111_001_000_mmm_rrr-100_001_000_000_0000 8406: //FMOVEM.L <ea>,FPSR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_010_000_000_0000 8407: //FMOVEM.L <ea>,FPCR --CC46|-|-----|-----|D M+-WXZPI|1111_001_000_mmm_rrr-100_100_000_000_0000 8408: //FMOVEM.L <ea>,FPSR/FPIAR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_011_000_000_0000 8409: //FMOVEM.L #<data>,#<data>,FPSR/FPIAR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_011_000_000_0000-{data} 8410: //FMOVEM.L <ea>,FPCR/FPIAR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_101_000_000_0000 8411: //FMOVEM.L #<data>,#<data>,FPCR/FPIAR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_101_000_000_0000-{data} 8412: //FMOVEM.L <ea>,FPCR/FPSR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_110_000_000_0000 8413: //FMOVEM.L #<data>,#<data>,FPCR/FPSR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_110_000_000_0000-{data} 8414: //FMOVEM.L <ea>,FPCR/FPSR/FPIAR --CC46|-|-----|-----| M+-WXZP |1111_001_000_mmm_rrr-100_111_000_000_0000 8415: //FMOVEM.L #<d>,#<d>,#<d>,FPCR/FPSR/FPIAR --CC4S|-|-----|-----| I|1111_001_000_111_100-100_111_000_000_0000-{data} 8416: //FMOVE.L FPIAR,<ea> --CC46|-|-----|-----|DAM+-WXZ |1111_001_000_mmm_rrr-101_001_000_000_0000 8417: //FMOVE.L FPSR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_010_000_000_0000 8418: //FMOVE.L FPCR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_100_000_000_0000 8419: //FMOVEM.L FPIAR,<ea> --CC46|-|-----|-----|DAM+-WXZ |1111_001_000_mmm_rrr-101_001_000_000_0000 8420: //FMOVEM.L FPSR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_010_000_000_0000 8421: //FMOVEM.L FPCR,<ea> --CC46|-|-----|-----|D M+-WXZ |1111_001_000_mmm_rrr-101_100_000_000_0000 8422: //FMOVEM.L FPSR/FPIAR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_011_000_000_0000 8423: //FMOVEM.L FPCR/FPIAR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_101_000_000_0000 8424: //FMOVEM.L FPCR/FPSR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_110_000_000_0000 8425: //FMOVEM.L FPCR/FPSR/FPIAR,<ea> --CC46|-|-----|-----| M+-WXZ |1111_001_000_mmm_rrr-101_111_000_000_0000 8426: //FMOVEM.X <ea>,#<data> --CC46|-|-----|-----| M+ WXZP |1111_001_000_mmm_rrr-110_100_00d_ddd_dddd 8427: //FMOVEM.X <ea>,<list> --CC46|-|-----|-----| M+ WXZP |1111_001_000_mmm_rrr-110_100_00l_lll_llll 8428: //FMOVEM.X <ea>,Dl --CC4S|-|-----|-----| M+ WXZP |1111_001_000_mmm_rrr-110_110_000_lll_0000 8429: //FMOVEM.X #<data>,-(Ar) --CC46|-|-----|-----| - |1111_001_000_100_rrr-111_000_00d_ddd_dddd 8430: //FMOVEM.X #<data>,<ea> --CC46|-|-----|-----| M WXZ |1111_001_000_mmm_rrr-111_100_00d_ddd_dddd 8431: //FMOVEM.X <list>,-(Ar) --CC46|-|-----|-----| - |1111_001_000_100_rrr-111_000_00l_lll_llll 8432: //FMOVEM.X <list>,<ea> --CC46|-|-----|-----| M WXZ |1111_001_000_mmm_rrr-111_100_00l_lll_llll 8433: //FMOVEM.X Dl,-(Ar) --CC4S|-|-----|-----| - |1111_001_000_100_rrr-111_010_000_lll_0000 8434: //FMOVEM.X Dl,<ea> --CC4S|-|-----|-----| M WXZ |1111_001_000_mmm_rrr-111_110_000_lll_0000 8435: public static StringBuilder disFgen (StringBuilder sb) { 8436: int ea = disOC & 63; 8437: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 8438: int m = w >> 10 & 7; 8439: int n = w >> 7 & 7; 8440: int c = w & 0x7f; 8441: switch (w >> 13) { 8442: case 0b000: //Fop.X FPm,FPn 8443: //メモ 8444: // db.xとscd.xのバグ 8445: // FSINCOS.X FPm,FPc:FPs をアセンブルすると FSINCOS.X FPm,FP0:FPs が出力される 8446: { 8447: String mnemonic = DIS_FP_FGEN[c]; 8448: if (mnemonic.length () != 0) { 8449: disFPn (disOp2 (sb, mnemonic, ".x"), m); 8450: if (c == 0b011_1010) { //FTST 8451: return sb; 8452: } 8453: sb.append (','); 8454: if (c >> 3 == 0b011_0000 >> 3) { //FSINCOS 8455: disFPn (sb, c & 7).append (':'); 8456: } 8457: return disFPn (sb, n); 8458: } 8459: } 8460: break; 8461: case 0b010: //Fop.* <ea>,FPn 8462: if (m == 7) { //FMOVECR.X #ccc,FPn 8463: return disFPn (disHex2 (sb.append ("fmovecr.x ").append ('#'), c).append (','), n); 8464: } 8465: // LSXPWDBP 8466: if (((0b11001010 << 24 << m) < 0 ? XEiJ.EAM_DAT : XEiJ.EAM_ANY) << ea < 0L) { 8467: String mnemonic = DIS_FP_FGEN[c]; 8468: if (mnemonic.length () != 0) { 8469: disEa (disOp2 (sb, mnemonic, DIS_FP_SZ[m]), ea, 8 + m); 8470: if (c == 0b011_1010) { //FTST 8471: return sb; 8472: } 8473: sb.append (','); 8474: if (c >> 3 == 0b011_0000 >> 3) { //FSINCOS 8475: disFPn (sb, c & 7).append (':'); 8476: } 8477: return disFPn (sb, n); 8478: } 8479: } 8480: break; 8481: case 0b011: //FMOVE.* FPn,<ea> 8482: // LSXPWDBP 8483: if (((0b11001010 << 24 << m) < 0 ? XEiJ.EAM_DLT : XEiJ.EAM_MLT) << ea < 0L) { 8484: disEa (disFPn (disOp2 (sb, "fmove", DIS_FP_SZ[m]), n).append (','), ea, 8 + m); 8485: if (m == 3) { //static k-factor 8486: disHex2 (sb.append ('{'), c).append ('}'); 8487: } else if (m == 7) { //dynamic k-factor 8488: disDR (sb.append ('{'), c >>> 4).append ('}'); 8489: } 8490: return sb; 8491: } 8492: break; 8493: case 0b100: //FMOVEM.L <ea>,FPCR/FPSR/FPIAR 8494: { 8495: //メモ 8496: // db.xとscd.xのバグ 8497: // FMOVE.L Dn,FPCR をアセンブルできない 8498: // FMOVE.L Dn,FPSR をアセンブルできない 8499: // FMOVE.L Dn,FPIAR をアセンブルできない 8500: // FMOVE.L An,FPIAR をアセンブルできない 8501: // FMOVEM.L Dn,FPCR をアセンブルできない 8502: // FMOVEM.L Dn,FPSR をアセンブルできない 8503: // FMOVEM.L Dn,FPIAR をアセンブルできない 8504: // FMOVEM.L An,FPIAR をアセンブルできない 8505: int k = 0b11_10_10_01_10_01_01_00 >> (m << 1) & 3; //転送するレジスタの数 8506: if ((m == 1 ? XEiJ.EAM_ALL : k == 1 ? XEiJ.EAM_DAT : XEiJ.EAM_ANY) << ea < 0L) { 8507: sb.append (k == 1 ? "fmove.l " : "fmovem.l "); 8508: if (ea < XEiJ.EA_IM) { 8509: disEaz (sb, ea).append (','); 8510: } else { 8511: for (int i = 0; i < k; i++) { 8512: disIMl (sb).append (','); 8513: } 8514: } 8515: m <<= 29; 8516: for (int i = 0; m != 0; i++, m <<= 1) { 8517: if (m < 0) { 8518: sb.append (DIS_FP_CR[i]); 8519: if (m << 1 != 0) { 8520: sb.append ('/'); 8521: } 8522: } 8523: } 8524: return sb; 8525: } 8526: } 8527: break; 8528: case 0b101: //FMOVEM.L FPCR/FPSR/FPIAR,<ea> 8529: { 8530: //メモ 8531: // db.xとscd.xのバグ 8532: // FMOVE.L FPCR,Dn をアセンブルできない 8533: // FMOVE.L FPSR,Dn をアセンブルできない 8534: // FMOVE.L FPIAR,Dn をアセンブルできない 8535: // FMOVE.L FPIAR,An をアセンブルできない 8536: // FMOVEM.L FPCR,Dn をアセンブルできない 8537: // FMOVEM.L FPSR,Dn をアセンブルできない 8538: // FMOVEM.L FPIAR,Dn をアセンブルできない 8539: // FMOVEM.L FPIAR,An をアセンブルできない 8540: int k = 0b11_10_10_01_10_01_01_00 >> (m << 1) & 3; //転送するレジスタの数 8541: if ((m == 1 ? XEiJ.EAM_ALT : k == 1 ? XEiJ.EAM_DLT : XEiJ.EAM_MLT) << ea < 0L) { 8542: sb.append (k == 1 ? "fmove.l " : "fmovem.l "); 8543: m <<= 29; 8544: for (int i = 0; m != 0; i++, m <<= 1) { 8545: if (m < 0) { 8546: sb.append (DIS_FP_CR[i]); 8547: if (m << 1 != 0) { 8548: sb.append ('/'); 8549: } 8550: } 8551: } 8552: return disEaz (sb.append (','), ea); 8553: } 8554: } 8555: break; 8556: case 0b110: //FMOVEM.X <ea>,<list> 8557: if (XEiJ.EAM_RDL << ea < 0L) { 8558: disEaz (sb.append ("fmovem.x "), ea).append (','); 8559: if ((m & 2) != 0) { //dynamic list 8560: disDR (sb, w >> 4 & 7); 8561: } else { //static list 8562: disFPLst (sb, w); 8563: } 8564: return sb; 8565: } 8566: break; 8567: case 0b111: //FMOVEM.X <list>,<ea> 8568: { 8569: if (XEiJ.EAM_WTL << ea < 0L) { 8570: sb.append ("fmovem.x "); 8571: if ((m & 2) != 0) { //dynamic list 8572: disDR (sb, w >> 4 & 7); 8573: } else if ((m & 4) != 0) { //static list, normal 8574: disFPLst (sb, w); 8575: } else { //static list, reverse 8576: disFPLmn (sb, w); 8577: } 8578: return disEaz (sb.append (','), ea); 8579: } 8580: } 8581: break; 8582: } //switch w>>13 8583: return disIllegal (sb); 8584: } //disFgen(StringBuilder) 8585: 8586: //FDBcc Dr,<label> --CC4S|-|-----|-----| |1111_001_001_001_rrr-000_000_000_0cc_cccc-{offset} 8587: //FTRAPcc.W #<data> --CC4S|-|-----|-----| |1111_001_001_111_010-000_000_000_0cc_cccc-{data} 8588: //FTRAPcc.L #<data> --CC4S|-|-----|-----| |1111_001_001_111_011-000_000_000_0cc_cccc-{data} 8589: //FTRAPcc --CC4S|-|-----|-----| |1111_001_001_111_100-000_000_000_0cc_cccc 8590: //FScc.B <ea> --CC4S|-|-----|-----|D M+-WXZ |1111_001_001_mmm_rrr-000_000_000_0cc_cccc 8591: public static StringBuilder disFscc (StringBuilder sb) { 8592: //メモ 8593: // db.xとscd.xのバグ 8594: // FDBcc Dr,<label> をアセンブルすると FDBcc Dr,<label>+2 が出力される (scd060.xで修正されている) 8595: // FDBcc Dr,<label> を逆アセンブルすると FDBcc Dr,<label>-2 が表示される (scd060.xで修正されている) 8596: int c = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor) & 63; 8597: if (c < DIS_FP_CC.length) { 8598: int ea = disOC & 63; 8599: if (ea >> 3 == XEiJ.MMM_AR) { 8600: disStatus = DIS_SOMETIMES_BRANCH; 8601: return disOW (disDR (disOp2 (sb, "fdb", DIS_FP_CC[c]), disOC & 7).append (',')); //FDBccはUnsized、PDBccはWordらしい 8602: } 8603: if (ea == XEiJ.EA_PW) { 8604: return disIMw (disOp3 (sb, "ftrap", DIS_FP_CC[c], ".w")); 8605: } 8606: if (ea == XEiJ.EA_PX) { 8607: return disIMl (disOp3 (sb, "ftrap", DIS_FP_CC[c], ".l")); 8608: } 8609: if (ea == XEiJ.EA_IM) { 8610: return sb.append ("ftrap").append (DIS_FP_CC[c]); 8611: } 8612: if (XEiJ.EAM_DAT << ea < 0L) { 8613: return disEab (disOp3 (sb, "fs", DIS_FP_CC[c], ".b"), ea); 8614: } 8615: } 8616: return disIllegal (sb); 8617: } //disFscc(StringBuilder) 8618: 8619: //FNOP --CC46|-|-----|-----| |1111_001_010_000_000-000_000_000_000_0000 8620: //FBcc.W <label> --CC46|-|-----|-----| |1111_001_010_ccc_ccc-{offset} 8621: public static StringBuilder disFbccWord (StringBuilder sb) { 8622: int c = disOC & 63; 8623: if (c < DIS_FP_CC.length) { 8624: if (c == 0b000000) { //FBF.W <label> 8625: int base = disPC; 8626: int offset = MC68060.mmuPeekWordSignCode (base, disSupervisor); 8627: disPC = base + 2; 8628: if (offset == 0) { //FBF.W (*)+2 → FNOP 8629: return sb.append ("fnop"); 8630: } 8631: return disProgramHex8 (sb.append ("fbf.w "), 8632: base + offset); 8633: } 8634: if (c == 0b001111) { //FBT.W <labsl> → FBRA.W <label> 8635: disStatus = DIS_ALWAYS_BRANCH; 8636: return disOW (sb.append ("fbra.w ")); 8637: } 8638: //FBcc.W <label> 8639: disStatus = DIS_SOMETIMES_BRANCH; 8640: return disOW (disOp3 (sb, "fb", DIS_FP_CC[c], ".w")); 8641: } 8642: return disIllegal (sb); 8643: } //disFbccWord(StringBuilder) 8644: 8645: //FBcc.L <label> --CC46|-|-----|-----| |1111_001_011_ccc_ccc-{offset} 8646: public static StringBuilder disFbccLong (StringBuilder sb) { 8647: int c = disOC & 63; 8648: if (c < DIS_FP_CC.length) { 8649: if (c == 0b001111) { //FBT.L <labsl> → FBRA.L <label> 8650: disStatus = DIS_ALWAYS_BRANCH; 8651: return disOW (sb.append ("fbra.l ")); 8652: } 8653: //FBcc.L <label> 8654: disStatus = DIS_SOMETIMES_BRANCH; 8655: return disOW (disOp3 (sb, "fb", DIS_FP_CC[c], ".l")); 8656: } 8657: return disIllegal (sb); 8658: } //disFbccLong(StringBuilder) 8659: 8660: //FSAVE <ea> --CC46|P|-----|-----| M -WXZ |1111_001_100_mmm_rrr 8661: public static StringBuilder disFsave (StringBuilder sb) { 8662: int ea = disOC & 63; 8663: if (XEiJ.EAM_WTL << ea < 0L) { 8664: return disEaz (sb.append ("fsave "), ea); 8665: } 8666: return disIllegal (sb); 8667: } //disFsave(StringBuilder) 8668: 8669: //FRESTORE <ea> --CC46|P|-----|-----| M+ WXZP |1111_001_101_mmm_rrr 8670: public static StringBuilder disFrestore (StringBuilder sb) { 8671: int ea = disOC & 63; 8672: if (XEiJ.EAM_RDL << ea < 0L) { 8673: return disEaz (sb.append ("frestore "), ea); 8674: } 8675: return disIllegal (sb); 8676: } //disFrestore(StringBuilder) 8677: 8678: //不当命令 8679: public static StringBuilder disIllegal (StringBuilder sb) { 8680: sb.append ("illegal "); 8681: //2ワード目で不当命令と判別されたときは2ワードの不当命令とみなす 8682: for (int a = disPC0; a < disPC; a += 2) { 8683: if (disPC0 < a) { 8684: sb.append (','); 8685: } 8686: disHex4 (sb, MC68060.mmuPeekWordZeroCode (a, disSupervisor)); 8687: } 8688: return sb; 8689: } //disillegal(StringBuilder) 8690: 8691: //実効アドレス 8692: public static StringBuilder disEaz (StringBuilder sb, int ea) { 8693: return disEa (sb, ea, -1); 8694: } //disEaz(StringBuilder,int) 8695: public static StringBuilder disEab (StringBuilder sb, int ea) { 8696: return disEa (sb, ea, XEiJ.MPU_SS_BYTE); 8697: } //disEab(StringBuilder,int) 8698: public static StringBuilder disEaw (StringBuilder sb, int ea) { 8699: return disEa (sb, ea, XEiJ.MPU_SS_WORD); 8700: } //disEaw(StringBuilder,int) 8701: public static StringBuilder disEal (StringBuilder sb, int ea) { 8702: return disEa (sb, ea, XEiJ.MPU_SS_LONG); 8703: } //disEal(StringBuilder,int) 8704: public static StringBuilder disEa (StringBuilder sb, int ea, int ss) { 8705: int rrr = ea & 7; 8706: switch (ea) { 8707: case XEiJ.EA_DR + 0: //d0 8708: case XEiJ.EA_DR + 1: //d1 8709: case XEiJ.EA_DR + 2: //d2 8710: case XEiJ.EA_DR + 3: //d3 8711: case XEiJ.EA_DR + 4: //d4 8712: case XEiJ.EA_DR + 5: //d5 8713: case XEiJ.EA_DR + 6: //d6 8714: case XEiJ.EA_DR + 7: //d7 8715: return disDR (sb, rrr); 8716: case XEiJ.EA_AR + 0: //a0 8717: case XEiJ.EA_AR + 1: //a1 8718: case XEiJ.EA_AR + 2: //a2 8719: case XEiJ.EA_AR + 3: //a3 8720: case XEiJ.EA_AR + 4: //a4 8721: case XEiJ.EA_AR + 5: //a5 8722: case XEiJ.EA_AR + 6: //a6 8723: case XEiJ.EA_AR + 7: //sp 8724: return disAR (sb, rrr); 8725: case XEiJ.EA_MM + 0: //(a0) 8726: case XEiJ.EA_MM + 1: //(a1) 8727: case XEiJ.EA_MM + 2: //(a2) 8728: case XEiJ.EA_MM + 3: //(a3) 8729: case XEiJ.EA_MM + 4: //(a4) 8730: case XEiJ.EA_MM + 5: //(a5) 8731: case XEiJ.EA_MM + 6: //(a6) 8732: case XEiJ.EA_MM + 7: //(sp) 8733: return disMM (sb, rrr); 8734: case XEiJ.EA_MP + 0: //(a0)+ 8735: case XEiJ.EA_MP + 1: //(a1)+ 8736: case XEiJ.EA_MP + 2: //(a2)+ 8737: case XEiJ.EA_MP + 3: //(a3)+ 8738: case XEiJ.EA_MP + 4: //(a4)+ 8739: case XEiJ.EA_MP + 5: //(a5)+ 8740: case XEiJ.EA_MP + 6: //(a6)+ 8741: case XEiJ.EA_MP + 7: //(sp)+ 8742: return disMP (sb, rrr); 8743: case XEiJ.EA_MN + 0: //-(a0) 8744: case XEiJ.EA_MN + 1: //-(a1) 8745: case XEiJ.EA_MN + 2: //-(a2) 8746: case XEiJ.EA_MN + 3: //-(a3) 8747: case XEiJ.EA_MN + 4: //-(a4) 8748: case XEiJ.EA_MN + 5: //-(a5) 8749: case XEiJ.EA_MN + 6: //-(a6) 8750: case XEiJ.EA_MN + 7: //-(sp) 8751: return disMN (sb, rrr); 8752: case XEiJ.EA_MW + 0: //d16(a0) 8753: case XEiJ.EA_MW + 1: //d16(a1) 8754: case XEiJ.EA_MW + 2: //d16(a2) 8755: case XEiJ.EA_MW + 3: //d16(a3) 8756: case XEiJ.EA_MW + 4: //d16(a4) 8757: case XEiJ.EA_MW + 5: //d16(a5) 8758: case XEiJ.EA_MW + 6: //d16(a6) 8759: case XEiJ.EA_MW + 7: //d16(sp) 8760: return disMW (sb, rrr); 8761: case XEiJ.EA_MX + 0: //d8(a0,rn.wl) 8762: case XEiJ.EA_MX + 1: //d8(a1,rn.wl) 8763: case XEiJ.EA_MX + 2: //d8(a2,rn.wl) 8764: case XEiJ.EA_MX + 3: //d8(a3,rn.wl) 8765: case XEiJ.EA_MX + 4: //d8(a4,rn.wl) 8766: case XEiJ.EA_MX + 5: //d8(a5,rn.wl) 8767: case XEiJ.EA_MX + 6: //d8(a6,rn.wl) 8768: case XEiJ.EA_MX + 7: //d8(sp,rn.wl) 8769: return disMX (sb, rrr); 8770: case XEiJ.EA_ZW: //(xxx).w 8771: return disZW (sb); 8772: case XEiJ.EA_ZL: //(xxx).l 8773: return disZL (sb); 8774: case XEiJ.EA_PW: //d16(pc) 8775: return disPW (sb); 8776: case XEiJ.EA_PX: //d8(pc,rn.wl) 8777: return disPX (sb); 8778: case XEiJ.EA_IM: //#<data> 8779: return (ss == XEiJ.MPU_SS_BYTE ? disIMb (sb) : 8780: ss == XEiJ.MPU_SS_WORD ? disIMw (sb) : 8781: ss == XEiJ.MPU_SS_LONG ? disIMl (sb) : 8782: ss == 8 + 0 ? disIMl (sb) : 8783: ss == 8 + 1 ? disIMs (sb) : 8784: ss == 8 + 2 ? disIMx (sb) : 8785: ss == 8 + 3 ? disIMp (sb) : 8786: ss == 8 + 4 ? disIMw (sb) : 8787: ss == 8 + 5 ? disIMd (sb) : 8788: ss == 8 + 6 ? disIMb (sb) : 8789: ss == 8 + 7 ? disIMp (sb) : 8790: sb.append ("???")); 8791: } //switch 8792: return sb.append ("???"); 8793: } //disEa(StringBuilder,int,int) 8794: 8795: public static StringBuilder disDR (StringBuilder sb, int rrr) { 8796: return sb.append ('d').append ((char) ('0' + rrr)); 8797: } //disDR(StringBuilder,int) 8798: public static StringBuilder disAR (StringBuilder sb, int rrr) { 8799: return rrr < 7 ? sb.append ('a').append ((char) ('0' + rrr)) : sb.append ("sp"); 8800: } //disAR(StringBuilder,int) 8801: public static StringBuilder disRn (StringBuilder sb, int rnnn) { 8802: return rnnn < 15 ? sb.append (rnnn < 8 ? 'd' : 'a').append ((char) ('0' + (rnnn & 7))) : sb.append ("sp"); 8803: } //disRn(StringBuilder,int) 8804: public static StringBuilder disMM (StringBuilder sb, int rrr) { 8805: return disAR (sb.append ('('), rrr).append (')'); 8806: } //disMM(StringBuilder,int) 8807: public static StringBuilder disMP (StringBuilder sb, int rrr) { 8808: return disAR (sb.append ('('), rrr).append (")+"); 8809: } //disMP(StringBuilder,int) 8810: public static StringBuilder disMN (StringBuilder sb, int rrr) { 8811: return disAR (sb.append ("-("), rrr).append (')'); 8812: } //disMN(StringBuilder,int) 8813: public static StringBuilder disMW (StringBuilder sb, int rrr) { 8814: return disMM (disHex4 (sb, MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, disSupervisor)), rrr); 8815: } //disMW(StringBuilder,int) 8816: public static StringBuilder disMX (StringBuilder sb, int rrr) { 8817: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, disSupervisor); //拡張ワード 8818: if ((w & 0x0100) == 0) { //ブリーフフォーマット 8819: disHex2 (sb, w); //ディスプレースメント 8820: sb.append ('('); 8821: disAR (sb, rrr); //ベースレジスタ 8822: sb.append (','); 8823: disRn (sb, w >> 12).append ((w & 0x0800) == 0 ? ".w" : ".l"); //インデックス 8824: if ((w & 0x0600) != 0) { //スケールファクタあり 8825: sb.append ('*').append ((char) ('0' + (1 << (w >> 9 & 3)))); //スケールファクタ 8826: } 8827: sb.append (')'); 8828: } else { //フルフォーマット 8829: sb.append ('('); 8830: if ((w & 0x0003) != 0) { //メモリ間接あり 8831: sb.append ('['); 8832: } 8833: if ((w & 0x0020) != 0) { //ベースディスプレースメントあり 8834: if ((w & 0x0010) == 0) { //ワードベースディスプレースメント 8835: int bd = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, 8836: disSupervisor); 8837: disHex4 (sb, 8838: bd).append (".w"); 8839: } else { //ロングベースディスプレースメント 8840: int bd = MC68060.mmuPeekLongCode ((disPC += 4) - 4, 8841: disSupervisor); 8842: disProgramHex8 (sb, 8843: bd).append (".l"); 8844: } 8845: sb.append (','); 8846: } 8847: if ((w & 0x0080) != 0) { //ベースサプレスあり 8848: sb.append ('z'); 8849: } 8850: disAR (sb, rrr); //ベースレジスタ 8851: if ((w & 0x0004) == 0) { //プリインデックス 8852: if ((w & 0x0040) == 0) { //インデックスサプレスなし 8853: sb.append (','); 8854: disRn (sb, w >> 12).append ((w & 0x0800) == 0 ? ".w" : ".l"); 8855: if ((w & 0x0600) != 0) { //スケールファクタあり 8856: sb.append ('*').append ((char) ('0' + (1 << (w >> 9 & 3)))); //スケールファクタ 8857: } 8858: } 8859: } 8860: if ((w & 0x0003) != 0) { //メモリ間接あり 8861: sb.append (']'); 8862: } 8863: if ((w & 0x0004) != 0) { //ポストインデックス 8864: if ((w & 0x0040) == 0) { //インデックスサプレスなし 8865: sb.append (','); 8866: disRn (sb, w >> 12).append ((w & 0x0800) == 0 ? ".w" : ".l"); 8867: if ((w & 0x0600) != 0) { //スケールファクタあり 8868: sb.append ('*').append ((char) ('0' + (1 << (w >> 9 & 3)))); //スケールファクタ 8869: } 8870: } 8871: } 8872: if ((w & 0x0002) != 0) { //アウタディスプレースメントあり 8873: sb.append (','); 8874: if ((w & 0x0001) == 0) { //ワードアウタディスプレースメント 8875: int od = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, 8876: disSupervisor); 8877: disHex4 (sb, 8878: od).append (".w"); 8879: } else { //ロングアウタディスプレースメント 8880: int od = MC68060.mmuPeekLongCode ((disPC += 4) - 4, 8881: disSupervisor); 8882: disHex8 (sb, 8883: od).append (".l"); 8884: } 8885: } 8886: sb.append (')'); 8887: } 8888: return sb; 8889: } //disMX(StringBuilder,int) 8890: public static StringBuilder disZW (StringBuilder sb) { 8891: int z = MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, 8892: disSupervisor); 8893: return disHex4 (sb, 8894: z).append (".w"); 8895: } //disZW(StringBuilder) 8896: public static StringBuilder disZL (StringBuilder sb) { 8897: int z = MC68060.mmuPeekLongCode ((disPC += 4) - 4, 8898: disSupervisor); 8899: return disProgramHex8 (sb, 8900: z).append (".l"); 8901: } //disZL(StringBuilder) 8902: public static StringBuilder disOW (StringBuilder sb) { 8903: int b = disPC; //ベース 8904: int d = MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, 8905: disSupervisor); 8906: return disProgramHex8 (sb, 8907: b + d); 8908: } //disOW(StringBuilder) 8909: public static StringBuilder disOL (StringBuilder sb) { 8910: int b = disPC; //ベース 8911: int d = MC68060.mmuPeekLongCode ((disPC += 4) - 4, 8912: disSupervisor); 8913: return disProgramHex8 (sb, 8914: b + d); 8915: } //disOL(StringBuilder) 8916: public static StringBuilder disPW (StringBuilder sb) { 8917: return disOW (sb).append ("(pc)"); 8918: } //disPW(StringBuilder) 8919: public static StringBuilder disPX (StringBuilder sb) { 8920: int b = disPC; //ベース 8921: int w = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, 8922: disSupervisor); //拡張ワード 8923: if ((w & 0x0100) == 0) { //ブリーフフォーマット 8924: int d = (byte) w; //ディスプレースメント 8925: disProgramHex8 (sb, 8926: b + d); 8927: sb.append ('('); 8928: sb.append ("pc"); //ベースレジスタ 8929: sb.append (','); 8930: disRn (sb, w >> 12).append ((w & 0x0800) == 0 ? ".w" : ".l"); //インデックス 8931: if ((w & 0x0600) != 0) { //スケールファクタあり 8932: sb.append ('*').append ((char) ('0' + (1 << (w >> 9 & 3)))); //スケールファクタ 8933: } 8934: sb.append (')'); 8935: } else { //フルフォーマット 8936: sb.append ('('); 8937: if ((w & 0x0003) != 0) { //メモリ間接あり 8938: sb.append ('['); 8939: } 8940: if ((w & 0x0020) != 0) { //ベースディスプレースメントあり 8941: if ((w & 0x0080) != 0) { //ベースサプレスあり 8942: b = 0; 8943: } 8944: if ((w & 0x0010) == 0) { //ワードベースディスプレースメント 8945: int bd = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, 8946: disSupervisor); 8947: disProgramHex8 (sb, 8948: b + bd).append (".w"); 8949: } else { //ロングベースディスプレースメント 8950: int bd = MC68060.mmuPeekLongCode ((disPC += 4) - 4, 8951: disSupervisor); 8952: disProgramHex8 (sb, 8953: b + bd).append (".l"); 8954: } 8955: sb.append (','); 8956: } 8957: if ((w & 0x0080) != 0) { //ベースサプレスあり 8958: sb.append ('z'); 8959: } 8960: sb.append ("pc"); //ベースレジスタ 8961: if ((w & 0x0004) == 0) { //プリインデックス 8962: if ((w & 0x0040) == 0) { //インデックスサプレスなし 8963: sb.append (','); 8964: disRn (sb, w >> 12).append ((w & 0x0800) == 0 ? ".w" : ".l"); 8965: if ((w & 0x0600) != 0) { //スケールファクタあり 8966: sb.append ('*').append ((char) ('0' + (1 << (w >> 9 & 3)))); //スケールファクタ 8967: } 8968: } 8969: } 8970: if ((w & 0x0003) != 0) { //メモリ間接あり 8971: sb.append (']'); 8972: } 8973: if ((w & 0x0004) != 0) { //ポストインデックス 8974: if ((w & 0x0040) == 0) { //インデックスサプレスなし 8975: sb.append (','); 8976: disRn (sb, w >> 12).append ((w & 0x0800) == 0 ? ".w" : ".l"); 8977: if ((w & 0x0600) != 0) { //スケールファクタあり 8978: sb.append ('*').append ((char) ('0' + (1 << (w >> 9 & 3)))); //スケールファクタ 8979: } 8980: } 8981: } 8982: if ((w & 0x0002) != 0) { //アウタディスプレースメントあり 8983: sb.append (','); 8984: if ((w & 0x0001) == 0) { //ワードアウタディスプレースメント 8985: int od = MC68060.mmuPeekWordZeroCode ((disPC += 2) - 2, 8986: disSupervisor); 8987: disHex4 (sb, 8988: od).append (".w"); 8989: } else { //ロングアウタディスプレースメント 8990: int od = MC68060.mmuPeekLongCode ((disPC += 4) - 4, 8991: disSupervisor); 8992: disHex8 (sb, 8993: od).append (".l"); 8994: } 8995: } 8996: sb.append (')'); 8997: } 8998: return sb; 8999: } //disPX(StringBuilder) 9000: public static StringBuilder disIMb (StringBuilder sb) { 9001: return disHex2 (sb.append ('#'), MC68060.mmuPeekByteSignCode ((disPC += 2) - 1, disSupervisor)); 9002: } //disIMb(StringBuilder) 9003: public static StringBuilder disIMw (StringBuilder sb) { 9004: return disHex4 (sb.append ('#'), MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, disSupervisor)); 9005: } //disIMw(StringBuilder) 9006: public static StringBuilder disIMl (StringBuilder sb) { 9007: return disHex8 (sb.append ('#'), MC68060.mmuPeekLongCode ((disPC += 4) - 4, disSupervisor)); 9008: } //disIMl(StringBuilder) 9009: 9010: public static StringBuilder disIMs (StringBuilder sb) { 9011: int i = MC68060.mmuPeekLongCode ((disPC += 4) - 4, disSupervisor); 9012: return sb.append ("#").append (XEiJ.fpuBox.new EFP ().setf0 (i).toString ()); 9013: } //disIMs(StringBuilder) 9014: public static StringBuilder disIMd (StringBuilder sb) { 9015: long l = MC68060.mmuPeekQuadCode ((disPC += 8) - 8, disSupervisor); 9016: return sb.append ("#").append (XEiJ.fpuBox.new EFP ().setd01 (l).toString ()); 9017: } //disIMd(StringBuilder) 9018: public static StringBuilder disIMx (StringBuilder sb) { 9019: int i = MC68060.mmuPeekLongCode ((disPC += 4) - 4, disSupervisor); 9020: long l = MC68060.mmuPeekQuadCode ((disPC += 8) - 8, disSupervisor); 9021: return sb.append ("#").append (XEiJ.fpuBox.new EFP ().setx012 (i, l).toString ()); 9022: } //disIMx(StringBuilder) 9023: public static StringBuilder disIMp (StringBuilder sb) { 9024: int i = MC68060.mmuPeekLongCode ((disPC += 4) - 4, disSupervisor); 9025: long l = MC68060.mmuPeekQuadCode ((disPC += 8) - 8, disSupervisor); 9026: return sb.append ("#").append (XEiJ.fpuBox.new EFP ().setp012 (i, l).toString ()); 9027: } //disIMp(StringBuilder) 9028: 9029: public static StringBuilder disIM3 (StringBuilder sb, int qqq) { 9030: return disHex2 (sb.append ('#'), ((qqq & 7) - 1 & 7) + 1); 9031: } //disIM3(StringBuilder,int) 9032: public static StringBuilder disIM8 (StringBuilder sb, int data) { 9033: return disHex2 (sb.append ('#'), data); 9034: } //disIM8(StringBuilder,int) 9035: 9036: //レジスタリスト 9037: public static StringBuilder disLst (StringBuilder sb, boolean reverse) { 9038: int invert = reverse ? 0b1111 : 0b0000; 9039: int x = MC68060.mmuPeekWordSignCode ((disPC += 2) - 2, disSupervisor); 9040: int from = -1; //開始レジスタ番号 9041: int to = -1; //終了レジスタ番号 9042: for (int i = 0; i <= 15; i++) { 9043: if ((x & (1 << (i ^ invert))) != 0) { //転送する 9044: if (from < 0) { //ここから 9045: from = i; 9046: } 9047: if ((i & 7) == 7 || (x & (1 << (i + 1 ^ invert))) == 0) { //ここまで 9048: if (to >= 0) { 9049: sb.append ('/'); 9050: } 9051: sb.append (from < 8 ? 'd' : 'a').append ((char) ('0' + (from & 7))); 9052: to = i; 9053: if (from < to) { 9054: sb.append (to < 8 ? "-d" : "-a").append ((char) ('0' + (to & 7))); 9055: } 9056: from = -1; 9057: } 9058: } 9059: } 9060: if (to < 0) { //転送するレジスタがなかった 9061: sb.append ("???"); 9062: } 9063: return sb; 9064: } //disLst(StringBuilder,int) 9065: 9066: public static StringBuilder disFPLst (StringBuilder sb, int l) { 9067: l <<= 24; 9068: if (false) { 9069: for (int i = 0; l != 0; i++, l <<= 1) { 9070: if (l < 0) { 9071: disFPn (sb, i); 9072: if (l << 1 != 0) { 9073: sb.append ('/'); 9074: } 9075: } 9076: } 9077: } else { 9078: int s = -1; 9079: for (int i = 0; l != 0; i++, l <<= 1) { 9080: if (l < 0) { 9081: if (s < 0) { //開始 9082: s = i; 9083: } 9084: if ((l ^ l << 1) < 0) { //終了 9085: disFPn (sb, s); 9086: if (s < i) { 9087: disFPn (sb.append ('-'), i); 9088: } 9089: if (l << 1 != 0) { 9090: sb.append ('/'); 9091: } 9092: s = -1; 9093: } 9094: } 9095: } 9096: } 9097: return sb; 9098: } //disFPLst(StringBuilder,int) 9099: 9100: public static StringBuilder disFPLmn (StringBuilder sb, int l) { 9101: l &= 255; 9102: if (false) { 9103: for (int i = 0; l != 0; i++, l >>>= 1) { 9104: if ((l & 1) != 0) { 9105: disFPn (sb, i); 9106: if (l >>> 1 != 0) { 9107: sb.append ('/'); 9108: } 9109: } 9110: } 9111: } else { 9112: int s = -1; 9113: for (int i = 0; l != 0; i++, l >>>= 1) { 9114: if ((l & 1) != 0) { 9115: if (s < 0) { //開始 9116: s = i; 9117: } 9118: if (((l ^ l >>> 1) & 1) != 0) { //終了 9119: disFPn (sb, s); 9120: if (s < i) { 9121: disFPn (sb.append ('-'), i); 9122: } 9123: if (l >>> 1 != 0) { 9124: sb.append ('/'); 9125: } 9126: s = -1; 9127: } 9128: } 9129: } 9130: } 9131: return sb; 9132: } //disFPLmn(StringBuilder,int) 9133: 9134: //ビットフィールド 9135: public static StringBuilder disBF (StringBuilder sb, int w) { 9136: sb.append ('{'); 9137: if ((w & 0b0000_100_000_000_000) == 0) { 9138: disHex2 (sb, w >> 6 & 31); 9139: } else { 9140: disDR (sb, w >> 6 & 7); 9141: } 9142: sb.append (':'); 9143: if ((w & 0b0000_000_000_100_000) == 0) { 9144: disHex2 (sb, (w - 1 & 31) + 1); 9145: } else { 9146: disDR (sb, w & 7); 9147: } 9148: return sb.append ('}'); 9149: } //disBF(StringBuilder,int) 9150: 9151: // ニモニックと空白 9152: public static StringBuilder disOp2 (StringBuilder sb, String mn, String sz) { 9153: return sb.append (mn).append (sz).append (" ", Math.min (7, mn.length () + sz.length ()), 8); 9154: } //disOp2(StringBuilder,String,String) 9155: public static StringBuilder disOp3 (StringBuilder sb, String mn, String cc, String sz) { 9156: return sb.append (mn).append (cc).append (sz).append (" ", Math.min (7, mn.length () + cc.length () + sz.length ()), 8); 9157: } //disOp3(StringBuilder,String,String,String) 9158: 9159: // '$'と2桁の16進数 9160: public static StringBuilder disHex2 (StringBuilder sb, int d) { 9161: return XEiJ.fmtHex2 (sb.append ('$'), d); 9162: } //disHex2(StringBuilder,int) 9163: 9164: // '$'と4桁の16進数 9165: public static StringBuilder disHex4 (StringBuilder sb, int d) { 9166: return XEiJ.fmtHex4 (sb.append ('$'), d); 9167: } //disHex4(StringBuilder,int) 9168: 9169: // '$'と8桁の16進数 9170: public static StringBuilder disHex8 (StringBuilder sb, int d) { 9171: return XEiJ.fmtHex8 (sb.append ('$'), d); 9172: } //disHex8(StringBuilder,int) 9173: 9174: // 浮動小数点レジスタ 9175: public static StringBuilder disFPn (StringBuilder sb, int n) { 9176: return sb.append ("fp").append (n); 9177: } //disFPn(StringBuilder,int) 9178: 9179: } //class Disassembler 9180: 9181: 9182: