Archived

This topic is now archived and is closed to further replies.

Mr Master

Is DOS dead?

Recommended Posts

Why does every one keep coding for windows when dos is in many aspects way better. And don''t start by saying that windows is a bigger market, cause windows supports dos apps. I know that there will be (some) people out ther who agree with me. So my idea is if we all start coding for dos maybe people will start using it again. Also many people belive that windows can do much more than dos, this is not true, DOS can do the same(with the propper drivers), if not more than windows or any other OS can. In what ever way you twist it or turn it dos RuleZ!

Share this post


Link to post
Share on other sites
Well the current windows version (95/98) currently supports DOS because it still has 16Bit code in it. The other versions based on the NT kernel only have 32Bit support.
IE: It can support SOME DOS apps.
It only supports [DOS] apps that dont write to the hardware
directly. So future versions of Windows will not support anything that writes to the hardware. I hate to tell you this but...
DOS *IS* dead

Share this post


Link to post
Share on other sites
This has been talked about a lot. It took a long time to leave DOS. It''s a good system. One big plus for windows is windows does a lot more for you. It is so easy to do simple things like play CD''s and video using MCI calls. This is good for me because my current project uses CD audio for music. The API''s are good, but I beleive Direct X has a lot of unneccesary initialization stuff, but that''s why I and other people have made wrappers for it.

You hit what I think is the biggest point though. You have a better chance of selling your game and getting into the industry if you program for windows. I remember when all the good games were DOS games, and windows games were crap. Dos still couldn''t hold on even then.

Direct X and Open GL are good reason for the conversion, but DOS has libraries like Allegro, MidPak, and Fast Graph, but FG may have a windows version now.

If you want to program for DOS using those libraries, go for it. You''ll have to test your program on a lot of systems. You will probably also want to make a simple windows programmer with a picture that users can use to launch your program.

Domini

Share this post


Link to post
Share on other sites
The only use for DOS now, is for learning how to program for the first time.

I didn''t see Blah''s post because I was writing mine when he was wrote his. He''s got it.

Domini

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Windows was made to allow applications to have a common interface, and to make it easier for the average user. The average Windows user doesn''t want to go back to a command-line interface. They''d rather stick with icons and not have to worry about command-line switches or batch file programming or applications that don''t multitask. If you think you can make a windowing enviroment that''s better than Windows, go ahead. Nobody''s stopping you.

You might want to look into Linux. It''s a programmer''s dream OS. You can do what DOS can do, and more. And the X windowing enviroment is good for those who would rather create Windows-like programs.

Allegro has been ported to Windows and Linux. OpenGL is found in Linux also.



CobraA1
http://www.geocities.com/moss-taylor

Share this post


Link to post
Share on other sites
quote:

Why does every one keep coding for windows when dos is in many aspects way better. And don't start by saying that windows is a bigger market, cause windows supports dos apps. I know that there will be (some) people out ther who agree with me.



How, exactly, is DOS superior?


quote:

So my idea is if we all start coding for dos maybe people will start using it again. Also many people belive that windows can do much more than dos, this is not true, DOS can do the same(with the propper drivers), if not more than windows or any other OS can. In what ever way you twist it or turn it dos RuleZ!



They quit for a reason. What was it?

Yeah, DOS can do the same with proper drivers -- actually, Windows 9x itself is, conceptually, "just" a collection of drivers built on top of DOS. So it's not just a different OS altogether -- just a huge-collection-of-drivers-and-standards-and-libraries.

Why do people continually fight having to learn Windows programming? It's not terrible -- its just more abstract. Kind of like Structured Programming vs. OOP (no, I'm not looking to start a flame war ).


In what ever way you twist it or turn it Windows RuleZ!





- null_pointer
Sabre Multimedia


Edited by - null_pointer on 3/29/00 5:21:28 PM

Share this post


Link to post
Share on other sites
Guest 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.

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.

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.

However, Windows is much more popular, and easier to work with for the average user. Always consider a port to Windows so you can have the widest audience, even if you didn''t origionally make the program/game in Windows.

And I personally like Linux better than both.

CobraA1
http://www.geocities.com/moss-taylor

Share this post


Link to post
Share on other sites
This is a !%&&¤# old topic! DOS simply sucks, it''s a horrible, pervert OS that can''t do anything and still manages to crash itself. Linux, on the other hand, is a weird OS that makes you rely on any guides you have to even get it to work and doesn''t allow basic direct hardware use.. that''s just bad. Windows crashes every ten minutes, but at least it has the hardware support _that dos and linux lack_.
Anyways, I wouldn''t crush DOS completely.. there are still lots of (non-game) legacy applications in use, and DOS is waaay better than windows for learning programming. But still, developing for it? -- BAD IDEA. You don''t really gain anything, but lose a whole lot of things that you get from windows.

Share this post


Link to post
Share on other sites
DOS doesnt suck! And its not perverted!
Painless you kinda sound like Dr. Zaius in Beneath The Planet of The Apes when he first sees the human bust sculptures .

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.

Dont forget that its a *command line* OS, so is UNIX (and any other based on UNIX like Linux)

And I personnaly dont think Linux is weird. Its great for servers since it doesnt crash everytime you try to do 2 things at once =).

In a nutshell, command line OS are like Assembly:
Its longer but faster and the majority of people dont use it !

Edited by - Blah! on 3/29/00 7:48:01 PM

Edited by - Blah! on 3/29/00 7:50:16 PM

Share this post


Link to post
Share on other sites
I forgot to put this in my second post:

Linux and DOS *DO* have hardware support:
back in the days they were called *DRIVERS* oooh! aaah!

You wanted your game to use the new joystick?
You called the company that made that joystick and asked them for drivers, then you began coding!

Nowadays with windows all you do is code for that faceless
entity called "DirectInput".

Oh well now im starting to sound like my grandpa and im only 16

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
I have an even better idea:

Lets drop it all: Windows, DOS, Unix and its variants and lets all start coding fo BeOS!

Thats right! I like BeOS and Im proud of it!

sweet, sweet BeOS *drool*

Share this post


Link to post
Share on other sites
beos is free now btw =)

DOS isn''t dead, but it''s doomed. MS is looking to NT kernel for the mainstream after the next win9x release (Win Millenium i think).

Got info from GDC2k. MS also strongly recommended testing your code on win2k.

Share this post


Link to post
Share on other sites
DOS is good for learning really simple game programming stuff, but since DOS is not very likely to be hanging around for much longer, it''s not worth learning to use drivers to access hardware IMHO, instead get used to API''s and such like (I''m in the process of doing this now). I think Windows (95) is OK, but it isn''t very efficent for writing games, and not too stable, I don''t know if Win2K is any better.

It would be good if you could instruct Windows to temporarily unload everything you don''t need (so it''s basically DOS with API''s for using hardware etc)

What d''ya reckon?

George.

"Who says computer games affect kids, imagine if PacMan affected us as kids, we'd all sit around in a darkened room munching pills and listening to repetitive music....uh oh!"

Share this post


Link to post
Share on other sites
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,



Hardly If it was a new operating system, it wouldn''t need autoexec.bat, msdos.sys, etc etc. It is a reimplementation of an old operating system.

quote:

and uses 32-bit code instead of 16-bit.



You''ve never looked at all the processes that Win95 runs, have you?

Much of the base code is still 16-bit.

quote:

In fact, there is almost zero DOS code left in Windows NT and Windows 2000.



This much is true.

quote:

Windows 3.x are drivers on top of DOS. Windows 95 and above are a complete new operating system.



I feel you''ve been misled by MS propaganda. The 9x range are heavily DOS-based and contain significant amounts of 16-bit code. Just because it modifies certain system files to look different to DOS, doesn''t really qualify it as a ''complete new'' OS. More of a new environment.

Share this post


Link to post
Share on other sites
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.

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.

You should also remember that there are two main flavors of Windows Apps: the GUI and the Console. A Windows Console App is something similar to DOS, but runs in a "full" 32-bit enviroment (as full as Windows go, anyway).

In the end, I would say that the difference is in the tools and APIs available (or missing). To write a "big" game under bare DOS (for example, one that uses SVGA resolution) you will need a DOS-extender, video drivers, joystick drivers, sound board drivers, etc.

In the good old days video boards were pretty standard - a good VGA driver would cover all bases. Since the SVGA this has changed (VESA BIOS was a partial solution to that). Like it or not, hardware manufactors are building more and more "Windows hardware" - strange beasts that can only be used if you have a driver for the manufacturer (or get technical detail from them and write your own driver) - look at the infamous Windows Modems.

I realy like being able to use "char big_map [20][100][100]" whithout worrying that it is bigger than 64K, doing a BitBlt that will probably use hardware acceleration even if I dont''t have an idea how that is done with each specific board, playing a MID file through an strange sound board, etc. Hey, my software will probably even work with hardware released long after I released it!

I still use DOS box a lot, but a have no doubt: Windows is a better environment for writing games.

Share this post


Link to post
Share on other sites
DOS is not dead, it is actually still used here and there. One place where it will be used is in my own personal MP3/CD/DVD player that I''m building at the moment, but that''s not the point.

DirectX is actually faster in some aspects them pure DOS, the reson being that nowdays drivers for hardware is written specially for DirectX so it will be able to access it directly (long sentance, but you''ll get it!).

I personly enjoy the freedom DOS gives the user, however, DOS is not part of the future, window-controlled systems are. So if you''re aiming to the general public Windows 9x or 2K is the way to go.

/Mr K

Share this post


Link to post
Share on other sites
Okay I''ll post a little more serious this time
Quadros - you have a good point with your drivers, but it''s worse than you think.

For Graphics Hardware ( and lets face it, that''s the only thing that interests most of us ), usually you can''t even GET the technical details that will allow you to write your own drivers, you have to rely on the manufacturer''s drivers that are unfortunately usually windows only.

So you CAN''T EVEN USE those things in dos

~ Mad Keith ~
**SoftwareMode**

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
So as we have seen here there are many advants/deadvants to windows/dos programming. This null dude talked about (dos)programmers being lazy, bacause of complex tasks. Look in the mirrir and see the lazy windows programmer letting windows take care of every thing. Programming his luxurius C++, automaticaly compiling it into cpu opcodes. And I''ll show you an example of how ''fast'' direct x is. Just to prove my point I deassembled a part of the direct x ddraw

functions, look at this:
Xor al,al ;these are not refferenced
add al,04 ;to by jmp, loop, ect
wich in c equals:
var_x = 0;
var_x = var_x + 4;

Now I mean this is how ''good'' direct x is.
Now I must say there are also ways inbetween windows and dos boxes, like dpmi or win assembly. And with the exception of some video cards all hardware pretty much support one or more standard(s).

And to all the people out there: Carpe Diem

Share this post


Link to post
Share on other sites
My point was that DOS is harder to work with.
And dont say this isnt true. Ask anyone who has made a game with DOS and Windows and ask them wich is easier. Im sure they''ll say Windows. Cuz they dont have to worry about drivers.

BTW: Im in high-school, we dont have programming courses, just how to use a computer course that i took so I wouldnt have to actualle learn a 4 language over the 3 that I already know.

Regarding the course: we learn to use DOS then we move to Win3.1 then to Win9x

Share this post


Link to post
Share on other sites
I think that Null_Pointer knows what he''s talking about. I mean, who would write a huge post and flame a whole bunch of people if they didn''t know what they were talking about?

As for my opinion on DOS, I liked DOS because you didn''t have to do what Windows wanted you to do first, register your window and set of the message handler, etc., and then get to your code. But, I also had a hard time in DOS since DOS didn''t do any of the technical hardware overhead for you. In Windows, not only do you have a huge library of functions and pre-typed code (woohoo ), but its almost trivial to communicate with the hardware since Windows takes care of (most of) the techy details (and takes away some of the control you had in DOS).
All in all, DOS is dead. Its been dead for a while. Go to a (modern) computer software store, and just TRY to find a program made for DOS. Didn''t find one? Just what I thought...

Share this post


Link to post
Share on other sites
Heh. I''m going to add to an already bloated thread. It will be short though.

I agree with Null Pointer on everything except that I do think DOS is an easier platform to _start_ C or C++ programming in. This may be because that''s path I took and had to ''un-learn'' a lot of stuff when I moved to Win32. However, I still have this opinion. MS code is BUTT-UGLY. Why must every type be in caps??? Its like going to a chat line with a bunch of 10 years olds obsessed with caps lock. And don''t get me start on Hungarian notation (I know it has to practical value, but its annoying as hell).

Main reasons I think DOS sucks:

1. segmented memory model. You want something ''hardcore'' use Linux. It is actually 32-bit and none of this dumbass segment-offset BS.

2. shared code. I never did get terribly proficient in all the DOS tricks and stuff, and I may be wrong in this statement, but to my knowledge DOS offers nothing in the way of a standardized .dll solution.

To people who like DOS because you have to do everything yourself.. If you really want to, use Windows and do everything yourself. No one is forcing you to use windows common dialogs, etc.

Just my $0.02.




I guess this is where most people put a famous quote...
"Everything is funnier with monkey''s" - Unknown

Share this post


Link to post
Share on other sites