It is a tremendously giving exercise. I practically learned programming doing that. Disassembling an entire MSDOS like operating system and then amending it with print spooling, RAM disk, and the ability to run two tasks simultaneously on special RAM bank switching hardware a.o. (But then we realised that the PC with MSDOS would win and went on doing other more specialised things.)