static int _6502Disass (RAsmOp *op, const ut8 *buf, ut64 len) { int i; for (i=0;ops[i].name != NULL;i++) { if (ops[i].op == buf[0]) { switch (ops[i].len) { case 1: sprintf (op->buf_asm, "%s", ops[i].name); break; case 2: sprintf (op->buf_asm, ops[i].name, buf[1]); break; case 3: sprintf (op->buf_asm, ops[i].name, buf[1]+0x100*buf[2]); break; case 4: sprintf (op->buf_asm, ops[i].name, buf[1]+0x100*buf[2]+0x10000*buf[3]); break; default: goto beach; } return ops[i].len; } } beach: return snesDisass (op, buf, len); }
static int disassemble(RAsm *a, RAsmOp *op, const ut8 *buf, int len) { int dlen = snesDisass(op,buf,len); if (dlen<0) dlen=0; op->size = dlen; return dlen; }