/* radare2 - LGPL - Copyright 2012-2015 pancake */ #include #include #include #include #include #include #include #include "../arch/dcpu16/dcpu16.h" #include "../arch/dcpu16/dis.c" #include "../arch/dcpu16/asm.c" static int disassemble(RAsm *a, RAsmOp *op, const ut8 *buf, int len) { if (len<2) return -1; // at least 2 bytes! op->size = dcpu16_disasm (op->buf_asm, (const ut16*)buf, len, NULL); if (op->size == -1) strcpy (op->buf_asm, " (data)"); return op->size; } static int assemble(RAsm *a, RAsmOp *op, const char *buf) { return dcpu16_assemble (op->buf, buf); } RAsmPlugin r_asm_plugin_dcpu16 = { .name = "dcpu16", .arch = "dpcu", .bits = 16, .endian = R_SYS_ENDIAN_LITTLE, .desc = "Mojang's DCPU-16", .license = "PD", .disassemble = &disassemble, .assemble = &assemble }; #ifndef CORELIB struct r_lib_struct_t radare_plugin = { .type = R_LIB_TYPE_ASM, .data = &r_asm_plugin_dcpu16, .version = R2_VERSION }; #endif