Do_Sound_MPC V1.03 from 9.OCT.2006

Preface


This program replaces the routines Dosound Cconout(7) and Crowio(7) of the OS. This is mainly interesting for systems which don't support Dosound, as for example a PC with MagiCPC (MPC). As I have no idea how to interpret the Dosound data to translate them so that they can be played with an other routine, I decided to go a different way. Mostly Dosound is used to play system sounds. So it is not really important to play exactly that sound. The easiest way would be to play always the same sound (mode 0 ) . The next best is to recognize the sound and play a specific sound file (mode 1). If somehow you manage to record the original sound, you almost (see below) get to the optimum, but with a lot of work. I first needed it for the word processing program That's Write (TW). Therefore I'll use that program as an example to explain how Dosound_MPC works. If you activate the spelling correction in TW, every word you write will be checked, if it is unknown, TW will try to correct it. Depending of the success of that try, one of two sounds will be played. Under MPC TW stays silent, so it can happen that by trying to correct a word TW actually introduces an error without that the writer realizes it. This is not acceptable.
Since I now olso had problems with Cconout(7) and Crowio(7) I also introduces the possibility to replace them. To test if Cconout(7) functions run the program CCONOUT7.PRG
 

Explanation of the program

Mode 0


The same sound (Cconout(7)) will be played every time. That means you hear that TW has assumed an error, but you can't hear if it tried to correct it. Of course this is only usefull if Cconout(7) works.
 

Mode 1


From the data, Dosound is supposed to play, an ID is calculated (a kind of sum over the data). This ID is somewhere between 0 and 400000000 (the two TW sound have the IDs 119132 and 119303 ). To this ID's special sound files can be assigned. Since it wouldn't be reasonable to analyze all sounds of all programs, a list of sound files can be added from which one will be selected by a modulo function if the ID is unknown. There for example I put the 8 WAV files of CAT. So first the ID is calculated. If it is unknown, ID modulo 8 will be calculated, whitch will be a number n between 0 and 7, than the n-th CAT file is played. Until now I always wrote, that a sound file is played, that is not totally correct, actually the shell (for example Jinnee) is asked to 'run' that file (by using the AV protocol). So the shell is responsible to play that file. If it is a program it will be probably run, if it is a WAV file, the shell should start a program that is able to play that kind of files. To be able to do this a program as Gemjing or Paula has to be connected to WAV files. So you can't only use this program to play sound but to ran any program.
 

Mode 2


as mode 1, but a logfile is written. This is usefull to assign a special sound file to an ID.

Mode 3

as Mode 1 , but Cconout(7) and Crawio(7) are replased too.
 

Mode 4

as Mode 3, but a logfile is written. See Mode 2
 

Installation


Either copy Dosound.TOS and Dosound.INF into the AUTO directory or add it to the autoexec.BAT. In the later case the INF-file has to be copied to the root dir of the boot partition (usually c:\) But it can be started by hand too. If it is started after being installed already, then it deinstalls itself. In both cases a message is given, before deinstallation it also waits for a key to be pressed.
Edit Dosound.INF using any editor. An example is added. Comments start with a ';' and will be ignored. From the keywords (Mode, id, Sonst) (Sonst is German for otherwise) only the first letter is tested (capitalization will be ignored) So it makes no difference if you write

    mode=1

or

    Methode=1

or

    M=1

Between the different parts there has to be one of the following characters: ' '(blank), '\t' (tabulator) or '=':

    Mode=1
    Mode 1
    Mode 1

but not

    Mode1
    Mode:1

If you write a comment at the end of a line, there too has to be one of these characters in front of the ';':

    id 119132 H:\CAT\sound\bong0.wav ;That's Write: spelling error

and not

    id 119132 H:\CAT\sound\bong0.wav;That's Write: spelling error

after all this now to the different entries.
 

Description of Dosound.inf

 

1) Mode


can be set to 0,1,2,3 or 4 (see above) Example:
Mode=1
Different Sounds will be played, but no log file written.
 

2) Logfile


For Mode=2 a log file will be needed, if none is specified C:\DOSOUND.LOG will be used. Example:

    Logfile=G:\TMP\DOSOUND.LOG

If Mode=2 G:\TMP\DOSOUND.LOG will be used as log file.
 

3) id


A list of IDs and the corresponding files. You can specify as many combinations as you wish. Example:

    id 119132 H:\CAT\sound\bong0.wav ;That's Write: spelling error corrected.

For ID 119132 H:\CAT\sound\bong0.wav will be played.

4) Cconout


Here you can specify a file to be played in
Mode 2 or 3 instead of Cconout(7) and Crawio(7). If this is not specified, the first of the files in 'Sonst' will be used.
Example:
Cconout H:\CAT\sound\bong1.wav

5) Sonst (other)


From this keyword on everything will be assumed to be a list of files whitch to play for IDs not mentioned in
3) Example:

    Sonst:
    H:\CAT\sound\bong0.wav
    H:\CAT\sound\bong1.wav

this would play bong0 for all even IDs and bong1 for all odd IDs. The first four keywords can be used in any order, but after 'Sonst' no other keyword is accepted anymore, only comments can still be used.
 

Technical information


The program changes the XBIOS vector using the XBRA standard with the ID 'DYJD'.
 

Copyright


This program is freeware, that means you can copy it freely, even add it to PD packets or even add it to commercial programs.

Magic PC is a registered trademark of Application Systems Heidelberg
That's Write is a registered trademark of COMPO Software.