How do I specify to radare2 that what I'm disassembling when I know it is a DOS MZ executable?As it does not auto-detect this for me.
Disassembling an unknown DOS MZ executable using radare2
disassembly;radare2
You can disassemble a DOS 16-bit executable using radare2 as follows:Example using TEXTINST.EXE from the FreeDOS 1.1 CDROM image:bash$ radare2 TEXTINST.EXESS : 214fSP : 4c00IP : 0CS : 0NRELOCS: 1RELOC  : 1cCHKSUM : 0[0000:0020]> aa[0000:0020]> pd 10   ;      [0] va=0x00000020 pa=0x00000020 sz=67272 vsz=67272 rwx=-rwx .text            ;-- section..text:            0000:0020    b93b03       mov cx, 0x33b            0000:0023    be7406       mov si, 0x674            0000:0026    89f7         mov di, si            0000:0028    1e           push ds            0000:0029    a9b580       test ax, 0x80b5        |   0000:002c    8cc8         mov ax, cs        |   0000:002e    050510       add ax, 0x1005        |   0000:0031    8ed8         mov ds, ax        |   0000:0033    05f010       add ax, 0x10f0        |   0000:0036    8ec0         mov es, ax(etc)If required, you can force the disassembler, etc. to assume DOS as follows:e asm.arch=x86e asm.os=dosIf you think you have a DOS executable and the above doesn't work, there may be something more subtle going on, and you should post a question showing specifically what you tried, what you expect and what is not working.  Note: showing what you tried, etc. is more likely to elicit answers on the SE sites...