The History of MSX-DOS
This page was last modified 22:50, 26 September 2020 by Briqunullus. Based on work by Rderooy and JohnHassink and others.


Despite it's age, the development of MSX-DOS has been pretty well documented. Tim Paterson, the original author, has shared details on his role during development. Also, a changelog has been available from the MSX-DOS kit, revealing bugs and release dates for all official MSX-DOS versions.

Tim Paterson

Tim Paterson is an American computer programmer, best known as the original author of MS-DOS, the most widely used personal computer operating system in the 1980s.

In 1983 Tim Paterson was contracted by Microsoft to port MS-DOS 1.25 to the MSX Platform.

Tim Paterson is currently the owner of Paterson Technology.

Recently contacted, Tim has kindly accepted to share the history of the MSX-DOS development with the MSX Community:

Here’s what I can reconstruct about the history of MSX-DOS:

On August 10, 1983 I got a call from Paul Allen asking me to do a Z80 version of MS-DOS. I didn’t jump at the chance, as I was trying to get the first product for my startup Falcon Systems ready to go. I made a suggestion of one or two others I thought could do it and he said he’d already asked. He was in a hurry to get it done and nobody else could meet his timeline. But he was willing to pay cash and let my company distribute MS-DOS, so I decided it was a good deal. On August 17th I signed an agreement to do Z80 MS-DOS 1.25 for $100,000 and the right to distribute MS-DOS 2.0, 2.5, & 3.0 with a hardware product without royalty.

To me this was a translation process. I had already written a Z80-to-8086 assembly language translation program (TRANS). In this case I was manually translating the other direction. Because MS-DOS was able to run CP/M applications that had been translated to 8086, that should mean MSX-DOS would be able to run CP/M programs directly. So while I think of MSX-DOS as the Z80 version of MS-DOS, it could also be viewed as a CP/M knock-off that used the MS-DOS disk format.

I sat at a Heath/Zenith H19 terminal connected to a Seattle Computer Products 8086 computer running MS-DOS with a dual PerSci 8” floppy disk drive. I used MicroPro WordMaster (not the more well-known WordStar) as my editor, which I had ported to DOS myself by disassembling the 8-bit CP/M version and translating (with TRANS) to 8086 assembler. I looked at a few lines of DOS source code in 8086 assembly langauge and typed in the same operation in Z80 assembly language.

I also wrote a Z80 emulator that ran under MS-DOS, simulating a CP/M machine, which I got in working on August 27, 1983. This allowed me to do the entire development project under MS-DOS. I would assemble the Z80 source code using Microsoft’s M80 assembler running under the emulator, and link it with L80.

The MSX-DOS I was writing had an I/O System layer that interfaced directly to the I/O System layer of the MS-DOS machine that was running the emulation. That gave MSX-DOS direct access and control of the disk format. Most of the core code was file management so this was necessary to test it out. I would back up my work on the second drive of the PerSci and “let ‘er rip”, giving MSX-DOS full control. Of course in the early days, bugs would crop up that trashed the disk.

By October 2nd I had Microsoft BASIC and M80 run under MSX-DOS. I finished coding COMMAND.COM a few days later. I worked out some bugs and demonstrated MSX-DOS to Paul Allen on October 11th. I officially delivered the beta test version October 26th. It included an Easter egg that printed my name, but I don’t remember how it was activated. My name was encoded with FAT code so it couldn’t be found by simply searching the file.

After my delivery the code was sent to ASCII in Japan. They created the I/O System for the MSX machine. They would report bugs and I would fix them. On one occasion in early January 1984, I made a revision which then trashed my disk when I ran it emulated. Unfortunately I had gotten use to things working and hadn’t backed up. It took a day to recover the lost data.

ASCII had a very sharp Japanese programmer on the project, Jey Suzuki. He figured out the Easter egg and added his name to it along with mine.

ASCII was having problems getting MSX-DOS working on the actual MSX machine. They did not provide a machine for me, and instead had me come to Tokyo to help them. On January 28th I left for Japan with Chris Larson, where we met up with Kay Nishi and his people. It turned out they’d been hacking away at the code without telling me, so we weren’t working from the same code base. I spent three days in Tokyo figuring out the problems (and got a little tourist time in). I don’t work well under pressure so I didn’t try to do any coding there. I continued working on and off on MSX-DOS in February.

Chris Larson & Jey Suzuki came by my office at the end of February and early March. They brought an MSX machine with an In-Circuit Emulator (ICE) for debugging. We got everything working and I didn’t hear anything more until April. There was a little more work to do, and then on April 23, 1984, Microsoft accepted delivery and made the final payment.

I did fix a few bugs after that, but that was pretty much the end of any contact with the project. I never heard anything more about MSX at all.

I hope this answers your questions.

Tim Paterson
Paterson Technology

Youtube video of easter egg

T Paterson & J Suzuki

Release dates

Information below has been taken from the changelog in the MSX-DOS kit. This document also describes various bugs across these versions. Please note that not all of these versions have been available to the general public.

msxdos.sys version version release date
0.26 0.12 Unknown
1.00 1.00 June 20, 1984
1.01 October 12, 1984
1.02 November 14, 1984
1.03 December 15, 1984
1.04 For in-house review only
1.05 January 29, 1985
1.06 February 21, 1985
1.07 February 28, 1985
1.01 March 7, 1985
1.08 March 24, 1985
1.09 April 30, 1985
1.02 1.10 July 21, 1985
1.03 1.11 Hal-F August 23, 1985
1.11 Tim Paterson September 2, 1985