Jump to content
  • Advertisement

Archived

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

Mr Master

Is DOS dead?

This topic is 6972 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Guest Anonymous Poster

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.


OK, now get an old DOS disk (Not made by windows 9x!) and open MSDOS.SYS. It''s not in plain text! It''s in machine language! MSDOS.SYS being a plain text file is a windows thing. Don''t tell me Windows hasn''t re-written the bootup files.

And autoexec.bat, config.sys, etc. are maintained for backward compatibility. Windows NT and 2000 show that Windows can run fine without DOS, although 9x still have a version of DOS built-in.

As for programming? As far as I can see, anything beyond command-line programming for DOS requires knowledge of of your video driver or access to something like Allegro. And most DOS games that I see use a horribly low resolution!

DirectX isn''t faster for displaying graphics unless you take advantage of an accelerator card. I tried a demo of Microsoft''s entertainment pack on my old 486/33, which was basically a Pac-man game that uses DirectX. It went slower than a PCjr (8 MHz machine) running the same game, without DirectX! I don''t think the speed of DirectX vs. MS-DOS is the issue. The issue, it seems, is how understandable and efficient the code itself is. I personally feel that how easy a program is to understand is based on the programmer. I''ve seen clean DOS programs, horrid Windows ones, and vice versa.

The transition from one OS to another isn''t easy. null_pointer expressed his distaste for DOS, but is Windows that much easier?

hWnd? huh? sz(whatever)? (LPCTSTR)IDD_ABOUTBOX? What the ****?
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)?

What about this?
#if !defined(AFX_GOODBYEWORLD_H__3052D835_08CC_11D4_80E0_00104B9F6F8D__INCLUDED_)
#define AFX_GOODBYEWORLD_H__3052D835_08CC_11D4_80E0_00104B9F6F8D__INCLUDED_

All this in what Microsoft Visual C++ claims to be a "Hello World" program, and has about 162 lines of code!

Let''s see, DOS/Linux:

#include //stream library

using namespace std; //use standard libraries

void main()
{
cout << "Hello World!" << endl;
//endl means end line
}

Much less that 100+ lines. PLEASE TELL ME IT GETS EASIER.

What does the p in "pBuffer" mean? What is it a buffer for? And why "sz" for strings? Couldn''t you just as easily type stringName? What about "strName"?

I''m going to vote Linux. And as far as readability and speed, that''s up to the programmer. Only YOU can make your code easy to read, speedy, and efficient.

-CobraA1

Share this post


Link to post
Share on other sites
Advertisement
Pffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

That's my dos answer to above posts advocating dos.

You guys really have no idea about the real world do you?


The p in pBuffer? Indicates it's in fact a pointer variable, and not direct.
sz? Prefix for indicating you are using a string.
It IMPROVES readability to anyone following the same patterns. It's along the same lines of starting all your classes with C. CString, CList, etc.
Just so you KNOW you are dealing with a class when you see the type name.

These notations weren't invented to annoy people, they serve a very decent purpose.


#pragma DWIM
( Do What I mean )



~ Mad Keith ~
**SoftwareMode**

Edited by - MadKeithV on 4/3/00 7:11:36 AM

Share this post


Link to post
Share on other sites
Er, you don''t need to program in hungarian-style to program windows.

hell, i think hungarian is stupid anyway. sure, its nice an organized, but its UGLY as hell, and if you have to include the type of a variable in its name, that should be a clue that you have too many variables in your routines.

Good programming should use small and distinct, tight modules of code.

Hungarian style coding only came about because of the typical microsoft way of coding:

thousands of globals heaps all over the place.

I get sick just looking at the D3D framework code included with DirectX6 and 7.


When I program, I intentionally stay away from 90% of all windows things, and stick to standard portable code.


trying to port a windows-only app is funny.

===============================================
"Tell brave deeds of war."
Then they recounted tales, -- "There were stern stands And bitter runs for glory."

Ah, I think there were braver deeds.

Share this post


Link to post
Share on other sites
quote:
Original post by Anonymous Poster

"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."


OK, now get an old DOS disk (Not made by windows 9x!) and open MSDOS.SYS. It's not in plain text! It's in machine language! MSDOS.SYS being a plain text file is a windows thing. Don't tell me Windows hasn't re-written the bootup files.

And autoexec.bat, config.sys, etc. are maintained for backward compatibility. Windows NT and 2000 show that Windows can run fine without DOS, although 9x still have a version of DOS built-in.



Yep, I know it's not just text prior to MS-DOS 7.00. But, what difference does that make? So, they moved the code to another file. Big deal. Explain more before you go trying to show people up. What point are you making? DOS is DOS, regardless of the code used to execute it. I'll say what I said before:

"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."

Don't believe that the 7.00 version of DOS can run without Windows? Follow these steps (NOTE: will require a lot of work to undo, maybe even reinstalling Windows and a lot of programs. Do NOT try this unless you know what you're doing (and have a lot of free time)!):


    Step 1 - Turn on your computer. Bring up the boot menu before Windows loads, and choose the Command Prompt Only option.

    Step 2 - Create a DOS 7 folder and copy the DOS 7 files into this folder. These files include:


      All of C:\Windows\COMMANDC:\Windows\Emm386.exe
      C:\Windows\Smartdrv.exe
      C:\Windows\Command.com
      C:\Windows\Setver.exe


    Step 3 - Delete most of the Window files by typing in deltree C:\Windows at the command prompt.

    Step 4 - Edit your autoexec.bat and config.sys files to refer to the new DOS 7 directory you created.

    Step 5 - Edit Msdos.sys to start at the DOS 7 command prompt by adding the following lines to the [options] section:


      BootGUI = 0
      BootWin = 1



    Note: these steps were paraphrased from Windows 98 Secrets by Livingston and Straub


Windows just loads on top of DOS. Also, if the boot files truly loaded a 32-bit multi-tasking layer, then the old DOS programs, with their petty hacks, wouldn't work. (This is one reason why DOS apps don't work outside of Windows in Windows 2000.) I'm not talking about utilities like memory managers (which, btw, still work fine if they were programmed correctly) and disk compression. I'm talking about games which typically contain a lot of machine-specific asm code. The only time Windows actually runs DOS apps in a virtual machine is when you run them when Windows is running (i.e., from the Windows GUI). The VM is a 32-bit wrapper, but DOS itself is still 16-bit. You must use an extender if you wish to get 32-bit out of even a VM session, because it still only emulates 16-bit DOS.


quote:
Original post by Anonymous Poster

And autoexec.bat, config.sys, etc. are maintained for backward compatibility. Windows NT and 2000 show that Windows can run fine without DOS, although 9x still have a version of DOS built-in.



No, wrong again. Window 9x CANNOT run fine without DOS because it just loads on top of DOS! Windows 9x still has some 16-bit code, which is because of DOS. DOS is not something built into Windows 9x; Windows simply provides a newer version of DOS with some new features. It is separate (see above example) and does all the things that programs expect from DOS.


quote:
Original post by Anonymous Poster

DirectX isn't faster for displaying graphics unless you take advantage of an accelerator card. I tried a demo of Microsoft's entertainment pack on my old 486/33, which was basically a Pac-man game that uses DirectX. It went slower than a PCjr (8 MHz machine) running the same game, without DirectX! I don't think the speed of DirectX vs. MS-DOS is the issue. The issue, it seems, is how understandable and efficient the code itself is. I personally feel that how easy a program is to understand is based on the programmer. I've seen clean DOS programs, horrid Windows ones, and vice versa.



Nice. DOS fanatics typically post things like this, but who uses a 486 anymore? Or an 8 MHz 286? Progress, people! A 7-year old computer (maybe older) without any kind of hardware acceleration. What a poor example! Those days are LONG gone! DirectX is tons faster than DOS because of ABSTRACTION! Not because of being programmed in asm or any other out-of-date language. Simply because it makes hardware development and software development MUCH easier. The code may be slightly less efficient, but the benefits of hardware acceleration FAR outweigh any speed decreases (pun intended). Even LAPTOPS have hardware acceleration these days.


quote:
Original post by Anonymous Poster

Let's see, DOS/Linux:

#include //stream library

using namespace std; //use standard libraries

void main()
{
cout << "Hello World!" << endl;
//endl means end line
}

Much less that 100+ lines. PLEASE TELL ME IT GETS EASIER.



It does get easier. Copy and paste that same program into a Win32 Console app and it'll run. If you want the power and flexibility of Windows, you MUST learn how messaging works. That's why VC++ comes with a Win32 Hello World! app and a Win32 Hello World! console app.


quote:
Original post by Anonymous Poster

I'm going to vote Linux. And as far as readability and speed, that's up to the programmer. Only YOU can make your code easy to read, speedy, and efficient.



Same for Windows and DOS. DOS is only dead because it's ancient, and has no real library support. Anything you can do in DOS you can do in Windows, and better. Readability is always dependent on the user, and it's no different from Windows apps. For someone who doesn't know much about Windows, I'm sure not going to take your opinion seriously.


quote:
Original post by Mithrandir

hell, i think hungarian is stupid anyway. sure, its nice an organized, but its UGLY as hell, and if you have to include the type of a variable in its name, that should be a clue that you have too many variables in your routines.

Good programming should use small and distinct, tight modules of code.

Hungarian style coding only came about because of the typical microsoft way of coding:

thousands of globals heaps all over the place.



No, it's not ugly and no, it's not a clue that you have too many variables. See my previous post for an explanation of it -- the only reason programmers don't like to code a specific way is laziness. How hard is it to memorize 10 LITTLE prefixes? Compare that with the advantage of reading anyone's code who has takent the time to memorize and you'll see what I mean. Have you ever written an API? How would you write it? How would you make it compatible with C AND C++?


quote:
Original post by Mithrandir

trying to port a windows-only app is funny.



Not even half as funny as trying to port a DOS-only app. As I said before, readability depends on the programmer. Having an intelligently written API helps, too, but you can always create your own wrapper classes for it if you don't like it.


Please post facts, people. It's time to put up or shut up.





- null_pointer
Sabre Multimedia


Edited by - null_pointer on 4/3/00 9:58:41 AM

Share this post


Link to post
Share on other sites
funny as hell what the people are talking about here 8)
Try this: boot up dos, and come to this site to reply to me !!!
.
.
.
Still didnt get it ? See, i still love my ZXSpectrum and coding on it in pure 80asm, but i just cant seem to get PHP3 server running on it !!! Its not about dos, windows, 16bit or 32bit , its about technology moving on.

Personally, i think M$ should have gotten their act together and abandoned all old 16-bit programs and standards in new opsystems like win2k, users of old apps can still use the old opsys if they want to. Actually, Intel should have made pentium to run only in protected mode. Backward compatibility is the biggest pain in the ass of both M$ and Intel. Otherwise we wouldnt be seeing this much bloatware and hundreds of ''features'' in every piece of software.



-kertropp

C:\Projects\rg_clue\ph_opt.c(185) : error C3142: 'PushAll' :bad idea
C:\Projects\rg_clue\ph_opt.c(207) : error C324: 'TryCnt': missing point

Share this post


Link to post
Share on other sites
quote:
Original post by MadKeithV

Pffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

That''s my dos answer to above posts advocating dos.

You guys really have no idea about the real world do you?


The p in pBuffer? Indicates it''s in fact a pointer variable, and not direct.
sz? Prefix for indicating you are using a string.
It IMPROVES readability to anyone following the same patterns. It''s along the same lines of starting all your classes with C. CString, CList, etc.
Just so you KNOW you are dealing with a class when you see the type name.

These notations weren''t invented to annoy people, they serve a very decent purpose.


#pragma DWIM
( Do What I mean )



~ Mad Keith ~
**SoftwareMode**

Edited by - MadKeithV on 4/3/00 7:11:36 AM



Ok, I see that you like the Hungarian way of defining. It''s not necessarily the way to go. I''ve never used it in my code and let me tell you that my code that I wrote 5 years ago is still readable. I simply use the ANSI C standards of coding for all my DOS and windows coding... Doesn''t mean that because micros**t does something you need to use it.. Besides Hungarian notation is more combersom that really usefull. If a variable or function name of class member is given the right name, you won''t need hungarian notation to identify it. "Coding is an art" and microsoft just decided to make it uglier...



Cyberdrek
Headhunter Soft
DLC Multimedia
Two Guys Soft

Share this post


Link to post
Share on other sites
Try this on for size:
COMPANY POLICY

( gonna edit this a bit, I was pissed off at someone's response to me in the what makes you mad thread ).

Yes I like hungarian. If you've ever had to edit a control for which the source size approaches 70k you appreciate not having to waltz through the whole damn code to figure out the type of a variable.


~ Mad Keith ~
**SoftwareMode**

Edited by - MadKeithV on 4/4/00 5:17:50 AM

Share this post


Link to post
Share on other sites
Guest Anonymous Poster

DirectX is tons faster than DOS because of
ABSTRACTION! Not because of being programmed in asm or any other out-of-date language. Simply
because it makes hardware development and software development MUCH easier. The code may be
slightly less efficient, but the benefits of hardware acceleration FAR outweigh any speed decreases
(pun intended). Even LAPTOPS have hardware acceleration these days.


Actually, ASM can still take advantage of hardware acceleration, if used right. You''re right, 486''s and such are outdated. But don''t be fooled into thinking everybody has a 3D card. Sure, anybody serious about gaming has them, but even the ~350-400 MHz NT workstations in my school''s PC lab don''t have them; I have to bring down the detail of polygon-intensive games in order to use them at an acceptable frame rate.

OK, forget whether DOS is better or not. To tell the truth, I''ve never programmed Windows, and it scares me to think it takes 100+ lines just to write "hello world" using a real windows app instead of a console app. You have to worry about handles, messages, and whatever else Windows has to throw at you.

Could somebody please post a list of the Hungarian prefixes? I might take a look at programming Windows, even if it kills my brain.



quote:

Original post by Mithrandir

trying to port a windows-only app is funny.


Not even half as funny as trying to port a DOS-only app. As I said before, readability depends on the
programmer. Having an intelligently written API helps, too, but you can always create your own
wrapper classes for it if you don''t like it.


If you want a truly portable app, use ANSI C++ and something like OpenGl that will be understood by Linux and other non-windows operating systems. At least make something that hides the ugly side of Windows.

-CobraA1

--By the way, how do you do those quotes?
--And why "sz" for string, instead of "str" or something similar?
--I can see why abstraction is easier to read, but why do you claim it to be faster?

Share this post


Link to post
Share on other sites
Hmm, I think I''m starting to see the gripe here...

The issue isn''t really Windows VS Dos, its more of a windowed-environment vs just-the-code-I-need thing.

Window handles and such are hard to use at first, no question about it. If all you need is one window that''s fullscreen and exclusive, it''s a pain even. To someone who comes from DOS ( I don''t know much about Linux or X-windows programming ) it seems like there is just too much stuff there to all be necessary;

But it is necessary, for applications that do take advantage of the things Windows has to offer. Being able to subclass common controls, and add your own functionality, is a heaven-send for some of the "business apps" I have to code, but I guess you would never need them for a game;
Perhaps there would be a market for a simple, no-nonsense bootable OS that can be used for games only. Imagine selling your game with its own OS, you just pop the DVD in the drive, and it boots, no app-starting or anything, kindof like a console.

Maybe that''s a direction most of you would like to go in?

As to hungarian notation, I don''t use it strictly, I use company policy mostly. m_ for member variables of classes, T prefix for structure types, U for unions, E for enums... p for pointers, s_ for static member variables;

It''s my personal preference, I use it to make sense of my own code.

~ Mad Keith ~
**SoftwareMode**

Share this post


Link to post
Share on other sites
I can''t believe the attitude about DOS vs. Windows vs. Linux vs. BeOS. The simple fact remains the same. If you are a developer, you want to code for the OS that is going to give you the best potential for making as much cash as possible.

At this time, the OS of choice (for end users) is Windows. How many people would purchase a game knowing that it ran under DOS. The average person (the paying customer) would put the box down faster than he/she picked it up. As far as Linux and BeOS goes, how many average people (your next door neighbor for example) even know they exist?

My point is, if you are programming PC games for profit, write them for Windows. If on the other hand you are writing games for fun, do it on any platform you want.

It''s that simple.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!