DGen/SDL
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Classes | Macros | Functions | Variables
m68kdasm.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "m68k.h"

Classes

struct  opcode_struct

Macros

#define DECL_SPEC
#define uint   unsigned int
#define BIT_0(A)   ((A) & 0x00000001)
#define BIT_1(A)   ((A) & 0x00000002)
#define BIT_2(A)   ((A) & 0x00000004)
#define BIT_3(A)   ((A) & 0x00000008)
#define BIT_4(A)   ((A) & 0x00000010)
#define BIT_5(A)   ((A) & 0x00000020)
#define BIT_6(A)   ((A) & 0x00000040)
#define BIT_7(A)   ((A) & 0x00000080)
#define BIT_8(A)   ((A) & 0x00000100)
#define BIT_9(A)   ((A) & 0x00000200)
#define BIT_A(A)   ((A) & 0x00000400)
#define BIT_B(A)   ((A) & 0x00000800)
#define BIT_C(A)   ((A) & 0x00001000)
#define BIT_D(A)   ((A) & 0x00002000)
#define BIT_E(A)   ((A) & 0x00004000)
#define BIT_F(A)   ((A) & 0x00008000)
#define BIT_10(A)   ((A) & 0x00010000)
#define BIT_11(A)   ((A) & 0x00020000)
#define BIT_12(A)   ((A) & 0x00040000)
#define BIT_13(A)   ((A) & 0x00080000)
#define BIT_14(A)   ((A) & 0x00100000)
#define BIT_15(A)   ((A) & 0x00200000)
#define BIT_16(A)   ((A) & 0x00400000)
#define BIT_17(A)   ((A) & 0x00800000)
#define BIT_18(A)   ((A) & 0x01000000)
#define BIT_19(A)   ((A) & 0x02000000)
#define BIT_1A(A)   ((A) & 0x04000000)
#define BIT_1B(A)   ((A) & 0x08000000)
#define BIT_1C(A)   ((A) & 0x10000000)
#define BIT_1D(A)   ((A) & 0x20000000)
#define BIT_1E(A)   ((A) & 0x40000000)
#define BIT_1F(A)   ((A) & 0x80000000)
#define TYPE_68000   1
#define TYPE_68008   2
#define TYPE_68010   4
#define TYPE_68020   8
#define TYPE_68030   16
#define TYPE_68040   32
#define M68000_ONLY   (TYPE_68000 | TYPE_68008)
#define M68010_ONLY   TYPE_68010
#define M68010_LESS   (TYPE_68000 | TYPE_68008 | TYPE_68010)
#define M68010_PLUS   (TYPE_68010 | TYPE_68020 | TYPE_68030 | TYPE_68040)
#define M68020_ONLY   TYPE_68020
#define M68020_LESS   (TYPE_68010 | TYPE_68020)
#define M68020_PLUS   (TYPE_68020 | TYPE_68030 | TYPE_68040)
#define M68030_ONLY   TYPE_68030
#define M68030_LESS   (TYPE_68010 | TYPE_68020 | TYPE_68030)
#define M68030_PLUS   (TYPE_68030 | TYPE_68040)
#define M68040_PLUS   TYPE_68040
#define EXT_8BIT_DISPLACEMENT(A)   ((A)&0xff)
#define EXT_FULL(A)   BIT_8(A)
#define EXT_EFFECTIVE_ZERO(A)   (((A)&0xe4) == 0xc4 || ((A)&0xe2) == 0xc0)
#define EXT_BASE_REGISTER_PRESENT(A)   (!BIT_7(A))
#define EXT_INDEX_REGISTER_PRESENT(A)   (!BIT_6(A))
#define EXT_INDEX_REGISTER(A)   (((A)>>12)&7)
#define EXT_INDEX_PRE_POST(A)   (EXT_INDEX_PRESENT(A) && (A)&3)
#define EXT_INDEX_PRE(A)   (EXT_INDEX_PRESENT(A) && ((A)&7) < 4 && ((A)&7) != 0)
#define EXT_INDEX_POST(A)   (EXT_INDEX_PRESENT(A) && ((A)&7) > 4)
#define EXT_INDEX_SCALE(A)   (((A)>>9)&3)
#define EXT_INDEX_LONG(A)   BIT_B(A)
#define EXT_INDEX_AR(A)   BIT_F(A)
#define EXT_BASE_DISPLACEMENT_PRESENT(A)   (((A)&0x30) > 0x10)
#define EXT_BASE_DISPLACEMENT_WORD(A)   (((A)&0x30) == 0x20)
#define EXT_BASE_DISPLACEMENT_LONG(A)   (((A)&0x30) == 0x30)
#define EXT_OUTER_DISPLACEMENT_PRESENT(A)   (((A)&3) > 1 && ((A)&0x47) < 0x44)
#define EXT_OUTER_DISPLACEMENT_WORD(A)   (((A)&3) == 2 && ((A)&0x47) < 0x44)
#define EXT_OUTER_DISPLACEMENT_LONG(A)   (((A)&3) == 3 && ((A)&0x47) < 0x44)
#define SET_OPCODE_FLAGS(x)
#define COMBINE_OPCODE_FLAGS(x)   (x)
#define LIMIT_CPU_TYPES(ALLOWED_CPU_TYPES)
#define read_imm_8()   dasm_read_imm_8(2)
#define read_imm_16()   dasm_read_imm_16(2)
#define read_imm_32()   dasm_read_imm_32(4)
#define peek_imm_8()   dasm_read_imm_8(0)
#define peek_imm_16()   dasm_read_imm_16(0)
#define peek_imm_32()   dasm_read_imm_32(0)
#define get_ea_mode_str_8(instruction)   get_ea_mode_str(instruction, 0)
#define get_ea_mode_str_16(instruction)   get_ea_mode_str(instruction, 1)
#define get_ea_mode_str_32(instruction)   get_ea_mode_str(instruction, 2)
#define get_imm_str_s8()   get_imm_str_s(0)
#define get_imm_str_s16()   get_imm_str_s(1)
#define get_imm_str_s32()   get_imm_str_s(2)
#define get_imm_str_u8()   get_imm_str_u(0)
#define get_imm_str_u16()   get_imm_str_u(1)
#define get_imm_str_u32()   get_imm_str_u(2)

Functions

static int make_int_8 (int value)
static int make_int_16 (int value)
static char * make_signed_hex_str_8 (uint val)
static char * make_signed_hex_str_16 (uint val)
static char * make_signed_hex_str_32 (uint val)
static char * get_ea_mode_str (uint instruction, uint size)
char * get_ea_mode_str_8 (uint instruction)
char * get_ea_mode_str_16 (uint instruction)
char * get_ea_mode_str_32 (uint instruction)
static char * get_imm_str_s (uint size)
static char * get_imm_str_u (uint size)
static void build_opcode_table (void)
static int valid_ea (uint opcode, uint mask)
static int DECL_SPEC compare_nof_true_bits (const void *aptr, const void *bptr)
static uint dasm_read_imm_8 (uint advance)
static uint dasm_read_imm_16 (uint advance)
static uint dasm_read_imm_32 (uint advance)
static void d68000_illegal (void)
static void d68000_1010 (void)
static void d68000_1111 (void)
static void d68000_abcd_rr (void)
static void d68000_abcd_mm (void)
static void d68000_add_er_8 (void)
static void d68000_add_er_16 (void)
static void d68000_add_er_32 (void)
static void d68000_add_re_8 (void)
static void d68000_add_re_16 (void)
static void d68000_add_re_32 (void)
static void d68000_adda_16 (void)
static void d68000_adda_32 (void)
static void d68000_addi_8 (void)
static void d68000_addi_16 (void)
static void d68000_addi_32 (void)
static void d68000_addq_8 (void)
static void d68000_addq_16 (void)
static void d68000_addq_32 (void)
static void d68000_addx_rr_8 (void)
static void d68000_addx_rr_16 (void)
static void d68000_addx_rr_32 (void)
static void d68000_addx_mm_8 (void)
static void d68000_addx_mm_16 (void)
static void d68000_addx_mm_32 (void)
static void d68000_and_er_8 (void)
static void d68000_and_er_16 (void)
static void d68000_and_er_32 (void)
static void d68000_and_re_8 (void)
static void d68000_and_re_16 (void)
static void d68000_and_re_32 (void)
static void d68000_andi_8 (void)
static void d68000_andi_16 (void)
static void d68000_andi_32 (void)
static void d68000_andi_to_ccr (void)
static void d68000_andi_to_sr (void)
static void d68000_asr_s_8 (void)
static void d68000_asr_s_16 (void)
static void d68000_asr_s_32 (void)
static void d68000_asr_r_8 (void)
static void d68000_asr_r_16 (void)
static void d68000_asr_r_32 (void)
static void d68000_asr_ea (void)
static void d68000_asl_s_8 (void)
static void d68000_asl_s_16 (void)
static void d68000_asl_s_32 (void)
static void d68000_asl_r_8 (void)
static void d68000_asl_r_16 (void)
static void d68000_asl_r_32 (void)
static void d68000_asl_ea (void)
static void d68000_bcc_8 (void)
static void d68000_bcc_16 (void)
static void d68020_bcc_32 (void)
static void d68000_bchg_r (void)
static void d68000_bchg_s (void)
static void d68000_bclr_r (void)
static void d68000_bclr_s (void)
static void d68010_bkpt (void)
static void d68020_bfchg (void)
static void d68020_bfclr (void)
static void d68020_bfexts (void)
static void d68020_bfextu (void)
static void d68020_bfffo (void)
static void d68020_bfins (void)
static void d68020_bfset (void)
static void d68020_bftst (void)
static void d68000_bra_8 (void)
static void d68000_bra_16 (void)
static void d68020_bra_32 (void)
static void d68000_bset_r (void)
static void d68000_bset_s (void)
static void d68000_bsr_8 (void)
static void d68000_bsr_16 (void)
static void d68020_bsr_32 (void)
static void d68000_btst_r (void)
static void d68000_btst_s (void)
static void d68020_callm (void)
static void d68020_cas_8 (void)
static void d68020_cas_16 (void)
static void d68020_cas_32 (void)
static void d68020_cas2_16 (void)
static void d68020_cas2_32 (void)
static void d68000_chk_16 (void)
static void d68020_chk_32 (void)
static void d68020_chk2_cmp2_8 (void)
static void d68020_chk2_cmp2_16 (void)
static void d68020_chk2_cmp2_32 (void)
static void d68040_cinv (void)
static void d68000_clr_8 (void)
static void d68000_clr_16 (void)
static void d68000_clr_32 (void)
static void d68000_cmp_8 (void)
static void d68000_cmp_16 (void)
static void d68000_cmp_32 (void)
static void d68000_cmpa_16 (void)
static void d68000_cmpa_32 (void)
static void d68000_cmpi_8 (void)
static void d68020_cmpi_pcdi_8 (void)
static void d68020_cmpi_pcix_8 (void)
static void d68000_cmpi_16 (void)
static void d68020_cmpi_pcdi_16 (void)
static void d68020_cmpi_pcix_16 (void)
static void d68000_cmpi_32 (void)
static void d68020_cmpi_pcdi_32 (void)
static void d68020_cmpi_pcix_32 (void)
static void d68000_cmpm_8 (void)
static void d68000_cmpm_16 (void)
static void d68000_cmpm_32 (void)
static void d68020_cpbcc_16 (void)
static void d68020_cpbcc_32 (void)
static void d68020_cpdbcc (void)
static void d68020_cpgen (void)
static void d68020_cprestore (void)
static void d68020_cpsave (void)
static void d68020_cpscc (void)
static void d68020_cptrapcc_0 (void)
static void d68020_cptrapcc_16 (void)
static void d68020_cptrapcc_32 (void)
static void d68040_cpush (void)
static void d68000_dbra (void)
static void d68000_dbcc (void)
static void d68000_divs (void)
static void d68000_divu (void)
static void d68020_divl (void)
static void d68000_eor_8 (void)
static void d68000_eor_16 (void)
static void d68000_eor_32 (void)
static void d68000_eori_8 (void)
static void d68000_eori_16 (void)
static void d68000_eori_32 (void)
static void d68000_eori_to_ccr (void)
static void d68000_eori_to_sr (void)
static void d68000_exg_dd (void)
static void d68000_exg_aa (void)
static void d68000_exg_da (void)
static void d68000_ext_16 (void)
static void d68000_ext_32 (void)
static void d68020_extb_32 (void)
static void d68040_fpu (void)
static void d68000_jmp (void)
static void d68000_jsr (void)
static void d68000_lea (void)
static void d68000_link_16 (void)
static void d68020_link_32 (void)
static void d68000_lsr_s_8 (void)
static void d68000_lsr_s_16 (void)
static void d68000_lsr_s_32 (void)
static void d68000_lsr_r_8 (void)
static void d68000_lsr_r_16 (void)
static void d68000_lsr_r_32 (void)
static void d68000_lsr_ea (void)
static void d68000_lsl_s_8 (void)
static void d68000_lsl_s_16 (void)
static void d68000_lsl_s_32 (void)
static void d68000_lsl_r_8 (void)
static void d68000_lsl_r_16 (void)
static void d68000_lsl_r_32 (void)
static void d68000_lsl_ea (void)
static void d68000_move_8 (void)
static void d68000_move_16 (void)
static void d68000_move_32 (void)
static void d68000_movea_16 (void)
static void d68000_movea_32 (void)
static void d68000_move_to_ccr (void)
static void d68010_move_fr_ccr (void)
static void d68000_move_fr_sr (void)
static void d68000_move_to_sr (void)
static void d68000_move_fr_usp (void)
static void d68000_move_to_usp (void)
static void d68010_movec (void)
static void d68000_movem_pd_16 (void)
static void d68000_movem_pd_32 (void)
static void d68000_movem_er_16 (void)
static void d68000_movem_er_32 (void)
static void d68000_movem_re_16 (void)
static void d68000_movem_re_32 (void)
static void d68000_movep_re_16 (void)
static void d68000_movep_re_32 (void)
static void d68000_movep_er_16 (void)
static void d68000_movep_er_32 (void)
static void d68010_moves_8 (void)
static void d68010_moves_16 (void)
static void d68010_moves_32 (void)
static void d68000_moveq (void)
static void d68040_move16_pi_pi (void)
static void d68040_move16_pi_al (void)
static void d68040_move16_al_pi (void)
static void d68040_move16_ai_al (void)
static void d68040_move16_al_ai (void)
static void d68000_muls (void)
static void d68000_mulu (void)
static void d68020_mull (void)
static void d68000_nbcd (void)
static void d68000_neg_8 (void)
static void d68000_neg_16 (void)
static void d68000_neg_32 (void)
static void d68000_negx_8 (void)
static void d68000_negx_16 (void)
static void d68000_negx_32 (void)
static void d68000_nop (void)
static void d68000_not_8 (void)
static void d68000_not_16 (void)
static void d68000_not_32 (void)
static void d68000_or_er_8 (void)
static void d68000_or_er_16 (void)
static void d68000_or_er_32 (void)
static void d68000_or_re_8 (void)
static void d68000_or_re_16 (void)
static void d68000_or_re_32 (void)
static void d68000_ori_8 (void)
static void d68000_ori_16 (void)
static void d68000_ori_32 (void)
static void d68000_ori_to_ccr (void)
static void d68000_ori_to_sr (void)
static void d68020_pack_rr (void)
static void d68020_pack_mm (void)
static void d68000_pea (void)
static void d68040_pflush (void)
static void d68000_reset (void)
static void d68000_ror_s_8 (void)
static void d68000_ror_s_16 (void)
static void d68000_ror_s_32 (void)
static void d68000_ror_r_8 (void)
static void d68000_ror_r_16 (void)
static void d68000_ror_r_32 (void)
static void d68000_ror_ea (void)
static void d68000_rol_s_8 (void)
static void d68000_rol_s_16 (void)
static void d68000_rol_s_32 (void)
static void d68000_rol_r_8 (void)
static void d68000_rol_r_16 (void)
static void d68000_rol_r_32 (void)
static void d68000_rol_ea (void)
static void d68000_roxr_s_8 (void)
static void d68000_roxr_s_16 (void)
static void d68000_roxr_s_32 (void)
static void d68000_roxr_r_8 (void)
static void d68000_roxr_r_16 (void)
static void d68000_roxr_r_32 (void)
static void d68000_roxr_ea (void)
static void d68000_roxl_s_8 (void)
static void d68000_roxl_s_16 (void)
static void d68000_roxl_s_32 (void)
static void d68000_roxl_r_8 (void)
static void d68000_roxl_r_16 (void)
static void d68000_roxl_r_32 (void)
static void d68000_roxl_ea (void)
static void d68010_rtd (void)
static void d68000_rte (void)
static void d68020_rtm (void)
static void d68000_rtr (void)
static void d68000_rts (void)
static void d68000_sbcd_rr (void)
static void d68000_sbcd_mm (void)
static void d68000_scc (void)
static void d68000_stop (void)
static void d68000_sub_er_8 (void)
static void d68000_sub_er_16 (void)
static void d68000_sub_er_32 (void)
static void d68000_sub_re_8 (void)
static void d68000_sub_re_16 (void)
static void d68000_sub_re_32 (void)
static void d68000_suba_16 (void)
static void d68000_suba_32 (void)
static void d68000_subi_8 (void)
static void d68000_subi_16 (void)
static void d68000_subi_32 (void)
static void d68000_subq_8 (void)
static void d68000_subq_16 (void)
static void d68000_subq_32 (void)
static void d68000_subx_rr_8 (void)
static void d68000_subx_rr_16 (void)
static void d68000_subx_rr_32 (void)
static void d68000_subx_mm_8 (void)
static void d68000_subx_mm_16 (void)
static void d68000_subx_mm_32 (void)
static void d68000_swap (void)
static void d68000_tas (void)
static void d68000_trap (void)
static void d68020_trapcc_0 (void)
static void d68020_trapcc_16 (void)
static void d68020_trapcc_32 (void)
static void d68000_trapv (void)
static void d68000_tst_8 (void)
static void d68020_tst_pcdi_8 (void)
static void d68020_tst_pcix_8 (void)
static void d68020_tst_i_8 (void)
static void d68000_tst_16 (void)
static void d68020_tst_a_16 (void)
static void d68020_tst_pcdi_16 (void)
static void d68020_tst_pcix_16 (void)
static void d68020_tst_i_16 (void)
static void d68000_tst_32 (void)
static void d68020_tst_a_32 (void)
static void d68020_tst_pcdi_32 (void)
static void d68020_tst_pcix_32 (void)
static void d68020_tst_i_32 (void)
static void d68000_unlk (void)
static void d68020_unpk_rr (void)
static void d68020_unpk_mm (void)
unsigned int m68k_disassemble (char *str_buff, unsigned int pc, unsigned int cpu_type)
char * m68ki_disassemble_quick (unsigned int pc, unsigned int cpu_type)
unsigned int m68k_disassemble_raw (char *str_buff, unsigned int pc, const unsigned char *opdata, const unsigned char *argdata, unsigned int cpu_type)
unsigned int m68k_is_valid_instruction (unsigned int instruction, unsigned int cpu_type)

Variables

static void(* g_instruction_table [0x10000])(void)
static int g_initialized = 0
static unsigned int g_address_mask = 0xffffffff
static char g_dasm_str [100]
static char g_helper_str [100]
static uint g_cpu_pc
static uint g_cpu_ir
static uint g_cpu_type
static uint g_opcode_type
static const unsigned char * g_rawop
static uint g_rawbasepc
static uint g_3bit_qdata_table [8] = {8, 1, 2, 3, 4, 5, 6, 7}
static uint g_5bit_data_table [32]
static const char * g_cc [16]
static const char * g_cpcc [64]
static opcode_struct g_opcode_info []

Macro Definition Documentation

#define BIT_0 (   A)    ((A) & 0x00000001)
#define BIT_1 (   A)    ((A) & 0x00000002)
#define BIT_10 (   A)    ((A) & 0x00010000)
#define BIT_11 (   A)    ((A) & 0x00020000)
#define BIT_12 (   A)    ((A) & 0x00040000)
#define BIT_13 (   A)    ((A) & 0x00080000)
#define BIT_14 (   A)    ((A) & 0x00100000)
#define BIT_15 (   A)    ((A) & 0x00200000)
#define BIT_16 (   A)    ((A) & 0x00400000)
#define BIT_17 (   A)    ((A) & 0x00800000)
#define BIT_18 (   A)    ((A) & 0x01000000)
#define BIT_19 (   A)    ((A) & 0x02000000)
#define BIT_1A (   A)    ((A) & 0x04000000)
#define BIT_1B (   A)    ((A) & 0x08000000)
#define BIT_1C (   A)    ((A) & 0x10000000)
#define BIT_1D (   A)    ((A) & 0x20000000)
#define BIT_1E (   A)    ((A) & 0x40000000)
#define BIT_1F (   A)    ((A) & 0x80000000)
#define BIT_2 (   A)    ((A) & 0x00000004)
#define BIT_3 (   A)    ((A) & 0x00000008)
#define BIT_4 (   A)    ((A) & 0x00000010)
#define BIT_5 (   A)    ((A) & 0x00000020)
#define BIT_6 (   A)    ((A) & 0x00000040)
#define BIT_7 (   A)    ((A) & 0x00000080)
#define BIT_8 (   A)    ((A) & 0x00000100)
#define BIT_9 (   A)    ((A) & 0x00000200)
#define BIT_A (   A)    ((A) & 0x00000400)
#define BIT_B (   A)    ((A) & 0x00000800)
#define BIT_C (   A)    ((A) & 0x00001000)
#define BIT_D (   A)    ((A) & 0x00002000)
#define BIT_E (   A)    ((A) & 0x00004000)
#define BIT_F (   A)    ((A) & 0x00008000)
#define COMBINE_OPCODE_FLAGS (   x)    (x)
#define DECL_SPEC
#define EXT_8BIT_DISPLACEMENT (   A)    ((A)&0xff)
#define EXT_BASE_DISPLACEMENT_LONG (   A)    (((A)&0x30) == 0x30)
#define EXT_BASE_DISPLACEMENT_PRESENT (   A)    (((A)&0x30) > 0x10)
#define EXT_BASE_DISPLACEMENT_WORD (   A)    (((A)&0x30) == 0x20)
#define EXT_BASE_REGISTER_PRESENT (   A)    (!BIT_7(A))
#define EXT_EFFECTIVE_ZERO (   A)    (((A)&0xe4) == 0xc4 || ((A)&0xe2) == 0xc0)
#define EXT_FULL (   A)    BIT_8(A)
#define EXT_INDEX_AR (   A)    BIT_F(A)
#define EXT_INDEX_LONG (   A)    BIT_B(A)
#define EXT_INDEX_POST (   A)    (EXT_INDEX_PRESENT(A) && ((A)&7) > 4)
#define EXT_INDEX_PRE (   A)    (EXT_INDEX_PRESENT(A) && ((A)&7) < 4 && ((A)&7) != 0)
#define EXT_INDEX_PRE_POST (   A)    (EXT_INDEX_PRESENT(A) && (A)&3)
#define EXT_INDEX_REGISTER (   A)    (((A)>>12)&7)
#define EXT_INDEX_REGISTER_PRESENT (   A)    (!BIT_6(A))
#define EXT_INDEX_SCALE (   A)    (((A)>>9)&3)
#define EXT_OUTER_DISPLACEMENT_LONG (   A)    (((A)&3) == 3 && ((A)&0x47) < 0x44)
#define EXT_OUTER_DISPLACEMENT_PRESENT (   A)    (((A)&3) > 1 && ((A)&0x47) < 0x44)
#define EXT_OUTER_DISPLACEMENT_WORD (   A)    (((A)&3) == 2 && ((A)&0x47) < 0x44)
#define get_ea_mode_str_16 (   instruction)    get_ea_mode_str(instruction, 1)
#define get_ea_mode_str_32 (   instruction)    get_ea_mode_str(instruction, 2)
#define get_ea_mode_str_8 (   instruction)    get_ea_mode_str(instruction, 0)
char * get_imm_str_s16 ( )    get_imm_str_s(1)
char * get_imm_str_s32 ( )    get_imm_str_s(2)
char * get_imm_str_s8 ( )    get_imm_str_s(0)
#define get_imm_str_u16 ( )    get_imm_str_u(1)
#define get_imm_str_u32 ( )    get_imm_str_u(2)
#define get_imm_str_u8 ( )    get_imm_str_u(0)
#define LIMIT_CPU_TYPES (   ALLOWED_CPU_TYPES)
Value:
if(!(g_cpu_type & ALLOWED_CPU_TYPES)) \
{ \
if((g_cpu_ir & 0xf000) == 0xf000) \
d68000_1111(); \
else d68000_illegal(); \
return; \
}
#define M68000_ONLY   (TYPE_68000 | TYPE_68008)
#define M68010_LESS   (TYPE_68000 | TYPE_68008 | TYPE_68010)
#define M68010_ONLY   TYPE_68010
#define M68010_PLUS   (TYPE_68010 | TYPE_68020 | TYPE_68030 | TYPE_68040)
#define M68020_LESS   (TYPE_68010 | TYPE_68020)
#define M68020_ONLY   TYPE_68020
#define M68020_PLUS   (TYPE_68020 | TYPE_68030 | TYPE_68040)
#define M68030_LESS   (TYPE_68010 | TYPE_68020 | TYPE_68030)
#define M68030_ONLY   TYPE_68030
#define M68030_PLUS   (TYPE_68030 | TYPE_68040)
#define M68040_PLUS   TYPE_68040
uint peek_imm_16 ( )    dasm_read_imm_16(0)
uint peek_imm_32 ( )    dasm_read_imm_32(0)
uint peek_imm_8 ( )    dasm_read_imm_8(0)
uint read_imm_16 ( )    dasm_read_imm_16(2)
uint read_imm_32 ( )    dasm_read_imm_32(4)
uint read_imm_8 ( )    dasm_read_imm_8(2)
#define SET_OPCODE_FLAGS (   x)
#define TYPE_68000   1
#define TYPE_68008   2
#define TYPE_68010   4
#define TYPE_68020   8
#define TYPE_68030   16
#define TYPE_68040   32
#define uint   unsigned int

Function Documentation

static void build_opcode_table ( void  )
static
static int DECL_SPEC compare_nof_true_bits ( const void *  aptr,
const void *  bptr 
)
static
static void d68000_1010 ( void  )
static
static void d68000_1111 ( void  )
static
static void d68000_abcd_mm ( void  )
static
static void d68000_abcd_rr ( void  )
static
static void d68000_add_er_16 ( void  )
static
static void d68000_add_er_32 ( void  )
static
static void d68000_add_er_8 ( void  )
static
static void d68000_add_re_16 ( void  )
static
static void d68000_add_re_32 ( void  )
static
static void d68000_add_re_8 ( void  )
static
static void d68000_adda_16 ( void  )
static
static void d68000_adda_32 ( void  )
static
static void d68000_addi_16 ( void  )
static
static void d68000_addi_32 ( void  )
static
static void d68000_addi_8 ( void  )
static
static void d68000_addq_16 ( void  )
static
static void d68000_addq_32 ( void  )
static
static void d68000_addq_8 ( void  )
static
static void d68000_addx_mm_16 ( void  )
static
static void d68000_addx_mm_32 ( void  )
static
static void d68000_addx_mm_8 ( void  )
static
static void d68000_addx_rr_16 ( void  )
static
static void d68000_addx_rr_32 ( void  )
static
static void d68000_addx_rr_8 ( void  )
static
static void d68000_and_er_16 ( void  )
static
static void d68000_and_er_32 ( void  )
static
static void d68000_and_er_8 ( void  )
static
static void d68000_and_re_16 ( void  )
static
static void d68000_and_re_32 ( void  )
static
static void d68000_and_re_8 ( void  )
static
static void d68000_andi_16 ( void  )
static
static void d68000_andi_32 ( void  )
static
static void d68000_andi_8 ( void  )
static
static void d68000_andi_to_ccr ( void  )
static
static void d68000_andi_to_sr ( void  )
static
static void d68000_asl_ea ( void  )
static
static void d68000_asl_r_16 ( void  )
static
static void d68000_asl_r_32 ( void  )
static
static void d68000_asl_r_8 ( void  )
static
static void d68000_asl_s_16 ( void  )
static
static void d68000_asl_s_32 ( void  )
static
static void d68000_asl_s_8 ( void  )
static
static void d68000_asr_ea ( void  )
static
static void d68000_asr_r_16 ( void  )
static
static void d68000_asr_r_32 ( void  )
static
static void d68000_asr_r_8 ( void  )
static
static void d68000_asr_s_16 ( void  )
static
static void d68000_asr_s_32 ( void  )
static
static void d68000_asr_s_8 ( void  )
static
static void d68000_bcc_16 ( void  )
static
static void d68000_bcc_8 ( void  )
static
static void d68000_bchg_r ( void  )
static
static void d68000_bchg_s ( void  )
static
static void d68000_bclr_r ( void  )
static
static void d68000_bclr_s ( void  )
static
static void d68000_bra_16 ( void  )
static
static void d68000_bra_8 ( void  )
static
static void d68000_bset_r ( void  )
static
static void d68000_bset_s ( void  )
static
static void d68000_bsr_16 ( void  )
static
static void d68000_bsr_8 ( void  )
static
static void d68000_btst_r ( void  )
static
static void d68000_btst_s ( void  )
static
static void d68000_chk_16 ( void  )
static
static void d68000_clr_16 ( void  )
static
static void d68000_clr_32 ( void  )
static
static void d68000_clr_8 ( void  )
static
static void d68000_cmp_16 ( void  )
static
static void d68000_cmp_32 ( void  )
static
static void d68000_cmp_8 ( void  )
static
static void d68000_cmpa_16 ( void  )
static
static void d68000_cmpa_32 ( void  )
static
static void d68000_cmpi_16 ( void  )
static
static void d68000_cmpi_32 ( void  )
static
static void d68000_cmpi_8 ( void  )
static
static void d68000_cmpm_16 ( void  )
static
static void d68000_cmpm_32 ( void  )
static
static void d68000_cmpm_8 ( void  )
static
static void d68000_dbcc ( void  )
static
static void d68000_dbra ( void  )
static
static void d68000_divs ( void  )
static
static void d68000_divu ( void  )
static
static void d68000_eor_16 ( void  )
static
static void d68000_eor_32 ( void  )
static
static void d68000_eor_8 ( void  )
static
static void d68000_eori_16 ( void  )
static
static void d68000_eori_32 ( void  )
static
static void d68000_eori_8 ( void  )
static
static void d68000_eori_to_ccr ( void  )
static
static void d68000_eori_to_sr ( void  )
static
static void d68000_exg_aa ( void  )
static
static void d68000_exg_da ( void  )
static
static void d68000_exg_dd ( void  )
static
static void d68000_ext_16 ( void  )
static
static void d68000_ext_32 ( void  )
static
static void d68000_illegal ( void  )
static
static void d68000_jmp ( void  )
static
static void d68000_jsr ( void  )
static
static void d68000_lea ( void  )
static
static void d68000_link_16 ( void  )
static
static void d68000_lsl_ea ( void  )
static
static void d68000_lsl_r_16 ( void  )
static
static void d68000_lsl_r_32 ( void  )
static
static void d68000_lsl_r_8 ( void  )
static
static void d68000_lsl_s_16 ( void  )
static
static void d68000_lsl_s_32 ( void  )
static
static void d68000_lsl_s_8 ( void  )
static
static void d68000_lsr_ea ( void  )
static
static void d68000_lsr_r_16 ( void  )
static
static void d68000_lsr_r_32 ( void  )
static
static void d68000_lsr_r_8 ( void  )
static
static void d68000_lsr_s_16 ( void  )
static
static void d68000_lsr_s_32 ( void  )
static
static void d68000_lsr_s_8 ( void  )
static
static void d68000_move_16 ( void  )
static
static void d68000_move_32 ( void  )
static
static void d68000_move_8 ( void  )
static
static void d68000_move_fr_sr ( void  )
static
static void d68000_move_fr_usp ( void  )
static
static void d68000_move_to_ccr ( void  )
static
static void d68000_move_to_sr ( void  )
static
static void d68000_move_to_usp ( void  )
static
static void d68000_movea_16 ( void  )
static
static void d68000_movea_32 ( void  )
static
static void d68000_movem_er_16 ( void  )
static
static void d68000_movem_er_32 ( void  )
static
static void d68000_movem_pd_16 ( void  )
static
static void d68000_movem_pd_32 ( void  )
static
static void d68000_movem_re_16 ( void  )
static
static void d68000_movem_re_32 ( void  )
static
static void d68000_movep_er_16 ( void  )
static
static void d68000_movep_er_32 ( void  )
static
static void d68000_movep_re_16 ( void  )
static
static void d68000_movep_re_32 ( void  )
static
static void d68000_moveq ( void  )
static
static void d68000_muls ( void  )
static
static void d68000_mulu ( void  )
static
static void d68000_nbcd ( void  )
static
static void d68000_neg_16 ( void  )
static
static void d68000_neg_32 ( void  )
static
static void d68000_neg_8 ( void  )
static
static void d68000_negx_16 ( void  )
static
static void d68000_negx_32 ( void  )
static
static void d68000_negx_8 ( void  )
static
static void d68000_nop ( void  )
static
static void d68000_not_16 ( void  )
static
static void d68000_not_32 ( void  )
static
static void d68000_not_8 ( void  )
static
static void d68000_or_er_16 ( void  )
static
static void d68000_or_er_32 ( void  )
static
static void d68000_or_er_8 ( void  )
static
static void d68000_or_re_16 ( void  )
static
static void d68000_or_re_32 ( void  )
static
static void d68000_or_re_8 ( void  )
static
static void d68000_ori_16 ( void  )
static
static void d68000_ori_32 ( void  )
static
static void d68000_ori_8 ( void  )
static
static void d68000_ori_to_ccr ( void  )
static
static void d68000_ori_to_sr ( void  )
static
static void d68000_pea ( void  )
static
static void d68000_reset ( void  )
static
static void d68000_rol_ea ( void  )
static
static void d68000_rol_r_16 ( void  )
static
static void d68000_rol_r_32 ( void  )
static
static void d68000_rol_r_8 ( void  )
static
static void d68000_rol_s_16 ( void  )
static
static void d68000_rol_s_32 ( void  )
static
static void d68000_rol_s_8 ( void  )
static
static void d68000_ror_ea ( void  )
static
static void d68000_ror_r_16 ( void  )
static
static void d68000_ror_r_32 ( void  )
static
static void d68000_ror_r_8 ( void  )
static
static void d68000_ror_s_16 ( void  )
static
static void d68000_ror_s_32 ( void  )
static
static void d68000_ror_s_8 ( void  )
static
static void d68000_roxl_ea ( void  )
static
static void d68000_roxl_r_16 ( void  )
static
static void d68000_roxl_r_32 ( void  )
static
static void d68000_roxl_r_8 ( void  )
static
static void d68000_roxl_s_16 ( void  )
static
static void d68000_roxl_s_32 ( void  )
static
static void d68000_roxl_s_8 ( void  )
static
static void d68000_roxr_ea ( void  )
static
static void d68000_roxr_r_16 ( void  )
static
static void d68000_roxr_r_32 ( void  )
static
static void d68000_roxr_r_8 ( void  )
static
static void d68000_roxr_s_16 ( void  )
static
static void d68000_roxr_s_32 ( void  )
static
static void d68000_roxr_s_8 ( void  )
static
static void d68000_rte ( void  )
static
static void d68000_rtr ( void  )
static
static void d68000_rts ( void  )
static
static void d68000_sbcd_mm ( void  )
static
static void d68000_sbcd_rr ( void  )
static
static void d68000_scc ( void  )
static
static void d68000_stop ( void  )
static
static void d68000_sub_er_16 ( void  )
static
static void d68000_sub_er_32 ( void  )
static
static void d68000_sub_er_8 ( void  )
static
static void d68000_sub_re_16 ( void  )
static
static void d68000_sub_re_32 ( void  )
static
static void d68000_sub_re_8 ( void  )
static
static void d68000_suba_16 ( void  )
static
static void d68000_suba_32 ( void  )
static
static void d68000_subi_16 ( void  )
static
static void d68000_subi_32 ( void  )
static
static void d68000_subi_8 ( void  )
static
static void d68000_subq_16 ( void  )
static
static void d68000_subq_32 ( void  )
static
static void d68000_subq_8 ( void  )
static
static void d68000_subx_mm_16 ( void  )
static
static void d68000_subx_mm_32 ( void  )
static
static void d68000_subx_mm_8 ( void  )
static
static void d68000_subx_rr_16 ( void  )
static
static void d68000_subx_rr_32 ( void  )
static
static void d68000_subx_rr_8 ( void  )
static
static void d68000_swap ( void  )
static
static void d68000_tas ( void  )
static
static void d68000_trap ( void  )
static
static void d68000_trapv ( void  )
static
static void d68000_tst_16 ( void  )
static
static void d68000_tst_32 ( void  )
static
static void d68000_tst_8 ( void  )
static
static void d68000_unlk ( void  )
static
static void d68010_bkpt ( void  )
static
static void d68010_move_fr_ccr ( void  )
static
static void d68010_movec ( void  )
static
static void d68010_moves_16 ( void  )
static
static void d68010_moves_32 ( void  )
static
static void d68010_moves_8 ( void  )
static
static void d68010_rtd ( void  )
static
static void d68020_bcc_32 ( void  )
static
static void d68020_bfchg ( void  )
static
static void d68020_bfclr ( void  )
static
static void d68020_bfexts ( void  )
static
static void d68020_bfextu ( void  )
static
static void d68020_bfffo ( void  )
static
static void d68020_bfins ( void  )
static
static void d68020_bfset ( void  )
static
static void d68020_bftst ( void  )
static
static void d68020_bra_32 ( void  )
static
static void d68020_bsr_32 ( void  )
static
static void d68020_callm ( void  )
static
static void d68020_cas2_16 ( void  )
static
static void d68020_cas2_32 ( void  )
static
static void d68020_cas_16 ( void  )
static
static void d68020_cas_32 ( void  )
static
static void d68020_cas_8 ( void  )
static
static void d68020_chk2_cmp2_16 ( void  )
static
static void d68020_chk2_cmp2_32 ( void  )
static
static void d68020_chk2_cmp2_8 ( void  )
static
static void d68020_chk_32 ( void  )
static
static void d68020_cmpi_pcdi_16 ( void  )
static
static void d68020_cmpi_pcdi_32 ( void  )
static
static void d68020_cmpi_pcdi_8 ( void  )
static
static void d68020_cmpi_pcix_16 ( void  )
static
static void d68020_cmpi_pcix_32 ( void  )
static
static void d68020_cmpi_pcix_8 ( void  )
static
static void d68020_cpbcc_16 ( void  )
static
static void d68020_cpbcc_32 ( void  )
static
static void d68020_cpdbcc ( void  )
static
static void d68020_cpgen ( void  )
static
static void d68020_cprestore ( void  )
static
static void d68020_cpsave ( void  )
static
static void d68020_cpscc ( void  )
static
static void d68020_cptrapcc_0 ( void  )
static
static void d68020_cptrapcc_16 ( void  )
static
static void d68020_cptrapcc_32 ( void  )
static
static void d68020_divl ( void  )
static
static void d68020_extb_32 ( void  )
static
static void d68020_link_32 ( void  )
static
static void d68020_mull ( void  )
static
static void d68020_pack_mm ( void  )
static
static void d68020_pack_rr ( void  )
static
static void d68020_rtm ( void  )
static
static void d68020_trapcc_0 ( void  )
static
static void d68020_trapcc_16 ( void  )
static
static void d68020_trapcc_32 ( void  )
static
static void d68020_tst_a_16 ( void  )
static
static void d68020_tst_a_32 ( void  )
static
static void d68020_tst_i_16 ( void  )
static
static void d68020_tst_i_32 ( void  )
static
static void d68020_tst_i_8 ( void  )
static
static void d68020_tst_pcdi_16 ( void  )
static
static void d68020_tst_pcdi_32 ( void  )
static
static void d68020_tst_pcdi_8 ( void  )
static
static void d68020_tst_pcix_16 ( void  )
static
static void d68020_tst_pcix_32 ( void  )
static
static void d68020_tst_pcix_8 ( void  )
static
static void d68020_unpk_mm ( void  )
static
static void d68020_unpk_rr ( void  )
static
static void d68040_cinv ( void  )
static
static void d68040_cpush ( void  )
static
static void d68040_fpu ( void  )
static
static void d68040_move16_ai_al ( void  )
static
static void d68040_move16_al_ai ( void  )
static
static void d68040_move16_al_pi ( void  )
static
static void d68040_move16_pi_al ( void  )
static
static void d68040_move16_pi_pi ( void  )
static
static void d68040_pflush ( void  )
static
static uint dasm_read_imm_16 ( uint  advance)
static
static uint dasm_read_imm_32 ( uint  advance)
static
static uint dasm_read_imm_8 ( uint  advance)
static
static char * get_ea_mode_str ( uint  instruction,
uint  size 
)
static
char* get_ea_mode_str_16 ( uint  instruction)
char* get_ea_mode_str_32 ( uint  instruction)
char* get_ea_mode_str_8 ( uint  instruction)
static char * get_imm_str_s ( uint  size)
static
static char * get_imm_str_u ( uint  size)
static
unsigned int m68k_disassemble ( char *  str_buff,
unsigned int  pc,
unsigned int  cpu_type 
)
unsigned int m68k_disassemble_raw ( char *  str_buff,
unsigned int  pc,
const unsigned char *  opdata,
const unsigned char *  argdata,
unsigned int  cpu_type 
)
unsigned int m68k_is_valid_instruction ( unsigned int  instruction,
unsigned int  cpu_type 
)
char* m68ki_disassemble_quick ( unsigned int  pc,
unsigned int  cpu_type 
)
static int make_int_16 ( int  value)
static
static int make_int_8 ( int  value)
static
static char * make_signed_hex_str_16 ( uint  val)
static
static char * make_signed_hex_str_32 ( uint  val)
static
static char * make_signed_hex_str_8 ( uint  val)
static
static int valid_ea ( uint  opcode,
uint  mask 
)
static

Variable Documentation

uint g_3bit_qdata_table[8] = {8, 1, 2, 3, 4, 5, 6, 7}
static
uint g_5bit_data_table[32]
static
Initial value:
{
32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
}
unsigned int g_address_mask = 0xffffffff
static
const char* g_cc[16]
static
Initial value:
{"t", "f", "hi", "ls", "cc", "cs", "ne", "eq", "vc", "vs", "pl", "mi", "ge", "lt", "gt", "le"}
const char* g_cpcc[64]
static
Initial value:
{
"f", "eq", "ogt", "oge", "olt", "ole", "ogl", "or",
"un", "ueq", "ugt", "uge", "ult", "ule", "ne", "t",
"sf", "seq", "gt", "ge", "lt", "le", "gl" "gle",
"ngle", "ngl", "nle", "nlt", "nge", "ngt", "sne", "st",
"?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?"
}
uint g_cpu_ir
static
uint g_cpu_pc
static
uint g_cpu_type
static
char g_dasm_str[100]
static
char g_helper_str[100]
static
int g_initialized = 0
static
void(* g_instruction_table[0x10000])(void)
static
opcode_struct g_opcode_info[]
static
uint g_opcode_type
static
uint g_rawbasepc
static
const unsigned char* g_rawop
static