I know that this may sound like a stupid question, but why do we even have to use the compressor that Microsoft used? There are plenty of EXE/COM compressors that could be modified to do that same job. Once it's loaded into RAM, it hardly matters what the code on disk looks like. The tasks I see needed to make it work: 1) Create a replacement of the decompression stub that understands the format you want to use. Some really good compressors have decompression stubs that will fit within 2KB. 2) Create a version of the compression tool's library that can deal with the IO.SYS file's raw (decompressed) image. This will create the file to append to the stub. 3) Combine the compressed stream with the stub and you have a newly compressed IO.SYS. I think this may be a good project to try out. It's been a while since I hacked DOS code.