William Couture gmail.com> writes: > I wouldn't pay for that level of "translation" -- it would be worse > than useless. Why ? The point is to turn the assembly into compilable C. Of course there can be a lot of tuning done but the point is that the 'useless' output will actually compile on any C compiler (with some care). So maybe your example (DOS specific IO and program termination) was not so good. Maybe someone wrote math and random number functions and such and those would be ported relatively painlessly. Or a specific structure packer/unpacker for a strange database record format. Also a pattern matcher could easily replace the final /mov\W+ax,\W+4c00h.*\n\W+int\W+21h'/ with /exit(0);/ (warning: regexp above is almost certainly wrong). Same for the print code, which should be rendered as puts(message); with the 0x24 replaced with '\0';. This is all just beautification imho. The point is that this way works. In general there are two tables, one of patterns which replaces instruction groups (and system calls) with C library call sequences and another which replaces the remaining instructions. This is done in two or several passes. Peter P. -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist