tags:

views:

430

answers:

5

In what language was MSDOS originally written in?

The Wikipedia Article implies either C, QBasic or Pascal, but:

  • C was invented to write UNIX, so I don't believe it was used to write MSDOS
  • Pascal seems popular to teach programming, but not really popular to write Operating systems in
  • QBasic didn't seem to be very popular for Operating Systems at the time MSDOS was developed (or was *BASIC ever very popular to write Operating Systems in it?)

Except these three languages there is also Assembly, but I assume that Microsoft already switched from Assembly to a "higher" level language?

Since C was originally invented for UNIX, I still wouldn't think Microsoft is using C... although the Microsoft API is written in C (I find this kind-of oxymoronic, actually).

Can anyone enlighten me on this topic?

+8  A: 

Well, MS-DOS was originally a renamed 86-DOS, and 86-DOS was written in assembly if I'm not mistaken, so that would make ASM the original language for MS-DOS as well.

Gonzalo Quero
Actually, it was originally called QDOS (quick and dirty operating system) and it was written in assembly language.
Ferruccio
QDOS was the original name. 86-DOS was the commercial name.
Gonzalo Quero
+3  A: 

http://answers.google.com/answers/threadview?id=197874

Since CP/M was written in FORTRAN and QDOS was based on CP/M, does it mean that QDOS and MS-DOS were written in FORTRAN? According to our next article, written by Tim Patterson himself, the assembly language used by Seattle Computer Products wasn't FORTRAN but was built in-house since it was the only thing available to them at that time.

"The last design requirement was that MS-DOS be written in assembly language. While this characteristic does help meet the need for speed and efficiency, the reason for including it is much more basic. The only 8086 software-development tools available to Seattle Computer at that time were an assembler that ran on the Z80 under CP/M and a monitor/debugger that fit into a 2K-byte EPROM (erasable programmable read-only memory). Both of these tools had been developed in house."

"An Inside Look at MS-DOS" http://www.patersontech.com/Dos/Byte/InsideDos.htm

zalew
CP/M was no more written in FORTRAN than it was written in Chinese. And FORTRAN is not an assembly language.Don't you just love the mounds of crap you can find on the internet if you look.
anon
And this is exactly what the citation says: MS-DOS was written in assembly, with an in house developed toolchain working on the Z80 under CP/M
tonio
So... MSDOS was written in FORTRAN? I'm afraid I've misunderstood that somehow... :(But then again it would have been silly to write MSDOS in assembly if the Machine where MSDOS was developed on was written in a higher language
nebukadnezzar
@tonio: I didn't mind reading the article yet, but thank you for pointing that out!
nebukadnezzar
@zalew - When I was writing code for CP/M around 1983/4 I used 8080 Assembler. There is NO WAY that CP/M was written in Fortran.
Simon Knights
I, too, wrote code for CP/M in 1980-1983, most of it in assembly language (8080). I also had a Forth system for my CP/M, but the core applications provided by Digital Research were all written in 8080 assembler, as far as I know. The of the main driving forces was memory size, and I don't think any of the FORTRAN compilers of the time could produce compact enough code.
Ralph
@Ralph We had, and used, a Fortran compiler for our CP/M system. Too long ago to recall much about it though !
Simon Knights
A: 

Unix pre-dates MS-DOS, so that's not an impediment for it to be programmed en C. But I'd go for the assembly for most parts at least...

fortran
True, especially since the WINAPI is written in C as well. maybe it was just the common stereotype of "Unix/Linux vs. Windows" thingy that led me believing that Microsoft maybe just tried to avoid anything remotely UNIxish :P
nebukadnezzar
@nebukadnezzar Microsoft used be a UNIX vendor - see http://en.wikipedia.org/wiki/Xenix
anon
And Windows was originally developed on Xenix.
Andrew McGregor
@neil Butterworth: Interesting Link, I didn't know Microsoft used to develope a UNIX flavoured Operating system
nebukadnezzar
Windows 1, 2, 3.x and 95 were all written in assembler of the x86 variety (at least everything on the operating system side of the Win16/32 API was). That probably means that Windows 98 and Me were also written in assembler.
JeremyP
@JeremyP I find it difficult to believe that Windows 95 (or even more 98 and Me) were written in assembler language!
fortran
It's true. The kernel and GDI and device drivers and so on were written in assembler. The userland tools (like notepad) were of course written in C. In fact the GDI was 95% identical to the GDI in Windows 3.1 in spite of the fact that it was 16 bit code.
JeremyP
My source is my copy of this book:http://www.amazon.com/Systems-Programming-Windows-Microsoft-Progamming/dp/1556159498/ref=pd_sim_b_2
JeremyP
@JeremyP :-O (that would explain some things about stability, though xD)
fortran
+2  A: 

See the timeline

stacker
Thanks for the links! It's very interesting to see how an Operating system was implemented back then.
nebukadnezzar
+2  A: 

As stated on http://www.patersontech.com/Dos/Byte/InsideDos.htm

"The last design requirement was that MS-DOS be written in assembly language."

(Note that alot of appllications, not just operating system parts, were written in assembly back then.)

nos