summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2016-10-27 16:26:19 -0400
committer GitHub <noreply@github.com>2016-10-27 16:26:19 -0400
commit04a56a8ebe77dad34e7b1d2a15cb8da0d4e11cf5 (patch)
treee0affb49e447b49e1382ae860b204469e946fe54
parent25662acbcfe2dc2abdd46c9f7f206ff7079b44b7 (diff)
parentbb67e3739d52951950f8ac60877f554f93d43d22 (diff)
Merge pull request #1578 from npwoods/dasmstream_i8085
Changed the i8085 disassembler to use 'std::ostream &' internally
-rw-r--r--src/devices/cpu/i8085/8085dasm.cpp1036
1 files changed, 523 insertions, 513 deletions
diff --git a/src/devices/cpu/i8085/8085dasm.cpp b/src/devices/cpu/i8085/8085dasm.cpp
index 515899a79e2..1db5fe0b23f 100644
--- a/src/devices/cpu/i8085/8085dasm.cpp
+++ b/src/devices/cpu/i8085/8085dasm.cpp
@@ -18,7 +18,7 @@
#define ARG(A) opram[(A) - PC]
#define ARGW(A) (opram[(A) - PC] | (opram[(A) + 1 - PC] << 8))
-CPU_DISASSEMBLE( i8085 )
+static offs_t internal_disasm_i8085(cpu_device *device, std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, int options)
{
uint32_t flags = 0;
uint8_t op;
@@ -26,520 +26,530 @@ CPU_DISASSEMBLE( i8085 )
switch (op = OP(pc++))
{
#ifdef Z80_MNEMONICS
- case 0x00: sprintf (buffer,"nop"); break;
- case 0x01: sprintf (buffer,"ld bc,$%04x", ARGW(pc)); pc+=2; break;
- case 0x02: sprintf (buffer,"ld (bc),a"); break;
- case 0x03: sprintf (buffer,"inc bc"); break;
- case 0x04: sprintf (buffer,"inc b"); break;
- case 0x05: sprintf (buffer,"dec b"); break;
- case 0x06: sprintf (buffer,"ld b,$%02x", ARG(pc)); pc++; break;
- case 0x07: sprintf (buffer,"rlca"); break;
- case 0x08: sprintf (buffer,"sub hl,bc (*)"); break;
- case 0x09: sprintf (buffer,"add hl,bc"); break;
- case 0x0a: sprintf (buffer,"ld a,(bc)"); break;
- case 0x0b: sprintf (buffer,"dec bc"); break;
- case 0x0c: sprintf (buffer,"inc c"); break;
- case 0x0d: sprintf (buffer,"dec c"); break;
- case 0x0e: sprintf (buffer,"ld c,$%02x", ARG(pc)); pc++; break;
- case 0x0f: sprintf (buffer,"rrca"); break;
- case 0x10: sprintf (buffer,"sra hl (*)"); break;
- case 0x11: sprintf (buffer,"ld de,$%04x", ARGW(pc)); pc+=2; break;
- case 0x12: sprintf (buffer,"ld (de),a"); break;
- case 0x13: sprintf (buffer,"inc de"); break;
- case 0x14: sprintf (buffer,"inc d"); break;
- case 0x15: sprintf (buffer,"dec d"); break;
- case 0x16: sprintf (buffer,"ld d,$%02x", ARG(pc)); pc++; break;
- case 0x17: sprintf (buffer,"rla"); break;
- case 0x18: sprintf (buffer,"rl de (*)"); break;
- case 0x19: sprintf (buffer,"add hl,de"); break;
- case 0x1a: sprintf (buffer,"ld a,(de)"); break;
- case 0x1b: sprintf (buffer,"dec de"); break;
- case 0x1c: sprintf (buffer,"inc e"); break;
- case 0x1d: sprintf (buffer,"dec e"); break;
- case 0x1e: sprintf (buffer,"ld e,$%02x", ARG(pc)); pc++; break;
- case 0x1f: sprintf (buffer,"rra"); break;
- case 0x20: sprintf (buffer,"rim"); break;
- case 0x21: sprintf (buffer,"ld hl,$%04x", ARGW(pc)); pc+=2; break;
- case 0x22: sprintf (buffer,"ld ($%04x),hl", ARGW(pc)); pc+=2;break;
- case 0x23: sprintf (buffer,"inc hl"); break;
- case 0x24: sprintf (buffer,"inc h"); break;
- case 0x25: sprintf (buffer,"dec h"); break;
- case 0x26: sprintf (buffer,"ld h,$%02x", ARG(pc)); pc++; break;
- case 0x27: sprintf (buffer,"daa"); break;
- case 0x28: sprintf (buffer,"ld de,hl+$%02x (*)",ARG(pc));pc++;break;
- case 0x29: sprintf (buffer,"add hl,hl"); break;
- case 0x2a: sprintf (buffer,"ld hl,($%04x)", ARGW(pc)); pc+=2;break;
- case 0x2b: sprintf (buffer,"dec hl"); break;
- case 0x2c: sprintf (buffer,"inc l"); break;
- case 0x2d: sprintf (buffer,"dec l"); break;
- case 0x2e: sprintf (buffer,"ld l,$%02x", ARG(pc)); pc++; break;
- case 0x2f: sprintf (buffer,"cpl"); break;
- case 0x30: sprintf (buffer,"sim"); break;
- case 0x31: sprintf (buffer,"ld sp,$%04x", ARGW(pc)); pc+=2; break;
- case 0x32: sprintf (buffer,"ld ($%04x),a", ARGW(pc)); pc+=2; break;
- case 0x33: sprintf (buffer,"inc sp"); break;
- case 0x34: sprintf (buffer,"inc (hl)"); break;
- case 0x35: sprintf (buffer,"dec (hl)"); break;
- case 0x36: sprintf (buffer,"ld (hl),$%02x", ARG(pc)); pc++; break;
- case 0x37: sprintf (buffer,"scf"); break;
- case 0x38: sprintf (buffer,"ld de,sp+$%02x (*)",ARG(pc));pc++;break;
- case 0x39: sprintf (buffer,"add hl,sp"); break;
- case 0x3a: sprintf (buffer,"ld a,($%04x)", ARGW(pc)); pc+=2; break;
- case 0x3b: sprintf (buffer,"dec sp"); break;
- case 0x3c: sprintf (buffer,"inc a"); break;
- case 0x3d: sprintf (buffer,"dec a"); break;
- case 0x3e: sprintf (buffer,"ld a,$%02x", ARG(pc)); pc++; break;
- case 0x3f: sprintf (buffer,"ccf"); break;
- case 0x40: sprintf (buffer,"ld b,b"); break;
- case 0x41: sprintf (buffer,"ld b,c"); break;
- case 0x42: sprintf (buffer,"ld b,d"); break;
- case 0x43: sprintf (buffer,"ld b,e"); break;
- case 0x44: sprintf (buffer,"ld b,h"); break;
- case 0x45: sprintf (buffer,"ld b,l"); break;
- case 0x46: sprintf (buffer,"ld b,(hl)"); break;
- case 0x47: sprintf (buffer,"ld b,a"); break;
- case 0x48: sprintf (buffer,"ld c,b"); break;
- case 0x49: sprintf (buffer,"ld c,c"); break;
- case 0x4a: sprintf (buffer,"ld c,d"); break;
- case 0x4b: sprintf (buffer,"ld c,e"); break;
- case 0x4c: sprintf (buffer,"ld c,h"); break;
- case 0x4d: sprintf (buffer,"ld c,l"); break;
- case 0x4e: sprintf (buffer,"ld c,(hl)"); break;
- case 0x4f: sprintf (buffer,"ld c,a"); break;
- case 0x50: sprintf (buffer,"ld d,b"); break;
- case 0x51: sprintf (buffer,"ld d,c"); break;
- case 0x52: sprintf (buffer,"ld d,d"); break;
- case 0x53: sprintf (buffer,"ld d,e"); break;
- case 0x54: sprintf (buffer,"ld d,h"); break;
- case 0x55: sprintf (buffer,"ld d,l"); break;
- case 0x56: sprintf (buffer,"ld d,(hl)"); break;
- case 0x57: sprintf (buffer,"ld d,a"); break;
- case 0x58: sprintf (buffer,"ld e,b"); break;
- case 0x59: sprintf (buffer,"ld e,c"); break;
- case 0x5a: sprintf (buffer,"ld e,d"); break;
- case 0x5b: sprintf (buffer,"ld e,e"); break;
- case 0x5c: sprintf (buffer,"ld e,h"); break;
- case 0x5d: sprintf (buffer,"ld e,l"); break;
- case 0x5e: sprintf (buffer,"ld e,(hl)"); break;
- case 0x5f: sprintf (buffer,"ld e,a"); break;
- case 0x60: sprintf (buffer,"ld h,b"); break;
- case 0x61: sprintf (buffer,"ld h,c"); break;
- case 0x62: sprintf (buffer,"ld h,d"); break;
- case 0x63: sprintf (buffer,"ld h,e"); break;
- case 0x64: sprintf (buffer,"ld h,h"); break;
- case 0x65: sprintf (buffer,"ld h,l"); break;
- case 0x66: sprintf (buffer,"ld h,(hl)"); break;
- case 0x67: sprintf (buffer,"ld h,a"); break;
- case 0x68: sprintf (buffer,"ld l,b"); break;
- case 0x69: sprintf (buffer,"ld l,c"); break;
- case 0x6a: sprintf (buffer,"ld l,d"); break;
- case 0x6b: sprintf (buffer,"ld l,e"); break;
- case 0x6c: sprintf (buffer,"ld l,h"); break;
- case 0x6d: sprintf (buffer,"ld l,l"); break;
- case 0x6e: sprintf (buffer,"ld l,(hl)"); break;
- case 0x6f: sprintf (buffer,"ld l,a"); break;
- case 0x70: sprintf (buffer,"ld (hl),b"); break;
- case 0x71: sprintf (buffer,"ld (hl),c"); break;
- case 0x72: sprintf (buffer,"ld (hl),d"); break;
- case 0x73: sprintf (buffer,"ld (hl),e"); break;
- case 0x74: sprintf (buffer,"ld (hl),h"); break;
- case 0x75: sprintf (buffer,"ld (hl),l"); break;
- case 0x76: sprintf (buffer,"halt"); break;
- case 0x77: sprintf (buffer,"ld (hl),a"); break;
- case 0x78: sprintf (buffer,"ld a,b"); break;
- case 0x79: sprintf (buffer,"ld a,c"); break;
- case 0x7a: sprintf (buffer,"ld a,d"); break;
- case 0x7b: sprintf (buffer,"ld a,e"); break;
- case 0x7c: sprintf (buffer,"ld a,h"); break;
- case 0x7d: sprintf (buffer,"ld a,l"); break;
- case 0x7e: sprintf (buffer,"ld a,(hl)"); break;
- case 0x7f: sprintf (buffer,"ld a,a"); break;
- case 0x80: sprintf (buffer,"add a,b"); break;
- case 0x81: sprintf (buffer,"add a,c"); break;
- case 0x82: sprintf (buffer,"add a,d"); break;
- case 0x83: sprintf (buffer,"add a,e"); break;
- case 0x84: sprintf (buffer,"add a,h"); break;
- case 0x85: sprintf (buffer,"add a,l"); break;
- case 0x86: sprintf (buffer,"add a,(hl)"); break;
- case 0x87: sprintf (buffer,"add a,a"); break;
- case 0x88: sprintf (buffer,"adc a,b"); break;
- case 0x89: sprintf (buffer,"adc a,c"); break;
- case 0x8a: sprintf (buffer,"adc a,d"); break;
- case 0x8b: sprintf (buffer,"adc a,e"); break;
- case 0x8c: sprintf (buffer,"adc a,h"); break;
- case 0x8d: sprintf (buffer,"adc a,l"); break;
- case 0x8e: sprintf (buffer,"adc a,(hl)"); break;
- case 0x8f: sprintf (buffer,"adc a,a"); break;
- case 0x90: sprintf (buffer,"sub b"); break;
- case 0x91: sprintf (buffer,"sub c"); break;
- case 0x92: sprintf (buffer,"sub d"); break;
- case 0x93: sprintf (buffer,"sub e"); break;
- case 0x94: sprintf (buffer,"sub h"); break;
- case 0x95: sprintf (buffer,"sub l"); break;
- case 0x96: sprintf (buffer,"sub (hl)"); break;
- case 0x97: sprintf (buffer,"sub a"); break;
- case 0x98: sprintf (buffer,"sbc a,b"); break;
- case 0x99: sprintf (buffer,"sbc a,c"); break;
- case 0x9a: sprintf (buffer,"sbc a,d"); break;
- case 0x9b: sprintf (buffer,"sbc a,e"); break;
- case 0x9c: sprintf (buffer,"sbc a,h"); break;
- case 0x9d: sprintf (buffer,"sbc a,l"); break;
- case 0x9e: sprintf (buffer,"sbc a,(hl)"); break;
- case 0x9f: sprintf (buffer,"sbc a,a"); break;
- case 0xa0: sprintf (buffer,"and b"); break;
- case 0xa1: sprintf (buffer,"and c"); break;
- case 0xa2: sprintf (buffer,"and d"); break;
- case 0xa3: sprintf (buffer,"and e"); break;
- case 0xa4: sprintf (buffer,"and h"); break;
- case 0xa5: sprintf (buffer,"and l"); break;
- case 0xa6: sprintf (buffer,"and (hl)"); break;
- case 0xa7: sprintf (buffer,"and a"); break;
- case 0xa8: sprintf (buffer,"xor b"); break;
- case 0xa9: sprintf (buffer,"xor c"); break;
- case 0xaa: sprintf (buffer,"xor d"); break;
- case 0xab: sprintf (buffer,"xor e"); break;
- case 0xac: sprintf (buffer,"xor h"); break;
- case 0xad: sprintf (buffer,"xor l"); break;
- case 0xae: sprintf (buffer,"xor (hl)"); break;
- case 0xaf: sprintf (buffer,"xor a"); break;
- case 0xb0: sprintf (buffer,"or b"); break;
- case 0xb1: sprintf (buffer,"or c"); break;
- case 0xb2: sprintf (buffer,"or d"); break;
- case 0xb3: sprintf (buffer,"or e"); break;
- case 0xb4: sprintf (buffer,"or h"); break;
- case 0xb5: sprintf (buffer,"or l"); break;
- case 0xb6: sprintf (buffer,"or (hl)"); break;
- case 0xb7: sprintf (buffer,"or a"); break;
- case 0xb8: sprintf (buffer,"cp b"); break;
- case 0xb9: sprintf (buffer,"cp c"); break;
- case 0xba: sprintf (buffer,"cp d"); break;
- case 0xbb: sprintf (buffer,"cp e"); break;
- case 0xbc: sprintf (buffer,"cp h"); break;
- case 0xbd: sprintf (buffer,"cp l"); break;
- case 0xbe: sprintf (buffer,"cp (hl)"); break;
- case 0xbf: sprintf (buffer,"cp a"); break;
- case 0xc0: sprintf (buffer,"ret nz"); flags = DASMFLAG_STEP_OUT; break;
- case 0xc1: sprintf (buffer,"pop bc"); break;
- case 0xc2: sprintf (buffer,"jp nz,$%04x", ARGW(pc)); pc+=2; break;
- case 0xc3: sprintf (buffer,"jp $%04x", ARGW(pc)); pc+=2; break;
- case 0xc4: sprintf (buffer,"call nz,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xc5: sprintf (buffer,"push bc"); break;
- case 0xc6: sprintf (buffer,"add a,$%02x", ARG(pc)); pc++; break;
- case 0xc7: sprintf (buffer,"rst $00"); flags = DASMFLAG_STEP_OVER; break;
- case 0xc8: sprintf (buffer,"ret z"); flags = DASMFLAG_STEP_OUT; break;
- case 0xc9: sprintf (buffer,"ret"); flags = DASMFLAG_STEP_OUT; break;
- case 0xca: sprintf (buffer,"jp z,$%04x", ARGW(pc)); pc+=2; break;
- case 0xcb: sprintf (buffer,"rst v,$40 (*)"); flags = DASMFLAG_STEP_OVER; break;
- case 0xcc: sprintf (buffer,"call z,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xcd: sprintf (buffer,"call $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xce: sprintf (buffer,"adc a,$%02x", ARG(pc)); pc++; break;
- case 0xcf: sprintf (buffer,"rst $08"); flags = DASMFLAG_STEP_OVER; break;
- case 0xd0: sprintf (buffer,"ret nc"); flags = DASMFLAG_STEP_OUT; break;
- case 0xd1: sprintf (buffer,"pop de"); break;
- case 0xd2: sprintf (buffer,"jp nc,$%04x", ARGW(pc)); pc+=2; break;
- case 0xd3: sprintf (buffer,"out ($%02x),a", ARG(pc)); pc++; break;
- case 0xd4: sprintf (buffer,"call nc,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xd5: sprintf (buffer,"push de"); break;
- case 0xd6: sprintf (buffer,"sub $%02x", ARG(pc)); pc++; break;
- case 0xd7: sprintf (buffer,"rst $10"); flags = DASMFLAG_STEP_OVER; break;
- case 0xd8: sprintf (buffer,"ret c"); break;
- case 0xd9: sprintf (buffer,"ld (de),hl (*)"); break;
- case 0xda: sprintf (buffer,"jp c,$%04x", ARGW(pc)); pc+=2; break;
- case 0xdb: sprintf (buffer,"in a,($%02x)", ARG(pc)); pc++; break;
- case 0xdc: sprintf (buffer,"call c,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xdd: sprintf (buffer,"jp nx,$%04x (*)",ARGW(pc));pc+=2;break;
- case 0xde: sprintf (buffer,"sub $%02x", ARG(pc)); pc++; break;
- case 0xdf: sprintf (buffer,"rst $18"); flags = DASMFLAG_STEP_OVER; break;
- case 0xe0: sprintf (buffer,"ret pe"); break;
- case 0xe1: sprintf (buffer,"pop hl"); break;
- case 0xe2: sprintf (buffer,"jp pe,$%04x", ARGW(pc)); pc+=2; break;
- case 0xe3: sprintf (buffer,"ex (sp),hl"); break;
- case 0xe4: sprintf (buffer,"call pe,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xe5: sprintf (buffer,"push hl"); break;
- case 0xe6: sprintf (buffer,"and $%02x", ARG(pc)); pc++; break;
- case 0xe7: sprintf (buffer,"rst $20"); flags = DASMFLAG_STEP_OVER; break;
- case 0xe8: sprintf (buffer,"ret po"); break;
- case 0xe9: sprintf (buffer,"jp (hl)"); break;
- case 0xea: sprintf (buffer,"jp po,$%04x", ARGW(pc)); pc+=2; break;
- case 0xeb: sprintf (buffer,"ex de,hl"); break;
- case 0xec: sprintf (buffer,"call po,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xed: sprintf (buffer,"ld hl,(de) (*)"); break;
- case 0xee: sprintf (buffer,"xor $%02x", ARG(pc)); pc++; break;
- case 0xef: sprintf (buffer,"rst $28"); flags = DASMFLAG_STEP_OVER; break;
- case 0xf0: sprintf (buffer,"ret p"); break;
- case 0xf1: sprintf (buffer,"pop af"); break;
- case 0xf2: sprintf (buffer,"jp p,$%04x", ARGW(pc)); pc+=2; break;
- case 0xf3: sprintf (buffer,"di"); break;
- case 0xf4: sprintf (buffer,"cp $%04x", ARGW(pc)); pc+=2; break;
- case 0xf5: sprintf (buffer,"push af"); break;
- case 0xf6: sprintf (buffer,"or $%02x", ARG(pc)); pc++; break;
- case 0xf7: sprintf (buffer,"rst $30"); flags = DASMFLAG_STEP_OVER; break;
- case 0xf8: sprintf (buffer,"ret m"); break;
- case 0xf9: sprintf (buffer,"ld sp,hl"); break;
- case 0xfa: sprintf (buffer,"jp m,$%04x", ARGW(pc)); pc+=2; break;
- case 0xfb: sprintf (buffer,"ei"); break;
- case 0xfc: sprintf (buffer,"call m,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xfd: sprintf (buffer,"jp x,$%04x (*)",ARGW(pc));pc+=2; break;
- case 0xfe: sprintf (buffer,"cp $%02x", ARG(pc)); pc++; break;
- case 0xff: sprintf (buffer,"rst $38"); flags = DASMFLAG_STEP_OVER; break;
+ case 0x00: util::stream_format(stream, "nop"); break;
+ case 0x01: util::stream_format(stream, "ld bc,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x02: util::stream_format(stream, "ld (bc),a"); break;
+ case 0x03: util::stream_format(stream, "inc bc"); break;
+ case 0x04: util::stream_format(stream, "inc b"); break;
+ case 0x05: util::stream_format(stream, "dec b"); break;
+ case 0x06: util::stream_format(stream, "ld b,$%02x", ARG(pc)); pc++; break;
+ case 0x07: util::stream_format(stream, "rlca"); break;
+ case 0x08: util::stream_format(stream, "sub hl,bc (*)"); break;
+ case 0x09: util::stream_format(stream, "add hl,bc"); break;
+ case 0x0a: util::stream_format(stream, "ld a,(bc)"); break;
+ case 0x0b: util::stream_format(stream, "dec bc"); break;
+ case 0x0c: util::stream_format(stream, "inc c"); break;
+ case 0x0d: util::stream_format(stream, "dec c"); break;
+ case 0x0e: util::stream_format(stream, "ld c,$%02x", ARG(pc)); pc++; break;
+ case 0x0f: util::stream_format(stream, "rrca"); break;
+ case 0x10: util::stream_format(stream, "sra hl (*)"); break;
+ case 0x11: util::stream_format(stream, "ld de,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x12: util::stream_format(stream, "ld (de),a"); break;
+ case 0x13: util::stream_format(stream, "inc de"); break;
+ case 0x14: util::stream_format(stream, "inc d"); break;
+ case 0x15: util::stream_format(stream, "dec d"); break;
+ case 0x16: util::stream_format(stream, "ld d,$%02x", ARG(pc)); pc++; break;
+ case 0x17: util::stream_format(stream, "rla"); break;
+ case 0x18: util::stream_format(stream, "rl de (*)"); break;
+ case 0x19: util::stream_format(stream, "add hl,de"); break;
+ case 0x1a: util::stream_format(stream, "ld a,(de)"); break;
+ case 0x1b: util::stream_format(stream, "dec de"); break;
+ case 0x1c: util::stream_format(stream, "inc e"); break;
+ case 0x1d: util::stream_format(stream, "dec e"); break;
+ case 0x1e: util::stream_format(stream, "ld e,$%02x", ARG(pc)); pc++; break;
+ case 0x1f: util::stream_format(stream, "rra"); break;
+ case 0x20: util::stream_format(stream, "rim"); break;
+ case 0x21: util::stream_format(stream, "ld hl,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x22: util::stream_format(stream, "ld ($%04x),hl", ARGW(pc)); pc+=2;break;
+ case 0x23: util::stream_format(stream, "inc hl"); break;
+ case 0x24: util::stream_format(stream, "inc h"); break;
+ case 0x25: util::stream_format(stream, "dec h"); break;
+ case 0x26: util::stream_format(stream, "ld h,$%02x", ARG(pc)); pc++; break;
+ case 0x27: util::stream_format(stream, "daa"); break;
+ case 0x28: util::stream_format(stream, "ld de,hl+$%02x (*)",ARG(pc));pc++;break;
+ case 0x29: util::stream_format(stream, "add hl,hl"); break;
+ case 0x2a: util::stream_format(stream, "ld hl,($%04x)", ARGW(pc)); pc+=2;break;
+ case 0x2b: util::stream_format(stream, "dec hl"); break;
+ case 0x2c: util::stream_format(stream, "inc l"); break;
+ case 0x2d: util::stream_format(stream, "dec l"); break;
+ case 0x2e: util::stream_format(stream, "ld l,$%02x", ARG(pc)); pc++; break;
+ case 0x2f: util::stream_format(stream, "cpl"); break;
+ case 0x30: util::stream_format(stream, "sim"); break;
+ case 0x31: util::stream_format(stream, "ld sp,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x32: util::stream_format(stream, "ld ($%04x),a", ARGW(pc)); pc+=2; break;
+ case 0x33: util::stream_format(stream, "inc sp"); break;
+ case 0x34: util::stream_format(stream, "inc (hl)"); break;
+ case 0x35: util::stream_format(stream, "dec (hl)"); break;
+ case 0x36: util::stream_format(stream, "ld (hl),$%02x", ARG(pc)); pc++; break;
+ case 0x37: util::stream_format(stream, "scf"); break;
+ case 0x38: util::stream_format(stream, "ld de,sp+$%02x (*)",ARG(pc));pc++;break;
+ case 0x39: util::stream_format(stream, "add hl,sp"); break;
+ case 0x3a: util::stream_format(stream, "ld a,($%04x)", ARGW(pc)); pc+=2; break;
+ case 0x3b: util::stream_format(stream, "dec sp"); break;
+ case 0x3c: util::stream_format(stream, "inc a"); break;
+ case 0x3d: util::stream_format(stream, "dec a"); break;
+ case 0x3e: util::stream_format(stream, "ld a,$%02x", ARG(pc)); pc++; break;
+ case 0x3f: util::stream_format(stream, "ccf"); break;
+ case 0x40: util::stream_format(stream, "ld b,b"); break;
+ case 0x41: util::stream_format(stream, "ld b,c"); break;
+ case 0x42: util::stream_format(stream, "ld b,d"); break;
+ case 0x43: util::stream_format(stream, "ld b,e"); break;
+ case 0x44: util::stream_format(stream, "ld b,h"); break;
+ case 0x45: util::stream_format(stream, "ld b,l"); break;
+ case 0x46: util::stream_format(stream, "ld b,(hl)"); break;
+ case 0x47: util::stream_format(stream, "ld b,a"); break;
+ case 0x48: util::stream_format(stream, "ld c,b"); break;
+ case 0x49: util::stream_format(stream, "ld c,c"); break;
+ case 0x4a: util::stream_format(stream, "ld c,d"); break;
+ case 0x4b: util::stream_format(stream, "ld c,e"); break;
+ case 0x4c: util::stream_format(stream, "ld c,h"); break;
+ case 0x4d: util::stream_format(stream, "ld c,l"); break;
+ case 0x4e: util::stream_format(stream, "ld c,(hl)"); break;
+ case 0x4f: util::stream_format(stream, "ld c,a"); break;
+ case 0x50: util::stream_format(stream, "ld d,b"); break;
+ case 0x51: util::stream_format(stream, "ld d,c"); break;
+ case 0x52: util::stream_format(stream, "ld d,d"); break;
+ case 0x53: util::stream_format(stream, "ld d,e"); break;
+ case 0x54: util::stream_format(stream, "ld d,h"); break;
+ case 0x55: util::stream_format(stream, "ld d,l"); break;
+ case 0x56: util::stream_format(stream, "ld d,(hl)"); break;
+ case 0x57: util::stream_format(stream, "ld d,a"); break;
+ case 0x58: util::stream_format(stream, "ld e,b"); break;
+ case 0x59: util::stream_format(stream, "ld e,c"); break;
+ case 0x5a: util::stream_format(stream, "ld e,d"); break;
+ case 0x5b: util::stream_format(stream, "ld e,e"); break;
+ case 0x5c: util::stream_format(stream, "ld e,h"); break;
+ case 0x5d: util::stream_format(stream, "ld e,l"); break;
+ case 0x5e: util::stream_format(stream, "ld e,(hl)"); break;
+ case 0x5f: util::stream_format(stream, "ld e,a"); break;
+ case 0x60: util::stream_format(stream, "ld h,b"); break;
+ case 0x61: util::stream_format(stream, "ld h,c"); break;
+ case 0x62: util::stream_format(stream, "ld h,d"); break;
+ case 0x63: util::stream_format(stream, "ld h,e"); break;
+ case 0x64: util::stream_format(stream, "ld h,h"); break;
+ case 0x65: util::stream_format(stream, "ld h,l"); break;
+ case 0x66: util::stream_format(stream, "ld h,(hl)"); break;
+ case 0x67: util::stream_format(stream, "ld h,a"); break;
+ case 0x68: util::stream_format(stream, "ld l,b"); break;
+ case 0x69: util::stream_format(stream, "ld l,c"); break;
+ case 0x6a: util::stream_format(stream, "ld l,d"); break;
+ case 0x6b: util::stream_format(stream, "ld l,e"); break;
+ case 0x6c: util::stream_format(stream, "ld l,h"); break;
+ case 0x6d: util::stream_format(stream, "ld l,l"); break;
+ case 0x6e: util::stream_format(stream, "ld l,(hl)"); break;
+ case 0x6f: util::stream_format(stream, "ld l,a"); break;
+ case 0x70: util::stream_format(stream, "ld (hl),b"); break;
+ case 0x71: util::stream_format(stream, "ld (hl),c"); break;
+ case 0x72: util::stream_format(stream, "ld (hl),d"); break;
+ case 0x73: util::stream_format(stream, "ld (hl),e"); break;
+ case 0x74: util::stream_format(stream, "ld (hl),h"); break;
+ case 0x75: util::stream_format(stream, "ld (hl),l"); break;
+ case 0x76: util::stream_format(stream, "halt"); break;
+ case 0x77: util::stream_format(stream, "ld (hl),a"); break;
+ case 0x78: util::stream_format(stream, "ld a,b"); break;
+ case 0x79: util::stream_format(stream, "ld a,c"); break;
+ case 0x7a: util::stream_format(stream, "ld a,d"); break;
+ case 0x7b: util::stream_format(stream, "ld a,e"); break;
+ case 0x7c: util::stream_format(stream, "ld a,h"); break;
+ case 0x7d: util::stream_format(stream, "ld a,l"); break;
+ case 0x7e: util::stream_format(stream, "ld a,(hl)"); break;
+ case 0x7f: util::stream_format(stream, "ld a,a"); break;
+ case 0x80: util::stream_format(stream, "add a,b"); break;
+ case 0x81: util::stream_format(stream, "add a,c"); break;
+ case 0x82: util::stream_format(stream, "add a,d"); break;
+ case 0x83: util::stream_format(stream, "add a,e"); break;
+ case 0x84: util::stream_format(stream, "add a,h"); break;
+ case 0x85: util::stream_format(stream, "add a,l"); break;
+ case 0x86: util::stream_format(stream, "add a,(hl)"); break;
+ case 0x87: util::stream_format(stream, "add a,a"); break;
+ case 0x88: util::stream_format(stream, "adc a,b"); break;
+ case 0x89: util::stream_format(stream, "adc a,c"); break;
+ case 0x8a: util::stream_format(stream, "adc a,d"); break;
+ case 0x8b: util::stream_format(stream, "adc a,e"); break;
+ case 0x8c: util::stream_format(stream, "adc a,h"); break;
+ case 0x8d: util::stream_format(stream, "adc a,l"); break;
+ case 0x8e: util::stream_format(stream, "adc a,(hl)"); break;
+ case 0x8f: util::stream_format(stream, "adc a,a"); break;
+ case 0x90: util::stream_format(stream, "sub b"); break;
+ case 0x91: util::stream_format(stream, "sub c"); break;
+ case 0x92: util::stream_format(stream, "sub d"); break;
+ case 0x93: util::stream_format(stream, "sub e"); break;
+ case 0x94: util::stream_format(stream, "sub h"); break;
+ case 0x95: util::stream_format(stream, "sub l"); break;
+ case 0x96: util::stream_format(stream, "sub (hl)"); break;
+ case 0x97: util::stream_format(stream, "sub a"); break;
+ case 0x98: util::stream_format(stream, "sbc a,b"); break;
+ case 0x99: util::stream_format(stream, "sbc a,c"); break;
+ case 0x9a: util::stream_format(stream, "sbc a,d"); break;
+ case 0x9b: util::stream_format(stream, "sbc a,e"); break;
+ case 0x9c: util::stream_format(stream, "sbc a,h"); break;
+ case 0x9d: util::stream_format(stream, "sbc a,l"); break;
+ case 0x9e: util::stream_format(stream, "sbc a,(hl)"); break;
+ case 0x9f: util::stream_format(stream, "sbc a,a"); break;
+ case 0xa0: util::stream_format(stream, "and b"); break;
+ case 0xa1: util::stream_format(stream, "and c"); break;
+ case 0xa2: util::stream_format(stream, "and d"); break;
+ case 0xa3: util::stream_format(stream, "and e"); break;
+ case 0xa4: util::stream_format(stream, "and h"); break;
+ case 0xa5: util::stream_format(stream, "and l"); break;
+ case 0xa6: util::stream_format(stream, "and (hl)"); break;
+ case 0xa7: util::stream_format(stream, "and a"); break;
+ case 0xa8: util::stream_format(stream, "xor b"); break;
+ case 0xa9: util::stream_format(stream, "xor c"); break;
+ case 0xaa: util::stream_format(stream, "xor d"); break;
+ case 0xab: util::stream_format(stream, "xor e"); break;
+ case 0xac: util::stream_format(stream, "xor h"); break;
+ case 0xad: util::stream_format(stream, "xor l"); break;
+ case 0xae: util::stream_format(stream, "xor (hl)"); break;
+ case 0xaf: util::stream_format(stream, "xor a"); break;
+ case 0xb0: util::stream_format(stream, "or b"); break;
+ case 0xb1: util::stream_format(stream, "or c"); break;
+ case 0xb2: util::stream_format(stream, "or d"); break;
+ case 0xb3: util::stream_format(stream, "or e"); break;
+ case 0xb4: util::stream_format(stream, "or h"); break;
+ case 0xb5: util::stream_format(stream, "or l"); break;
+ case 0xb6: util::stream_format(stream, "or (hl)"); break;
+ case 0xb7: util::stream_format(stream, "or a"); break;
+ case 0xb8: util::stream_format(stream, "cp b"); break;
+ case 0xb9: util::stream_format(stream, "cp c"); break;
+ case 0xba: util::stream_format(stream, "cp d"); break;
+ case 0xbb: util::stream_format(stream, "cp e"); break;
+ case 0xbc: util::stream_format(stream, "cp h"); break;
+ case 0xbd: util::stream_format(stream, "cp l"); break;
+ case 0xbe: util::stream_format(stream, "cp (hl)"); break;
+ case 0xbf: util::stream_format(stream, "cp a"); break;
+ case 0xc0: util::stream_format(stream, "ret nz"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xc1: util::stream_format(stream, "pop bc"); break;
+ case 0xc2: util::stream_format(stream, "jp nz,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xc3: util::stream_format(stream, "jp $%04x", ARGW(pc)); pc+=2; break;
+ case 0xc4: util::stream_format(stream, "call nz,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xc5: util::stream_format(stream, "push bc"); break;
+ case 0xc6: util::stream_format(stream, "add a,$%02x", ARG(pc)); pc++; break;
+ case 0xc7: util::stream_format(stream, "rst $00"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xc8: util::stream_format(stream, "ret z"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xc9: util::stream_format(stream, "ret"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xca: util::stream_format(stream, "jp z,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xcb: util::stream_format(stream, "rst v,$40 (*)"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xcc: util::stream_format(stream, "call z,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xcd: util::stream_format(stream, "call $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xce: util::stream_format(stream, "adc a,$%02x", ARG(pc)); pc++; break;
+ case 0xcf: util::stream_format(stream, "rst $08"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xd0: util::stream_format(stream, "ret nc"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xd1: util::stream_format(stream, "pop de"); break;
+ case 0xd2: util::stream_format(stream, "jp nc,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xd3: util::stream_format(stream, "out ($%02x),a", ARG(pc)); pc++; break;
+ case 0xd4: util::stream_format(stream, "call nc,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xd5: util::stream_format(stream, "push de"); break;
+ case 0xd6: util::stream_format(stream, "sub $%02x", ARG(pc)); pc++; break;
+ case 0xd7: util::stream_format(stream, "rst $10"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xd8: util::stream_format(stream, "ret c"); break;
+ case 0xd9: util::stream_format(stream, "ld (de),hl (*)"); break;
+ case 0xda: util::stream_format(stream, "jp c,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xdb: util::stream_format(stream, "in a,($%02x)", ARG(pc)); pc++; break;
+ case 0xdc: util::stream_format(stream, "call c,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xdd: util::stream_format(stream, "jp nx,$%04x (*)",ARGW(pc));pc+=2;break;
+ case 0xde: util::stream_format(stream, "sub $%02x", ARG(pc)); pc++; break;
+ case 0xdf: util::stream_format(stream, "rst $18"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xe0: util::stream_format(stream, "ret pe"); break;
+ case 0xe1: util::stream_format(stream, "pop hl"); break;
+ case 0xe2: util::stream_format(stream, "jp pe,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xe3: util::stream_format(stream, "ex (sp),hl"); break;
+ case 0xe4: util::stream_format(stream, "call pe,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xe5: util::stream_format(stream, "push hl"); break;
+ case 0xe6: util::stream_format(stream, "and $%02x", ARG(pc)); pc++; break;
+ case 0xe7: util::stream_format(stream, "rst $20"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xe8: util::stream_format(stream, "ret po"); break;
+ case 0xe9: util::stream_format(stream, "jp (hl)"); break;
+ case 0xea: util::stream_format(stream, "jp po,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xeb: util::stream_format(stream, "ex de,hl"); break;
+ case 0xec: util::stream_format(stream, "call po,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xed: util::stream_format(stream, "ld hl,(de) (*)"); break;
+ case 0xee: util::stream_format(stream, "xor $%02x", ARG(pc)); pc++; break;
+ case 0xef: util::stream_format(stream, "rst $28"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xf0: util::stream_format(stream, "ret p"); break;
+ case 0xf1: util::stream_format(stream, "pop af"); break;
+ case 0xf2: util::stream_format(stream, "jp p,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xf3: util::stream_format(stream, "di"); break;
+ case 0xf4: util::stream_format(stream, "cp $%04x", ARGW(pc)); pc+=2; break;
+ case 0xf5: util::stream_format(stream, "push af"); break;
+ case 0xf6: util::stream_format(stream, "or $%02x", ARG(pc)); pc++; break;
+ case 0xf7: util::stream_format(stream, "rst $30"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xf8: util::stream_format(stream, "ret m"); break;
+ case 0xf9: util::stream_format(stream, "ld sp,hl"); break;
+ case 0xfa: util::stream_format(stream, "jp m,$%04x", ARGW(pc)); pc+=2; break;
+ case 0xfb: util::stream_format(stream, "ei"); break;
+ case 0xfc: util::stream_format(stream, "call m,$%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xfd: util::stream_format(stream, "jp x,$%04x (*)",ARGW(pc));pc+=2; break;
+ case 0xfe: util::stream_format(stream, "cp $%02x", ARG(pc)); pc++; break;
+ case 0xff: util::stream_format(stream, "rst $38"); flags = DASMFLAG_STEP_OVER; break;
#else
- case 0x00: sprintf (buffer,"nop"); break;
- case 0x01: sprintf (buffer,"lxi b,$%04x", ARGW(pc)); pc+=2; break;
- case 0x02: sprintf (buffer,"stax b"); break;
- case 0x03: sprintf (buffer,"inx b"); break;
- case 0x04: sprintf (buffer,"inr b"); break;
- case 0x05: sprintf (buffer,"dcr b"); break;
- case 0x06: sprintf (buffer,"mvi b,$%02x", ARG(pc)); pc++; break;
- case 0x07: sprintf (buffer,"rlc"); break;
- case 0x08: sprintf (buffer,"dsub (*)"); break;
- case 0x09: sprintf (buffer,"dad b"); break;
- case 0x0a: sprintf (buffer,"ldax b"); break;
- case 0x0b: sprintf (buffer,"dcx b"); break;
- case 0x0c: sprintf (buffer,"inr c"); break;
- case 0x0d: sprintf (buffer,"dcr c"); break;
- case 0x0e: sprintf (buffer,"mvi c,$%02x", ARG(pc)); pc++; break;
- case 0x0f: sprintf (buffer,"rrc"); break;
- case 0x10: sprintf (buffer,"asrh (*)"); break;
- case 0x11: sprintf (buffer,"lxi d,$%04x", ARGW(pc)); pc+=2; break;
- case 0x12: sprintf (buffer,"stax d"); break;
- case 0x13: sprintf (buffer,"inx d"); break;
- case 0x14: sprintf (buffer,"inr d"); break;
- case 0x15: sprintf (buffer,"dcr d"); break;
- case 0x16: sprintf (buffer,"mvi d,$%02x", ARG(pc)); pc++; break;
- case 0x17: sprintf (buffer,"ral"); break;
- case 0x18: sprintf (buffer,"rlde (*)"); break;
- case 0x19: sprintf (buffer,"dad d"); break;
- case 0x1a: sprintf (buffer,"ldax d"); break;
- case 0x1b: sprintf (buffer,"dcx d"); break;
- case 0x1c: sprintf (buffer,"inr e"); break;
- case 0x1d: sprintf (buffer,"dcr e"); break;
- case 0x1e: sprintf (buffer,"mvi e,$%02x", ARG(pc)); pc++; break;
- case 0x1f: sprintf (buffer,"rar"); break;
- case 0x20: sprintf (buffer,"rim"); break;
- case 0x21: sprintf (buffer,"lxi h,$%04x", ARGW(pc)); pc+=2; break;
- case 0x22: sprintf (buffer,"shld $%04x", ARGW(pc)); pc+=2; break;
- case 0x23: sprintf (buffer,"inx h"); break;
- case 0x24: sprintf (buffer,"inr h"); break;
- case 0x25: sprintf (buffer,"dcr h"); break;
- case 0x26: sprintf (buffer,"mvi h,$%02x", ARG(pc)); pc++; break;
- case 0x27: sprintf (buffer,"daa"); break;
- case 0x28: sprintf (buffer,"ldeh $%02x (*)", ARG(pc)); pc++; break;
- case 0x29: sprintf (buffer,"dad h"); break;
- case 0x2a: sprintf (buffer,"lhld $%04x", ARGW(pc)); pc+=2; break;
- case 0x2b: sprintf (buffer,"dcx h"); break;
- case 0x2c: sprintf (buffer,"inr l"); break;
- case 0x2d: sprintf (buffer,"dcr l"); break;
- case 0x2e: sprintf (buffer,"mvi l,$%02x", ARG(pc)); pc++; break;
- case 0x2f: sprintf (buffer,"cma"); break;
- case 0x30: sprintf (buffer,"sim"); break;
- case 0x31: sprintf (buffer,"lxi sp,$%04x", ARGW(pc)); pc+=2; break;
- case 0x32: sprintf (buffer,"stax $%04x", ARGW(pc)); pc+=2; break;
- case 0x33: sprintf (buffer,"inx sp"); break;
- case 0x34: sprintf (buffer,"inr m"); break;
- case 0x35: sprintf (buffer,"dcr m"); break;
- case 0x36: sprintf (buffer,"mvi m,$%02x", ARG(pc)); pc++; break;
- case 0x37: sprintf (buffer,"stc"); break;
- case 0x38: sprintf (buffer,"ldes $%02x", ARG(pc)); pc++; break;
- case 0x39: sprintf (buffer,"dad sp"); break;
- case 0x3a: sprintf (buffer,"ldax $%04x", ARGW(pc)); pc+=2; break;
- case 0x3b: sprintf (buffer,"dcx sp"); break;
- case 0x3c: sprintf (buffer,"inr a"); break;
- case 0x3d: sprintf (buffer,"dcr a"); break;
- case 0x3e: sprintf (buffer,"mvi a,$%02x", ARG(pc)); pc++; break;
- case 0x3f: sprintf (buffer,"cmf"); break;
- case 0x40: sprintf (buffer,"mov b,b"); break;
- case 0x41: sprintf (buffer,"mov b,c"); break;
- case 0x42: sprintf (buffer,"mov b,d"); break;
- case 0x43: sprintf (buffer,"mov b,e"); break;
- case 0x44: sprintf (buffer,"mov b,h"); break;
- case 0x45: sprintf (buffer,"mov b,l"); break;
- case 0x46: sprintf (buffer,"mov b,m"); break;
- case 0x47: sprintf (buffer,"mov b,a"); break;
- case 0x48: sprintf (buffer,"mov c,b"); break;
- case 0x49: sprintf (buffer,"mov c,c"); break;
- case 0x4a: sprintf (buffer,"mov c,d"); break;
- case 0x4b: sprintf (buffer,"mov c,e"); break;
- case 0x4c: sprintf (buffer,"mov c,h"); break;
- case 0x4d: sprintf (buffer,"mov c,l"); break;
- case 0x4e: sprintf (buffer,"mov c,m"); break;
- case 0x4f: sprintf (buffer,"mov c,a"); break;
- case 0x50: sprintf (buffer,"mov d,b"); break;
- case 0x51: sprintf (buffer,"mov d,c"); break;
- case 0x52: sprintf (buffer,"mov d,d"); break;
- case 0x53: sprintf (buffer,"mov d,e"); break;
- case 0x54: sprintf (buffer,"mov d,h"); break;
- case 0x55: sprintf (buffer,"mov d,l"); break;
- case 0x56: sprintf (buffer,"mov d,m"); break;
- case 0x57: sprintf (buffer,"mov d,a"); break;
- case 0x58: sprintf (buffer,"mov e,b"); break;
- case 0x59: sprintf (buffer,"mov e,c"); break;
- case 0x5a: sprintf (buffer,"mov e,d"); break;
- case 0x5b: sprintf (buffer,"mov e,e"); break;
- case 0x5c: sprintf (buffer,"mov e,h"); break;
- case 0x5d: sprintf (buffer,"mov e,l"); break;
- case 0x5e: sprintf (buffer,"mov e,m"); break;
- case 0x5f: sprintf (buffer,"mov e,a"); break;
- case 0x60: sprintf (buffer,"mov h,b"); break;
- case 0x61: sprintf (buffer,"mov h,c"); break;
- case 0x62: sprintf (buffer,"mov h,d"); break;
- case 0x63: sprintf (buffer,"mov h,e"); break;
- case 0x64: sprintf (buffer,"mov h,h"); break;
- case 0x65: sprintf (buffer,"mov h,l"); break;
- case 0x66: sprintf (buffer,"mov h,m"); break;
- case 0x67: sprintf (buffer,"mov h,a"); break;
- case 0x68: sprintf (buffer,"mov l,b"); break;
- case 0x69: sprintf (buffer,"mov l,c"); break;
- case 0x6a: sprintf (buffer,"mov l,d"); break;
- case 0x6b: sprintf (buffer,"mov l,e"); break;
- case 0x6c: sprintf (buffer,"mov l,h"); break;
- case 0x6d: sprintf (buffer,"mov l,l"); break;
- case 0x6e: sprintf (buffer,"mov l,m"); break;
- case 0x6f: sprintf (buffer,"mov l,a"); break;
- case 0x70: sprintf (buffer,"mov m,b"); break;
- case 0x71: sprintf (buffer,"mov m,c"); break;
- case 0x72: sprintf (buffer,"mov m,d"); break;
- case 0x73: sprintf (buffer,"mov m,e"); break;
- case 0x74: sprintf (buffer,"mov m,h"); break;
- case 0x75: sprintf (buffer,"mov m,l"); break;
- case 0x76: sprintf (buffer,"hlt"); break;
- case 0x77: sprintf (buffer,"mov m,a"); break;
- case 0x78: sprintf (buffer,"mov a,b"); break;
- case 0x79: sprintf (buffer,"mov a,c"); break;
- case 0x7a: sprintf (buffer,"mov a,d"); break;
- case 0x7b: sprintf (buffer,"mov a,e"); break;
- case 0x7c: sprintf (buffer,"mov a,h"); break;
- case 0x7d: sprintf (buffer,"mov a,l"); break;
- case 0x7e: sprintf (buffer,"mov a,m"); break;
- case 0x7f: sprintf (buffer,"mov a,a"); break;
- case 0x80: sprintf (buffer,"add b"); break;
- case 0x81: sprintf (buffer,"add c"); break;
- case 0x82: sprintf (buffer,"add d"); break;
- case 0x83: sprintf (buffer,"add e"); break;
- case 0x84: sprintf (buffer,"add h"); break;
- case 0x85: sprintf (buffer,"add l"); break;
- case 0x86: sprintf (buffer,"add m"); break;
- case 0x87: sprintf (buffer,"add a"); break;
- case 0x88: sprintf (buffer,"adc b"); break;
- case 0x89: sprintf (buffer,"adc c"); break;
- case 0x8a: sprintf (buffer,"adc d"); break;
- case 0x8b: sprintf (buffer,"adc e"); break;
- case 0x8c: sprintf (buffer,"adc h"); break;
- case 0x8d: sprintf (buffer,"adc l"); break;
- case 0x8e: sprintf (buffer,"adc m"); break;
- case 0x8f: sprintf (buffer,"adc a"); break;
- case 0x90: sprintf (buffer,"sub b"); break;
- case 0x91: sprintf (buffer,"sub c"); break;
- case 0x92: sprintf (buffer,"sub d"); break;
- case 0x93: sprintf (buffer,"sub e"); break;
- case 0x94: sprintf (buffer,"sub h"); break;
- case 0x95: sprintf (buffer,"sub l"); break;
- case 0x96: sprintf (buffer,"sub m"); break;
- case 0x97: sprintf (buffer,"sub a"); break;
- case 0x98: sprintf (buffer,"sbb b"); break;
- case 0x99: sprintf (buffer,"sbb c"); break;
- case 0x9a: sprintf (buffer,"sbb d"); break;
- case 0x9b: sprintf (buffer,"sbb e"); break;
- case 0x9c: sprintf (buffer,"sbb h"); break;
- case 0x9d: sprintf (buffer,"sbb l"); break;
- case 0x9e: sprintf (buffer,"sbb m"); break;
- case 0x9f: sprintf (buffer,"sbb a"); break;
- case 0xa0: sprintf (buffer,"ana b"); break;
- case 0xa1: sprintf (buffer,"ana c"); break;
- case 0xa2: sprintf (buffer,"ana d"); break;
- case 0xa3: sprintf (buffer,"ana e"); break;
- case 0xa4: sprintf (buffer,"ana h"); break;
- case 0xa5: sprintf (buffer,"ana l"); break;
- case 0xa6: sprintf (buffer,"ana m"); break;
- case 0xa7: sprintf (buffer,"ana a"); break;
- case 0xa8: sprintf (buffer,"xra b"); break;
- case 0xa9: sprintf (buffer,"xra c"); break;
- case 0xaa: sprintf (buffer,"xra d"); break;
- case 0xab: sprintf (buffer,"xra e"); break;
- case 0xac: sprintf (buffer,"xra h"); break;
- case 0xad: sprintf (buffer,"xra l"); break;
- case 0xae: sprintf (buffer,"xra m"); break;
- case 0xaf: sprintf (buffer,"xra a"); break;
- case 0xb0: sprintf (buffer,"ora b"); break;
- case 0xb1: sprintf (buffer,"ora c"); break;
- case 0xb2: sprintf (buffer,"ora d"); break;
- case 0xb3: sprintf (buffer,"ora e"); break;
- case 0xb4: sprintf (buffer,"ora h"); break;
- case 0xb5: sprintf (buffer,"ora l"); break;
- case 0xb6: sprintf (buffer,"ora m"); break;
- case 0xb7: sprintf (buffer,"ora a"); break;
- case 0xb8: sprintf (buffer,"cmp b"); break;
- case 0xb9: sprintf (buffer,"cmp c"); break;
- case 0xba: sprintf (buffer,"cmp d"); break;
- case 0xbb: sprintf (buffer,"cmp e"); break;
- case 0xbc: sprintf (buffer,"cmp h"); break;
- case 0xbd: sprintf (buffer,"cmp l"); break;
- case 0xbe: sprintf (buffer,"cmp m"); break;
- case 0xbf: sprintf (buffer,"cmp a"); break;
- case 0xc0: sprintf (buffer,"rnz"); flags = DASMFLAG_STEP_OUT; break;
- case 0xc1: sprintf (buffer,"pop b"); break;
- case 0xc2: sprintf (buffer,"jnz $%04x", ARGW(pc)); pc+=2; break;
- case 0xc3: sprintf (buffer,"jmp $%04x", ARGW(pc)); pc+=2; break;
- case 0xc4: sprintf (buffer,"cnz $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xc5: sprintf (buffer,"push b"); break;
- case 0xc6: sprintf (buffer,"adi $%02x", ARG(pc)); pc++; break;
- case 0xc7: sprintf (buffer,"rst 0"); flags = DASMFLAG_STEP_OVER; break;
- case 0xc8: sprintf (buffer,"rz"); flags = DASMFLAG_STEP_OUT; break;
- case 0xc9: sprintf (buffer,"ret"); flags = DASMFLAG_STEP_OUT; break;
- case 0xca: sprintf (buffer,"jz $%04x", ARGW(pc)); pc+=2; break;
- case 0xcb: sprintf (buffer,"rstv 8 (*)"); flags = DASMFLAG_STEP_OVER; break;
- case 0xcc: sprintf (buffer,"cz $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xcd: sprintf (buffer,"call $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xce: sprintf (buffer,"aci $%02x", ARG(pc)); pc++; break;
- case 0xcf: sprintf (buffer,"rst 1"); flags = DASMFLAG_STEP_OVER; break;
- case 0xd0: sprintf (buffer,"rnc"); flags = DASMFLAG_STEP_OUT; break;
- case 0xd1: sprintf (buffer,"pop d"); break;
- case 0xd2: sprintf (buffer,"jnc $%04x", ARGW(pc)); pc+=2; break;
- case 0xd3: sprintf (buffer,"out $%02x", ARG(pc)); pc++; break;
- case 0xd4: sprintf (buffer,"cnc $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xd5: sprintf (buffer,"push d"); break;
- case 0xd6: sprintf (buffer,"sui $%02x", ARG(pc)); pc++; break;
- case 0xd7: sprintf (buffer,"rst 2"); flags = DASMFLAG_STEP_OVER; break;
- case 0xd8: sprintf (buffer,"rc"); flags = DASMFLAG_STEP_OUT; break;
- case 0xd9: sprintf (buffer,"shlx d (*)"); break;
- case 0xda: sprintf (buffer,"jc $%04x", ARGW(pc)); pc+=2; break;
- case 0xdb: sprintf (buffer,"in $%02x", ARG(pc)); pc++; break;
- case 0xdc: sprintf (buffer,"cc $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xdd: sprintf (buffer,"jnx $%04x (*)", ARGW(pc)); pc+=2; break;
- case 0xde: sprintf (buffer,"sbi $%02x", ARG(pc)); pc++; break;
- case 0xdf: sprintf (buffer,"rst 3"); flags = DASMFLAG_STEP_OVER; break;
- case 0xe0: sprintf (buffer,"rpo"); flags = DASMFLAG_STEP_OUT; break;
- case 0xe1: sprintf (buffer,"pop h"); break;
- case 0xe2: sprintf (buffer,"jpo $%04x", ARGW(pc)); pc+=2; break;
- case 0xe3: sprintf (buffer,"xthl"); break;
- case 0xe4: sprintf (buffer,"cpo $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xe5: sprintf (buffer,"push h"); break;
- case 0xe6: sprintf (buffer,"ani $%02x", ARG(pc)); pc++; break;
- case 0xe7: sprintf (buffer,"rst 4"); flags = DASMFLAG_STEP_OVER; break;
- case 0xe8: sprintf (buffer,"rpe"); flags = DASMFLAG_STEP_OUT; break;
- case 0xe9: sprintf (buffer,"pchl"); break;
- case 0xea: sprintf (buffer,"jpe $%04x", ARGW(pc)); pc+=2; break;
- case 0xeb: sprintf (buffer,"xchg"); break;
- case 0xec: sprintf (buffer,"cpe $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xed: sprintf (buffer,"lhlx d (*)"); break;
- case 0xee: sprintf (buffer,"xri $%02x", ARG(pc)); pc++; break;
- case 0xef: sprintf (buffer,"rst 5"); flags = DASMFLAG_STEP_OVER; break;
- case 0xf0: sprintf (buffer,"rp"); flags = DASMFLAG_STEP_OUT; break;
- case 0xf1: sprintf (buffer,"pop a"); break;
- case 0xf2: sprintf (buffer,"jp $%04x", ARGW(pc)); pc+=2; break;
- case 0xf3: sprintf (buffer,"di"); break;
- case 0xf4: sprintf (buffer,"cp $%04x", ARGW(pc)); pc+=2; break;
- case 0xf5: sprintf (buffer,"push a"); break;
- case 0xf6: sprintf (buffer,"ori $%02x", ARG(pc)); pc++; break;
- case 0xf7: sprintf (buffer,"rst 6"); flags = DASMFLAG_STEP_OVER; break;
- case 0xf8: sprintf (buffer,"rm"); flags = DASMFLAG_STEP_OUT; break;
- case 0xf9: sprintf (buffer,"sphl"); break;
- case 0xfa: sprintf (buffer,"jm $%04x", ARGW(pc)); pc+=2; break;
- case 0xfb: sprintf (buffer,"ei"); break;
- case 0xfc: sprintf (buffer,"cm $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
- case 0xfd: sprintf (buffer,"jx $%04x (*)", ARGW(pc)); pc+=2; break;
- case 0xfe: sprintf (buffer,"cpi $%02x", ARG(pc)); pc++; break;
- case 0xff: sprintf (buffer,"rst 7"); flags = DASMFLAG_STEP_OVER; break;
+ case 0x00: util::stream_format(stream, "nop"); break;
+ case 0x01: util::stream_format(stream, "lxi b,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x02: util::stream_format(stream, "stax b"); break;
+ case 0x03: util::stream_format(stream, "inx b"); break;
+ case 0x04: util::stream_format(stream, "inr b"); break;
+ case 0x05: util::stream_format(stream, "dcr b"); break;
+ case 0x06: util::stream_format(stream, "mvi b,$%02x", ARG(pc)); pc++; break;
+ case 0x07: util::stream_format(stream, "rlc"); break;
+ case 0x08: util::stream_format(stream, "dsub (*)"); break;
+ case 0x09: util::stream_format(stream, "dad b"); break;
+ case 0x0a: util::stream_format(stream, "ldax b"); break;
+ case 0x0b: util::stream_format(stream, "dcx b"); break;
+ case 0x0c: util::stream_format(stream, "inr c"); break;
+ case 0x0d: util::stream_format(stream, "dcr c"); break;
+ case 0x0e: util::stream_format(stream, "mvi c,$%02x", ARG(pc)); pc++; break;
+ case 0x0f: util::stream_format(stream, "rrc"); break;
+ case 0x10: util::stream_format(stream, "asrh (*)"); break;
+ case 0x11: util::stream_format(stream, "lxi d,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x12: util::stream_format(stream, "stax d"); break;
+ case 0x13: util::stream_format(stream, "inx d"); break;
+ case 0x14: util::stream_format(stream, "inr d"); break;
+ case 0x15: util::stream_format(stream, "dcr d"); break;
+ case 0x16: util::stream_format(stream, "mvi d,$%02x", ARG(pc)); pc++; break;
+ case 0x17: util::stream_format(stream, "ral"); break;
+ case 0x18: util::stream_format(stream, "rlde (*)"); break;
+ case 0x19: util::stream_format(stream, "dad d"); break;
+ case 0x1a: util::stream_format(stream, "ldax d"); break;
+ case 0x1b: util::stream_format(stream, "dcx d"); break;
+ case 0x1c: util::stream_format(stream, "inr e"); break;
+ case 0x1d: util::stream_format(stream, "dcr e"); break;
+ case 0x1e: util::stream_format(stream, "mvi e,$%02x", ARG(pc)); pc++; break;
+ case 0x1f: util::stream_format(stream, "rar"); break;
+ case 0x20: util::stream_format(stream, "rim"); break;
+ case 0x21: util::stream_format(stream, "lxi h,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x22: util::stream_format(stream, "shld $%04x", ARGW(pc)); pc+=2; break;
+ case 0x23: util::stream_format(stream, "inx h"); break;
+ case 0x24: util::stream_format(stream, "inr h"); break;
+ case 0x25: util::stream_format(stream, "dcr h"); break;
+ case 0x26: util::stream_format(stream, "mvi h,$%02x", ARG(pc)); pc++; break;
+ case 0x27: util::stream_format(stream, "daa"); break;
+ case 0x28: util::stream_format(stream, "ldeh $%02x (*)", ARG(pc)); pc++; break;
+ case 0x29: util::stream_format(stream, "dad h"); break;
+ case 0x2a: util::stream_format(stream, "lhld $%04x", ARGW(pc)); pc+=2; break;
+ case 0x2b: util::stream_format(stream, "dcx h"); break;
+ case 0x2c: util::stream_format(stream, "inr l"); break;
+ case 0x2d: util::stream_format(stream, "dcr l"); break;
+ case 0x2e: util::stream_format(stream, "mvi l,$%02x", ARG(pc)); pc++; break;
+ case 0x2f: util::stream_format(stream, "cma"); break;
+ case 0x30: util::stream_format(stream, "sim"); break;
+ case 0x31: util::stream_format(stream, "lxi sp,$%04x", ARGW(pc)); pc+=2; break;
+ case 0x32: util::stream_format(stream, "stax $%04x", ARGW(pc)); pc+=2; break;
+ case 0x33: util::stream_format(stream, "inx sp"); break;
+ case 0x34: util::stream_format(stream, "inr m"); break;
+ case 0x35: util::stream_format(stream, "dcr m"); break;
+ case 0x36: util::stream_format(stream, "mvi m,$%02x", ARG(pc)); pc++; break;
+ case 0x37: util::stream_format(stream, "stc"); break;
+ case 0x38: util::stream_format(stream, "ldes $%02x", ARG(pc)); pc++; break;
+ case 0x39: util::stream_format(stream, "dad sp"); break;
+ case 0x3a: util::stream_format(stream, "ldax $%04x", ARGW(pc)); pc+=2; break;
+ case 0x3b: util::stream_format(stream, "dcx sp"); break;
+ case 0x3c: util::stream_format(stream, "inr a"); break;
+ case 0x3d: util::stream_format(stream, "dcr a"); break;
+ case 0x3e: util::stream_format(stream, "mvi a,$%02x", ARG(pc)); pc++; break;
+ case 0x3f: util::stream_format(stream, "cmf"); break;
+ case 0x40: util::stream_format(stream, "mov b,b"); break;
+ case 0x41: util::stream_format(stream, "mov b,c"); break;
+ case 0x42: util::stream_format(stream, "mov b,d"); break;
+ case 0x43: util::stream_format(stream, "mov b,e"); break;
+ case 0x44: util::stream_format(stream, "mov b,h"); break;
+ case 0x45: util::stream_format(stream, "mov b,l"); break;
+ case 0x46: util::stream_format(stream, "mov b,m"); break;
+ case 0x47: util::stream_format(stream, "mov b,a"); break;
+ case 0x48: util::stream_format(stream, "mov c,b"); break;
+ case 0x49: util::stream_format(stream, "mov c,c"); break;
+ case 0x4a: util::stream_format(stream, "mov c,d"); break;
+ case 0x4b: util::stream_format(stream, "mov c,e"); break;
+ case 0x4c: util::stream_format(stream, "mov c,h"); break;
+ case 0x4d: util::stream_format(stream, "mov c,l"); break;
+ case 0x4e: util::stream_format(stream, "mov c,m"); break;
+ case 0x4f: util::stream_format(stream, "mov c,a"); break;
+ case 0x50: util::stream_format(stream, "mov d,b"); break;
+ case 0x51: util::stream_format(stream, "mov d,c"); break;
+ case 0x52: util::stream_format(stream, "mov d,d"); break;
+ case 0x53: util::stream_format(stream, "mov d,e"); break;
+ case 0x54: util::stream_format(stream, "mov d,h"); break;
+ case 0x55: util::stream_format(stream, "mov d,l"); break;
+ case 0x56: util::stream_format(stream, "mov d,m"); break;
+ case 0x57: util::stream_format(stream, "mov d,a"); break;
+ case 0x58: util::stream_format(stream, "mov e,b"); break;
+ case 0x59: util::stream_format(stream, "mov e,c"); break;
+ case 0x5a: util::stream_format(stream, "mov e,d"); break;
+ case 0x5b: util::stream_format(stream, "mov e,e"); break;
+ case 0x5c: util::stream_format(stream, "mov e,h"); break;
+ case 0x5d: util::stream_format(stream, "mov e,l"); break;
+ case 0x5e: util::stream_format(stream, "mov e,m"); break;
+ case 0x5f: util::stream_format(stream, "mov e,a"); break;
+ case 0x60: util::stream_format(stream, "mov h,b"); break;
+ case 0x61: util::stream_format(stream, "mov h,c"); break;
+ case 0x62: util::stream_format(stream, "mov h,d"); break;
+ case 0x63: util::stream_format(stream, "mov h,e"); break;
+ case 0x64: util::stream_format(stream, "mov h,h"); break;
+ case 0x65: util::stream_format(stream, "mov h,l"); break;
+ case 0x66: util::stream_format(stream, "mov h,m"); break;
+ case 0x67: util::stream_format(stream, "mov h,a"); break;
+ case 0x68: util::stream_format(stream, "mov l,b"); break;
+ case 0x69: util::stream_format(stream, "mov l,c"); break;
+ case 0x6a: util::stream_format(stream, "mov l,d"); break;
+ case 0x6b: util::stream_format(stream, "mov l,e"); break;
+ case 0x6c: util::stream_format(stream, "mov l,h"); break;
+ case 0x6d: util::stream_format(stream, "mov l,l"); break;
+ case 0x6e: util::stream_format(stream, "mov l,m"); break;
+ case 0x6f: util::stream_format(stream, "mov l,a"); break;
+ case 0x70: util::stream_format(stream, "mov m,b"); break;
+ case 0x71: util::stream_format(stream, "mov m,c"); break;
+ case 0x72: util::stream_format(stream, "mov m,d"); break;
+ case 0x73: util::stream_format(stream, "mov m,e"); break;
+ case 0x74: util::stream_format(stream, "mov m,h"); break;
+ case 0x75: util::stream_format(stream, "mov m,l"); break;
+ case 0x76: util::stream_format(stream, "hlt"); break;
+ case 0x77: util::stream_format(stream, "mov m,a"); break;
+ case 0x78: util::stream_format(stream, "mov a,b"); break;
+ case 0x79: util::stream_format(stream, "mov a,c"); break;
+ case 0x7a: util::stream_format(stream, "mov a,d"); break;
+ case 0x7b: util::stream_format(stream, "mov a,e"); break;
+ case 0x7c: util::stream_format(stream, "mov a,h"); break;
+ case 0x7d: util::stream_format(stream, "mov a,l"); break;
+ case 0x7e: util::stream_format(stream, "mov a,m"); break;
+ case 0x7f: util::stream_format(stream, "mov a,a"); break;
+ case 0x80: util::stream_format(stream, "add b"); break;
+ case 0x81: util::stream_format(stream, "add c"); break;
+ case 0x82: util::stream_format(stream, "add d"); break;
+ case 0x83: util::stream_format(stream, "add e"); break;
+ case 0x84: util::stream_format(stream, "add h"); break;
+ case 0x85: util::stream_format(stream, "add l"); break;
+ case 0x86: util::stream_format(stream, "add m"); break;
+ case 0x87: util::stream_format(stream, "add a"); break;
+ case 0x88: util::stream_format(stream, "adc b"); break;
+ case 0x89: util::stream_format(stream, "adc c"); break;
+ case 0x8a: util::stream_format(stream, "adc d"); break;
+ case 0x8b: util::stream_format(stream, "adc e"); break;
+ case 0x8c: util::stream_format(stream, "adc h"); break;
+ case 0x8d: util::stream_format(stream, "adc l"); break;
+ case 0x8e: util::stream_format(stream, "adc m"); break;
+ case 0x8f: util::stream_format(stream, "adc a"); break;
+ case 0x90: util::stream_format(stream, "sub b"); break;
+ case 0x91: util::stream_format(stream, "sub c"); break;
+ case 0x92: util::stream_format(stream, "sub d"); break;
+ case 0x93: util::stream_format(stream, "sub e"); break;
+ case 0x94: util::stream_format(stream, "sub h"); break;
+ case 0x95: util::stream_format(stream, "sub l"); break;
+ case 0x96: util::stream_format(stream, "sub m"); break;
+ case 0x97: util::stream_format(stream, "sub a"); break;
+ case 0x98: util::stream_format(stream, "sbb b"); break;
+ case 0x99: util::stream_format(stream, "sbb c"); break;
+ case 0x9a: util::stream_format(stream, "sbb d"); break;
+ case 0x9b: util::stream_format(stream, "sbb e"); break;
+ case 0x9c: util::stream_format(stream, "sbb h"); break;
+ case 0x9d: util::stream_format(stream, "sbb l"); break;
+ case 0x9e: util::stream_format(stream, "sbb m"); break;
+ case 0x9f: util::stream_format(stream, "sbb a"); break;
+ case 0xa0: util::stream_format(stream, "ana b"); break;
+ case 0xa1: util::stream_format(stream, "ana c"); break;
+ case 0xa2: util::stream_format(stream, "ana d"); break;
+ case 0xa3: util::stream_format(stream, "ana e"); break;
+ case 0xa4: util::stream_format(stream, "ana h"); break;
+ case 0xa5: util::stream_format(stream, "ana l"); break;
+ case 0xa6: util::stream_format(stream, "ana m"); break;
+ case 0xa7: util::stream_format(stream, "ana a"); break;
+ case 0xa8: util::stream_format(stream, "xra b"); break;
+ case 0xa9: util::stream_format(stream, "xra c"); break;
+ case 0xaa: util::stream_format(stream, "xra d"); break;
+ case 0xab: util::stream_format(stream, "xra e"); break;
+ case 0xac: util::stream_format(stream, "xra h"); break;
+ case 0xad: util::stream_format(stream, "xra l"); break;
+ case 0xae: util::stream_format(stream, "xra m"); break;
+ case 0xaf: util::stream_format(stream, "xra a"); break;
+ case 0xb0: util::stream_format(stream, "ora b"); break;
+ case 0xb1: util::stream_format(stream, "ora c"); break;
+ case 0xb2: util::stream_format(stream, "ora d"); break;
+ case 0xb3: util::stream_format(stream, "ora e"); break;
+ case 0xb4: util::stream_format(stream, "ora h"); break;
+ case 0xb5: util::stream_format(stream, "ora l"); break;
+ case 0xb6: util::stream_format(stream, "ora m"); break;
+ case 0xb7: util::stream_format(stream, "ora a"); break;
+ case 0xb8: util::stream_format(stream, "cmp b"); break;
+ case 0xb9: util::stream_format(stream, "cmp c"); break;
+ case 0xba: util::stream_format(stream, "cmp d"); break;
+ case 0xbb: util::stream_format(stream, "cmp e"); break;
+ case 0xbc: util::stream_format(stream, "cmp h"); break;
+ case 0xbd: util::stream_format(stream, "cmp l"); break;
+ case 0xbe: util::stream_format(stream, "cmp m"); break;
+ case 0xbf: util::stream_format(stream, "cmp a"); break;
+ case 0xc0: util::stream_format(stream, "rnz"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xc1: util::stream_format(stream, "pop b"); break;
+ case 0xc2: util::stream_format(stream, "jnz $%04x", ARGW(pc)); pc+=2; break;
+ case 0xc3: util::stream_format(stream, "jmp $%04x", ARGW(pc)); pc+=2; break;
+ case 0xc4: util::stream_format(stream, "cnz $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xc5: util::stream_format(stream, "push b"); break;
+ case 0xc6: util::stream_format(stream, "adi $%02x", ARG(pc)); pc++; break;
+ case 0xc7: util::stream_format(stream, "rst 0"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xc8: util::stream_format(stream, "rz"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xc9: util::stream_format(stream, "ret"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xca: util::stream_format(stream, "jz $%04x", ARGW(pc)); pc+=2; break;
+ case 0xcb: util::stream_format(stream, "rstv 8 (*)"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xcc: util::stream_format(stream, "cz $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xcd: util::stream_format(stream, "call $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xce: util::stream_format(stream, "aci $%02x", ARG(pc)); pc++; break;
+ case 0xcf: util::stream_format(stream, "rst 1"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xd0: util::stream_format(stream, "rnc"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xd1: util::stream_format(stream, "pop d"); break;
+ case 0xd2: util::stream_format(stream, "jnc $%04x", ARGW(pc)); pc+=2; break;
+ case 0xd3: util::stream_format(stream, "out $%02x", ARG(pc)); pc++; break;
+ case 0xd4: util::stream_format(stream, "cnc $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xd5: util::stream_format(stream, "push d"); break;
+ case 0xd6: util::stream_format(stream, "sui $%02x", ARG(pc)); pc++; break;
+ case 0xd7: util::stream_format(stream, "rst 2"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xd8: util::stream_format(stream, "rc"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xd9: util::stream_format(stream, "shlx d (*)"); break;
+ case 0xda: util::stream_format(stream, "jc $%04x", ARGW(pc)); pc+=2; break;
+ case 0xdb: util::stream_format(stream, "in $%02x", ARG(pc)); pc++; break;
+ case 0xdc: util::stream_format(stream, "cc $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xdd: util::stream_format(stream, "jnx $%04x (*)", ARGW(pc)); pc+=2; break;
+ case 0xde: util::stream_format(stream, "sbi $%02x", ARG(pc)); pc++; break;
+ case 0xdf: util::stream_format(stream, "rst 3"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xe0: util::stream_format(stream, "rpo"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xe1: util::stream_format(stream, "pop h"); break;
+ case 0xe2: util::stream_format(stream, "jpo $%04x", ARGW(pc)); pc+=2; break;
+ case 0xe3: util::stream_format(stream, "xthl"); break;
+ case 0xe4: util::stream_format(stream, "cpo $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xe5: util::stream_format(stream, "push h"); break;
+ case 0xe6: util::stream_format(stream, "ani $%02x", ARG(pc)); pc++; break;
+ case 0xe7: util::stream_format(stream, "rst 4"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xe8: util::stream_format(stream, "rpe"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xe9: util::stream_format(stream, "pchl"); break;
+ case 0xea: util::stream_format(stream, "jpe $%04x", ARGW(pc)); pc+=2; break;
+ case 0xeb: util::stream_format(stream, "xchg"); break;
+ case 0xec: util::stream_format(stream, "cpe $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xed: util::stream_format(stream, "lhlx d (*)"); break;
+ case 0xee: util::stream_format(stream, "xri $%02x", ARG(pc)); pc++; break;
+ case 0xef: util::stream_format(stream, "rst 5"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xf0: util::stream_format(stream, "rp"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xf1: util::stream_format(stream, "pop a"); break;
+ case 0xf2: util::stream_format(stream, "jp $%04x", ARGW(pc)); pc+=2; break;
+ case 0xf3: util::stream_format(stream, "di"); break;
+ case 0xf4: util::stream_format(stream, "cp $%04x", ARGW(pc)); pc+=2; break;
+ case 0xf5: util::stream_format(stream, "push a"); break;
+ case 0xf6: util::stream_format(stream, "ori $%02x", ARG(pc)); pc++; break;
+ case 0xf7: util::stream_format(stream, "rst 6"); flags = DASMFLAG_STEP_OVER; break;
+ case 0xf8: util::stream_format(stream, "rm"); flags = DASMFLAG_STEP_OUT; break;
+ case 0xf9: util::stream_format(stream, "sphl"); break;
+ case 0xfa: util::stream_format(stream, "jm $%04x", ARGW(pc)); pc+=2; break;
+ case 0xfb: util::stream_format(stream, "ei"); break;
+ case 0xfc: util::stream_format(stream, "cm $%04x", ARGW(pc)); pc+=2; flags = DASMFLAG_STEP_OVER; break;
+ case 0xfd: util::stream_format(stream, "jx $%04x (*)", ARGW(pc)); pc+=2; break;
+ case 0xfe: util::stream_format(stream, "cpi $%02x", ARG(pc)); pc++; break;
+ case 0xff: util::stream_format(stream, "rst 7"); flags = DASMFLAG_STEP_OVER; break;
#endif
}
return (pc - PC) | flags | DASMFLAG_SUPPORTED;
}
+
+
+CPU_DISASSEMBLE(i8085)
+{
+ std::ostringstream stream;
+ offs_t result = internal_disasm_i8085(device, stream, pc, oprom, opram, options);
+ std::string stream_str = stream.str();
+ strcpy(buffer, stream_str.c_str());
+ return result;
+}