trunk/src/emu/cpu/es5510/es5510.c
| r20719 | r20720 | |
| 22 | 22 | |
| 23 | 23 | #define FLAG_MASK (FLAG_N | FLAG_C | FLAG_V | FLAG_LT | FLAG_Z) |
| 24 | 24 | |
| 25 | char *stpcpy_int (char *dst, const char *src) |
| 26 | { |
| 27 | const size_t len = strlen (src); |
| 28 | return (char *) memcpy (dst, src, len + 1) + len; |
| 29 | } |
| 30 | |
| 25 | 31 | inline static UINT8 setFlag(UINT8 ccr, UINT8 flag) { |
| 26 | 32 | return ccr | flag; |
| 27 | 33 | } |
| r20719 | r20720 | |
| 165 | 171 | } |
| 166 | 172 | |
| 167 | 173 | static inline char * DESCRIBE_REG(char *s, UINT8 r) { |
| 168 | | return strcpy(s, REGNAME(r)); |
| 174 | return stpcpy_int(s, REGNAME(r)); |
| 169 | 175 | } |
| 170 | 176 | |
| 171 | 177 | const alu_op_t es5510_device::ALU_OPS[16] = { |
| r20719 | r20720 | |
| 214 | 220 | case es5510_device::SRC_DST_REG: |
| 215 | 221 | return DESCRIBE_REG(s, reg); |
| 216 | 222 | case es5510_device::SRC_DST_DELAY: |
| 217 | | return strcpy(s, "Delay"); |
| 223 | return stpcpy_int(s, "Delay"); |
| 218 | 224 | case es5510_device::SRC_DST_BOTH: |
| 219 | 225 | s = DESCRIBE_REG(s, reg); |
| 220 | | return strcpy(s, ",Delay"); |
| 226 | return stpcpy_int(s, ",Delay"); |
| 221 | 227 | } |
| 222 | 228 | // should never happen! |
| 223 | 229 | return s; |
| r20719 | r20720 | |
| 243 | 249 | |
| 244 | 250 | switch (op.operands) { |
| 245 | 251 | case 0: |
| 246 | | return strcpy(s, op.opcode); |
| 252 | return stpcpy_int(s, op.opcode); |
| 247 | 253 | |
| 248 | 254 | case 1: |
| 249 | 255 | s += sprintf(s, "%s %s >", op.opcode, REGNAME(bReg)); |