quote: Original post by Anonymous Poster
Atually, Windows 9x is a new operating system, with backwards compatibility for DOS. It rewrites the old DOS files completely, and uses 32-bit code instead of 16-bit. In fact, there is almost zero DOS code left in Windows NT and Windows 2000.
Windows 3.x are drivers on top of DOS. Windows 95 and above are a complete new operating system.
Too much hype here -- Windows 95 is essentially a re-written 3.x with a host of new features and standards. If you don't believe me, go into MSDOS.SYS and either add or change the line:
BootGUI=0
Then it'll only boot to DOS, without starting Windows 95. Keyword: starting! DOS 7.00 is essentially only DOS 6.22 with support for long filenames. Where do people get the idea that the DOS utilities (like EDIT.EXE, SMARTDRV.EXE, COMMAND.COM, etc.) run with 32-bit multi-tasking code? They don't. Windows just provides its own "extender" in the form of a new memory model and slightly different EXE format for programs that run in Windows. Also note: try running a Windows program from a DOS-only boot as prescribed above. What do you get then? A message saying that it only runs under Windows.
Windows 98 and Windows 98 Second Edition are just improvements and bug fixes for Windows 95. MS took a big leap away with Windows 2000, though.
quote: Original post by Anonymous Poster
Programmers complain about Windows because DOS is much faster, and since it isn't multi-tasking, it won't pull the processor off to do another job, giving your game less time to do stuff like calculations and rendering the screen.
They complain because they're ignorant and lazy. They don't want to learn complex tasks like putting a window on the screen and using abstract libs like DX, all the while not realizing that they would spend more time learning a new set of libraries for each game. Pathetic.
quote: Original post by Anonymous Poster
And I'm not sure if they all like the idea of making everything "more abstract" anyway; many programmers prefer to work closer to the macine. Again, making programming more abstract also slows the programs down.
Wrong. Adding abstraction speeds things up. Why this apparent contradiction? Because it allows greater freedom to the hardware manufacturers. More freedom = faster speed increases. They don't have to worry about making it work with so many different programs by creating several drivers, custom libs, and workarounds for each product. As long as it complies with Windows standards, it works. Abstraction, when learned properly, allows you to focus on your particular task as completely as possible. Like it or not, human brains use abstraction all the time and function best when using abstraction. Abstraction is defined as the picking out of important details and leaving the unnecessary ones. As such, it hardly serves to slow things down. How can you slow down program code by thinking more logically?
quote: Original post by DQuadros
It looks to me that
1) Most Windows games don't use the Windows UI
2) Even if you write a "DOS game" it will end up running under Windows, as PC are sold with Windows pre-installed
3) If the user like the game he will start it through a shortcut at the desktop, not typing commands in a DOS Box
So, to the user, it won't matter if its a "DOS" or "Windows" game. This is a developer decision.
Wrong. You forgot to mention compatibility, support, and development time (which matters to users because of support). Better coding results in better programs, which results in more user satisfaction.
quote: Original post by DQuadros
What is the difference betweem a "DOS" and a "Windows" game when you are running it under Windows? Since Windows/386 (that is, even before Windows 3.0), DOS programs run in a VM (Virtual Machine), so Windows is actually looking over your shoulder (and interfering) while you mess up with the hardware - so you will still get a performance hit (when compared to a "bare DOS" environment.
Someone finally made an intelligent argument for DOS -- something about the Windows DOS VM. In case you didn't know, ALL of my DOS games run much faster from a Windows DOS box (meaning: in the VM) than from a pure DOS boot (outside the VM). Why? Abstraction provides faster drivers. No, I'm not going insane. The bus-mastering drivers used by the VM load things from disk as much as 10x as fast in most of my games. Video and sound processes on my PCI-based machine run almost concurrently (while the code to put send the data does not). However, the code to send data to the sound card is trivial compared to the processing of that sound data that the sound card does.
Look at a prime example of DOS abstraction: the Sound Blaster API. Write a game for the Sound Blaster 16 and you now have almost sound universal support. The only difference between the DOS model was its archaic (and poorly designed) device model, memory model, CPU model, etc. For those of you who want to run DOS games in Windows 9x, there are NUMEROUS switches that control such things as available memory, hotkeys, halting the VM for that app when switching back to Windows, disallowing the screen saver, hogging the CPU, etc. Almost anything that Windows provides that might interrupt or slow the DOS program can be disabled.
quote: Original post by abe_bcs
I definitely agree with masterboy. DOS is a hellava lot cooler, and faster. It's got freedom, man. In windows, for every method you code, you have to check if some other ding-dang program is covering your face. Sure, windows has a lot of standardization(everything's M$ , but anyone can write a similar kind of lib for DOS. The main reason most people get pissed off with DOS is it's lack of a GUI. Any reasonably talented programmer can make one, and one to suit the application, with all kinds of new and cool controls, titlebars below, minimize boxes to the left... And don't say that windows is standardized. I'm sure a user wouldn't mind this 'de-standarditarion' if it helps him use that particular App.
Someone else said you can make interfaces for DOS programs that behave like Windows. First argument: re-creating something for each individual program that someone else already did is stupid. Second argument: you can't change DOS itself by adding a GUI, but you can give it a shell. However, you'd just be re-creating Windows. If something else has been written for you, use it. Windows already has a functional GUI, and as I challenged before, anything useful you can do in DOS, you can also do in Windows, and better.
I'm sorry, but de-standardization is an ignorant concept. Ignorant of the market, the trends, and programming in general. Standards are the only way multiple programmers work together. Also, the whole idea of Windows was to enable users to simply choose the "documents" or tasks they want, as apposed to having to choose and learn a new program and new style. Users don't care if it has a custom GUI!! All they want to do is get their work done.
quote: Original post by Blah!
DOS is good. You have to learn how to things manualy.
In my computer class at school they make us work in DOS because they want us to learn how to do things ourself.
If they had any sense, they'd use console apps instead, and then teach how the hardware works with diagrams. Everything you learn in DOS -- all the neat tricks -- have to be unlearned before you can try Windows because of the different memory model and multi-tasking and sharing of resources, etc. All of those thing you learn in DOS only serve to hinder coding in Windows.
Forgive me for saying so, but most DOS code looks like someone fell asleep on the keyboard. Honestly, some people think that functions were faster if their names were shortened to as few letters as possible! DOS is dying. Very, very, very fast. As a development platform, it is dead.
People seem to have the misconception that DOS is simple and Windows is complex. In reality, it's the other way around. The only difficult thing in moving from DOS to Windows is the elimination of stupid (or just ignorant) programming practices. Poor commenting. Taking over the whole computer. Depending on "tricks" that are better termed stupid-undocumented-dependencies-that-tie-the-code-down. Each new DOS program imposes more of a burden on the compatibility of DOS as a whole. You see, under DOS, people didn't have to write good code to sell their product. As long as it worked, no matter if it went 10,000 lines without a single comment, it sold.
Instead of learning to use Windows, they opt for the "simple" days of DOS! They spend their days chuckling about all the poor Windows programmers who have to learn the Windows API to code programs, all the while they calmly create the equivalent of the Windows libraries without multi-tasking. How ignorant! Windows 9x, was, after all is said and done, just a large abstraction layer for DOS.
- null_pointer
Sabre Multimedia
Edited by - null_pointer on 3/30/00 8:22:56 AM