In response to a few comments, I revised my answer to contain a short version without my personal interests included.
Question: Was this assembly language approach used also in the newest versions of MS-DOS in the 1990s?
TL;DR version: (I also give my 'rant' below for anyone interested. I thought it might spur some good discussion.)
No ... but they kept it as long as they could.
- This is akin to "Would you cut off your legs just because you bought a new car?"
- Assembly was preferred for optimizing efficiency and would not have been discarded without good reason. Nearly every line of code mapped directly to a machine code instruction. This was a marvel and allowed intimate control over the computer's resources.
- It was 'normal' for programmers to use assembly back then. Assembly closely mirrored machine code and was as close as most humans could get to communicating directly with the computer. For anything that constantly made calls directly to hardware, this was the 'go to' language.
- Higher level languages with convenient syntax and builtin help for common functions all had to be interpreted or compiled. This step could introduce errors, or at the very least would use general algorithms or methods that likely would not be the most efficient in every situation.
- Constraints were different then - memory and storage were very scarce. Processing power and bus speeds were never enough. Optimized, bug-free code was the main goal.
- Because assembly was common, it was easy. People thought in terms of interrupts, memory addresses, and flags. Still time consuming, but not particularly difficult.
- This was cutting edge stuff. It was the best that could be done within the constraints of cost and materials that came with the ambitious of goal of an actual working computer that people could have in their home or office.
- Programs were small enough that one person could write, debug, and optimize if needed. There were no huge communities of coders, no internet, and few minimal BBS forums. It was a frustratingly solitary activity. Portability and reusability were not quite as important.
Things have changed dramatically since then ... it has been exciting to be a part of it so far. After all these years, questions like this bring up 'big picture' thoughts for me. Maybe it's just me ... if watching the cultural shifts that mirror the computer revolution is too dull, I'll delete this and move on.
I suppose it is hard to imagine nowadays, but programmers were used to writing in assembly language, even straight machine code sometimes. For many tasks, there just wasn't anything else. It was the way things happened and it was miles better than punchcards or hand wiring circuits.
You have to imagine the context. It is something like people today trying to understand just how important the library was before there was internet or even modems. You could not just "google" something. If you wanted to know, you had to a) figure it out, b) find a book, or c) ask an expert. If you happened to be in a small town, you were stuck with (a) and "reinventing the wheel."
What is the cost of this convenience? People back then were much better at figuring out how to learn something. This is something I know for sure. I've been a teacher for nearly 20 years. I've seen it happen. I even have data, but any glance at the forum topics will give you the answer. Because it was a challenge to find information or knowledge about a subject, it took a lot more thinking and planning. People gained some wicked high level thinking skills just learning how to change spark plugs, testing a capacitor, or even trying over and over to find the best way to fix a flat on a bicycle.
The easy availability of information has led to less developed information gathering and information assessment skills. People 'just google it' but have no idea how to judge which information is true or reliable. Without frustration, failure, and practice, they don't know what to value and many end up valuing nothing at all.
We have a tragic subset of depressing people now who are so unwilling to put forth even the smallest amount of effort that they won't even use Google to look something up. They answer, "I don't know!" This answer isn't allowed anymore. "I don't know" just doesn't make sense when anything that is known or has ever been known is at our fingertips. Willful ignorance must be the insidious disease of the people whose lives are just too easy.
I'm suggesting that coding has become something similar. There are tons of front end tools, font services, tag managers, and huge libraries available ... all just to make a website. In back end services, there are tons of resources to manage databases, do scientific calculations, and manage systems. Cars can drive themselves. Social media accounts can be completely automated. Soon, computers will be coding themselves ... and they will do it better than us almost immediately.
In many modern situations, programmers don't have to really concern themselves with memory management, device access, reading ports, managing interrupts, optimizing hard drive access times, or any of the lower level things that actually make a computer work. It has become more and more 'symbolic' and 'virtual.' Programmers are nestled cozily in a soft bed of libraries and environments that take a lot of the critical thought and creativity away from the activity. I suppose soon we will just sit in front of a computer, or have a conversation while walking in the mall with one, and just ramble on about our creative ideas while the computer implements them in real time somewhere around the world.
I'm not sure whether it is better or worse, but it is definitely different. Would I prefer to code a modern application in assembly language? Nope. Not even a little bit. Do I find it handy that there are software libraries and wonderful communities of open source developers working together? Yes! What used to be a frustratingly solitary activity is now something that is shared.
In the sharing, something beneficial has been added. Extra value has
been created that wasn't there before. Just like in the Youtuber
community, the rising tide lifts all boats.
BUT, for the people who never had to do all that thinking and make it fit in 4k of RAM, my anecdotal observations say that they have lost something valuable and I don't know if anything has been put back into the system to replace those lost critical thinking skills.
We have gained a wonderful social commodity but at the cost collective creativity and problem solving skills.
How it will work out ... I certainly do not know, but it is a fun ride.