I would like to have Arduino bootloader code in my XMEGA that uses USART as a virtual COM port which Arduino recognizes while the rest of the code is used for file management of internal Flash storage chip and SD card which can be only with USB protocol. Now, how can I have both USART and USB be connected to one USB socket so that when it's inserted in the PC, it serves as a USB Mass Storage device and Virtual COM Port at the same time? I don't want to have two USB sockets sticking out of my device. It's not really nice to see.
If you're going to give me any example code right now, keep in mind that I'll be writing the bootloader in assembler so I would like it to be assemblerizable in case it's in C. The reason is that the Boot Section should have something like a kernel and I want maximum efficiency which can only be achieved with assembler.