I recently felt inclined to write a tool that converts an executable into a batch script. However, I was annoyed at the 64k size limit. So, how to get around it? For shits and giggles, implement a COM file that will decode base64-encoded binary data, glued to the back of the BAT file, and write it to a file on disk. Use the same DEBUG trick to extract that COM, and you have yourself arbitrary exe2bat conversion. This is useless but fun, and maybe you are curious about my idea of fucked up 16-bit assembler.
I have been fighting with GCC for almost a week, looking for a way to incorporate ASM functions with C code - in such a way that it would compile properly under Visual C++ and GCC at the same time. What can I say, I finally came up with a bit of a dirty trick, and I felt like sharing it.