URGENT HELP NEEDED for sounds in MS DOS in windows vista

G

Guest

I work in DOS (which is command prompt in Vista) before getting Vista
if I typed something incorrectly in a field in DOS the system would 'beep'.
Now I get nothing. This is a crucial issue for me.
Can ANYONE PLEASE tell me how to make the sound work for this?
I need an audible beep to sound when I make an error.
Thank you!
 
A

Andrew McLaren

itsjustme said:
I work in DOS (which is command prompt in Vista) before getting Vista
if I typed something incorrectly in a field in DOS the system would
'beep'.


The Command Prompt itself (CMD.EXE) does not make any beeps. If you were
getting beeps before, they must have been coming from the application you
were running at the command prompt.

So, what application are you using? And is it really a DOS app? (ie, 16-bit
DOS code that ran on, say MS-DOS 6.22? As opposed to 32-bit character-mode
Win32 applivation?)
 
A

Andrew McLaren

I just ran a test - I ran a small MS-DOS program which basically just beeps
the PC speaker. It runs fine on Vista, and produces a nice loud beep, same
as on DOS (internally, it is just displaying a ^G (0x07) character).

So beeping, as such, works fine on Vista. To find out why your app doesn't
beep, we'll need to know more about the app and your environment. Are all
other sounds working okay, on your machine?

You can test a basic beep function by doing this:

go to a Command Prompt in Vista
type the command "command" and press <enter> - this starts COMMAND.COM, the
MS-DOS Command Processor.
type "echo" and a space
hold down the Control Key and press G, now release both keys at once
the command line should now read "echo ^G"
now press the enter key
You should hear a beep from the speaker.
type "exit" twice to exit the command processor and comand prompt.

If this works and your application doesn't. there's something unusual about
the way the app is making sounds.

If you can't get a beep from echoing ^G at a command line, there's something
unusual about your whole system; since this works okay on other Vista
machines, ie, it beeps.
 
G

Guest

Thank you for answering. I ran the beep test and it does beep. All other
sounds are working on my system. I still can not get it to beep in my app
though. If I have an error, ie I type a letter instead of a number, I just
hear the softest clicking sound. I used DOS on my last system which had
Windows ME and I always heard the beep if there was an error. The
application is .exe, the files I use are FMT files and .BAT files. I have
called Dell and Microsoft and NO ONE will help me with this.
Any ideas? Please?
Thank you!
 
M

Malke

itsjustme said:
Thank you for answering. I ran the beep test and it does beep. All other
sounds are working on my system. I still can not get it to beep in my app
though. If I have an error, ie I type a letter instead of a number, I just
hear the softest clicking sound. I used DOS on my last system which had
Windows ME and I always heard the beep if there was an error. The
application is .exe, the files I use are FMT files and .BAT files. I have
called Dell and Microsoft and NO ONE will help me with this.
Any ideas? Please?

This part explains what is happening: "I used DOS on my last system
which had Windows ME". Even though it was hidden, WinME was based on
DOS. No NT-based operating system (NT, Win2000, XP, Vista) is based on
DOS. So there is no true DOS in Vista.

Vista, like XP, could run some DOS programs by using emulation.
Sometimes the DOS programs work well, sometimes they work OK, and
sometimes not at all. Sound in DOS programs running under an NT-based
system is iffy because DOS communicated directly with the hardware and
this is not possible in NT systems. This is A Good Thing, although I'm
sure you miss your beep.

Solutions:

1. See if DOSBox works in Vista. DOSBox is an emulator that often works
better than the native emulators in XP and Vista. Try running your DOS
program in DOSBox.

2. Get a modern program that will do what you want and will run natively
in Vista.

3. Use virtualization - Virtual PC 2007 or VMWare - and create a virtual
machine running DOS. Run your program natively in this DOS virtual machine.

4. Continue to run your DOS program in Vista's emulator and live without
the beep.


Malke
 
A

Andrew McLaren

By and large, I agree with my colleague Malke.

See if DosBox works - it's good at this kind of thing. You can download it
from here:
http://dosbox.sourceforge.net/download.php?main=1
Just be aware that DosBox is not supported by Microsoft; if you have
problems using it, you can't ring Microsoft (or Dell) for help.

Your next oprion would probably be virtualisation. Microsoft provides a free
add-on utility for Windows called "Virtual PC". You can download it from
here:
http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx
Virtual PC lets you run a "virtual" DOS or Windows ME PC, in a window on
your Vista Desktop. It looks like a complete PC, but in a window on your
Vista desktop. You can run your application on DOS or Windows ME in this
virtual PC, where it should continue to run pretty much as it did on your
real ME machine. VMWare is a similar solution, which works well; however, it
is extra-cost software which you need to purchase from VMWare Corp.

The ideal solution would be to contact the supplier of your DOS-based
application, and see if they have a new version which is compatible with
Vista. But I suspect this is quite an old and specialised app - maybe the
guys who wrote it aren't around any more. I don't recognise the FMT files,
I'm not sure what app it would be.

By way of some background - there were many different ways to produce sound
on a DOS PC. The exact reason why your app only makes a soft beep on Vista
would depend on exactly how it was programmed, way back when it was written.
As you saw, a plain DOS "beep" function continues to work fine on Vista, eg
when you echo the beep character (Control-G). It was also possible in DOS to
makes sounds with various frequencies and durations, by low-level "assembly
language" programming. Instead of making a plain beep (like a Ctrl-G), the
application would open the PC's speaker for a certain number of ticks of the
PC's internal timer chip. The production of sound was thus highly dependent
on the specific hardware the machine was running on; different CPU speeds
could change the resulting sound. Well, most DOS applications like thios
were designed to run on typical DOS hardware: with a CPU speed of 4.77 MHz
to 25 MHz. Most PCs today run between one hundred and one thousand times
faster than that (eg, in the range 1GHz to 3.4GHz). So programs which made
assumptions about CPU speed are going to behave differently on this new
hardware. I suspect this is what is happening in your application - it still
makes a beep, but at a higher frequency and reduced duration (hence it
sounds softer) - because a thousand CPU cycles goes past in a fraction of
time it used to take, on older machines. If this theory is correct, then the
problem isn't really a bug or shortcoming in Vista itself - just a
limitation of the original DOS app, whose assumptions about the world are no
longer correct. But DosBox specifically tries to compensate for this kind of
problem, because many old DOS games are also affected this way. So it's a
good place to start.

Hope it helps, good luck!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top