Remote-Url: https://hackaday.com/2021/12/20/building-ms-dos-from-scratch-like-its-1983/ Retrieved-at: 2021-12-20 17:20:14.919296+00:00 Skip to content Logo Hackaday Primary Menu * Home * Blog * Hackaday.io * Tindie * Hackaday Prize * Submit * About * Search for: [ ] [Search] December 20, 2021 Building MS-DOS From Scratch Like It's 1983 No comments * by: Robin Kearey December 20, 2021 * * * * * Title: [Building MS-DOS From] Copy Short Link: [https://hackaday.com] Copy [DOS-2] Building a complete operating system by compiling its source code is not something for the faint-hearted; a modern Linux or BSD distribution contains thousands of packages with millions of lines of code, all of which need to be processed in the right order and the result stored in the proper place. For all but the most hardcore Gentoo devotees, it's way easier to get pre-compiled binaries, but obviously someone must have run the entire compilation process at some point. What's true for modern OSes also holds for ancient software such as MS-DOS. When Microsoft released the source code for several DOS versions a couple of years ago, many people pored over the code to look for weird comments and undocumented features, but few actually tried to compile the whole package. But [Michal Necasek] over at the OS/2 Museum didn't shy away from that challenge, and documented the entirely-not-straightforward process of compiling DOS 2.11 from source. The first problem was figuring out which version had been made available: although the Computer History Museum labelled the package simply as "MS-DOS 2.0", it actually contained a mix of OEM binaries from version 2.0, source code from version 2.11 and some other stuff left from the development process. The OEM binaries are mostly finished executables, but also contain basic source code for some system components, allowing computer manufacturers to tailor those components to their specific hardware platform. Compiling the source code was not trivial either. [Michal] was determined to use period-correct tools and examined the behaviour of about a dozen versions of MASM, the assembler likely to have been used by Microsoft in the early 1980s. As it turned out, version 1.25 from 1983 produced code that most closely matched the object code found in existing binaries, and even then some pieces of source code required slight modifications to build correctly. [Michal]'s blog post also goes into extensive detail on the subtle differences between Microsoft-style and IBM-style DOS, which go deeper than just the names of system files (MSDOS.SYS versus IBMDOS.COM). The end result of this exercise is a modified DOS 2.11 source package that actually compiles to a working set of binaries, unlike the original. And although this does not generate any new code, since binaries of DOS 2.11 have long been available, it does provide a fascinating look into software development practices in an age when even the basic components of the PC platform were not fully standardized. And don't forget that even today some people still like to develop new DOS software. * [share_face] * [share_twit] * [share_in] * [share_mail] Posted in Retrocomputing, Software HacksTagged assembly language, computer history, ms-dos, PC DOS Post navigation ? Is Cloud Seeding Good, Bad, Or Ugly? Leave a Reply Cancel reply Please be kind and respectful to help make the comments section excellent. ( Comment Policy) This site uses Akismet to reduce spam. Learn how your comment data is processed . Search Search for: [ ] [Search] Never miss a hack Follow on facebook Follow on twitter Follow on youtube Follow on rss Contact us Subscribe [ ] [ ] [Subscribe] If you missed it * [CloudSeedi] Is Cloud Seeding Good, Bad, Or Ugly? 2 Comments * [law-2] Error Codes And The Law Of Least Astonishment 52 Comments * [img_pp_vir] PinePhone Malware Surprises Users, Raises Questions 79 Comments * [Consciousn] The Real Science (Not Armchair Science) Of Consciousness 41 Comments * [Aluminum-t] Mining And Refining: From Red Dirt To Aluminum 29 Comments More from this category Our Columns * [links-thum] Hackaday Links: December 19, 2021 23 Comments * [automation] The End Of The Electromechanical Era 118 Comments * [microphone] Hackaday Podcast 149: Ballerina Bot Balances, Flexures Track Cat Food, PCB Goes Under The Knife, And An ATtiny Does The 555 1 Comment * [darkarts-t] This Week In Security: Log4j, PDF CPU, And I Hacked Starlink 33 Comments * [EliciaWhit] Keynote Video: Elecia White Finds Treasure In The Memory Map 9 Comments More from this category Search Search for: [ ] [Search] Never miss a hack Follow on facebook Follow on twitter Follow on youtube Follow on rss Contact us Subscribe [ ] [ ] [Subscribe] If you missed it * [CloudSeedi] Is Cloud Seeding Good, Bad, Or Ugly? 2 Comments * [law-2] Error Codes And The Law Of Least Astonishment 52 Comments * [img_pp_vir] PinePhone Malware Surprises Users, Raises Questions 79 Comments * [Consciousn] The Real Science (Not Armchair Science) Of Consciousness 41 Comments * [Aluminum-t] Mining And Refining: From Red Dirt To Aluminum 29 Comments More from this category Categories Categories[Select Category ] Our Columns * [links-thum] Hackaday Links: December 19, 2021 23 Comments * [automation] The End Of The Electromechanical Era 118 Comments * [microphone] Hackaday Podcast 149: Ballerina Bot Balances, Flexures Track Cat Food, PCB Goes Under The Knife, And An ATtiny Does The 555 1 Comment * [darkarts-t] This Week In Security: Log4j, PDF CPU, And I Hacked Starlink 33 Comments * [EliciaWhit] Keynote Video: Elecia White Finds Treasure In The Memory Map 9 Comments More from this category Recent comments * HorstBaerbel on Is Cloud Seeding Good, Bad, Or Ugly? * denis obrien on Hackaday Links: December 19, 2021 * Michael Black on HDD Vending Machine Works Like A Vending Machine Should * Twisty Plastic on This Week In Security: Log4j, PDF CPU, And I Hacked Starlink * The Commenter Formerly Known As Ren on Is Cloud Seeding Good, Bad, Or Ugly? * Twisty Plastic on The End Of The Electromechanical Era * smellsofbikes on When Does Car Hacking Become "Tampering"? The British Government Seeks Guidance * Foldi-One on This Week In Security: Log4j, PDF CPU, And I Hacked Starlink * Twisty Plastic on HDD Vending Machine Works Like A Vending Machine Should * dave on When Does Car Hacking Become "Tampering"? The British Government Seeks Guidance Now on Hackaday.io * Aaron Covrig liked Vendotron. * ogghst has updated the project titled GrowNode. * Bharbour has updated details to Should Have Used a 555. * ogghst has added details to GrowNode. * Pataki 'Ash' ?bris has added Grow Light Feather Wing to Take a second look. * Bharbour has added a new log for Should Have Used a 555. * Pataki 'Ash' ?bris has added Turing ring to Take a second look. * diyburi liked Metal 3D-printer based on induction heating.... * vlk liked Raspberry PI 400 cyberdetox display. * Yann Guidon / YGDES wrote a reply on project log 0.2" wide strips for autmomated assembly. Logo * Home * Blog * Hackaday.io * Tindie * Hackaday Prize * Video * Submit A Tip * About * Contact Us Never miss a hack Follow on facebook Follow on twitter Follow on youtube Follow on rss Contact us Subscribe to Newsletter [ ] [ ] [Subscribe] Copyright ? 2021 | Hackaday, Hack A Day, and the Skull and Wrenches Logo are Trademarks of Hackaday.com | Privacy Policy | Terms of Service Powered by WordPress VIP [impression] [close] By using our website and services, you expressly agree to the placement of our performance, functionality and advertising cookies. Learn more OK