DOS toast   GSM 06.10

A new version of toast for DOS

Louis Selvon <> has created a new version of toast.exe for DOS.
TOAST.EXE, 187807 bytes, 79002 bytes (TOAST.EXE compressed in a ZIP archive)
I don't use DOS and can't test his code, let alone integrate it into the main release and maintain it. Thankfully, Louis has been nice enough to document his changes below and publish the source code, so if you want to change things, go ahead. In addition to the GSM 06.10 library, you need the following replacements:
TOAST.C, 232231 bytes
TOAST.H, 2752 bytes
TOAST_AU.C, 3014 bytes
If you have any questions, suggestions for changes in the code, or other comments, send them to Louis; I'm sure he'll appreciate your feedback.

In the letter reprinted below, Louis explains the changes he made to the toast executable.



Dear Jutta ,

Outlined below are all the changes that I made as of date :

I've created an executable file "toast.exe", for the DOS environment, using the Borland c++ 5.01 compiler and have initiated the following changes:

  1. I've edited "toast.h" by adding two windows, one for the help menu and the other one to illustrate all the processing that is done when "toast.exe" is executed; IMPORTANT : I used the "window( ) function in Borland C++ 5.01 compiler. This command may not be liable for those using the Unix environment. For the program to compile the appropriate command used for Unix must be used. If there isn't any then these two windows will have to be commented in the header file, toast.c and toast_au.c wherever it is called.

  2. I've made slight changes in the "toast_au.c" file, so that the 2nd window can be used to display error messages;

  3. I've added two additional switches in "toast.c". The first switch, I called it "-e" switch, is used to encode and decode straight without the "-d" switch. This required me to make a lot of changes in the "process ( )" function. I obviously used a flag called "f_encode_decode" to achieve this. You can still use the "-d" switch if desired as I have left that option intact. The second switch is the "-t" switch which is used to time the speed of encoding and decoding, if desired. The flag here is called "f_timer_on";

  4. I've fixed the problem that DOS encounters if you enter a file with a suffix. To achieve this I've made changes in the "codename ( )" function. If you run the program with an input file without a suffix, you will get an error message and the program is exited. This version of toast will only read a file that has a suffix appended to it. I did that as I store the reconstructed speech in a file with the same name as the original file but with the suffix removed;

  5. I've re-edited the "help ( )" function to make it more presentable. The additional switches has been included in this function too. All the other switches in the patchlevel 10 version are still there;

  6. As mentioned I've included a timer that times the speed of the encoding and decoding. This can be useful if you want to check how fast encoding and decoding takes;

  7. All messages, including error messages, will be displayed in the 2nd window, that I included in the "toast.h" file, when the program is executed. I've made the necessary changes in "toast.c" and "toast_au.c" to achieve this;

  8. I've turned off the "parse_argv ( )" function as I use toast by itself to encode and decode data.

  9. I've updated the version ( ) function as well. I hope that's all right with you.
One slight problem that I encountered is with the "-c" switch. When I run this new version of toast with that switch, it does something funny with the audio file. I've tested all the other switches and they all work fine.

Please find enclosed with this text, the DOS executable that I created using the Borland c++ 5.01 compiler. I did not use the "USE_FLOAT_MUL", "FAST", "WAV49", "STUPID_COMPILER", "NDEBUG", options when creating this executable. I did use the "LTP_Cut" option. I also set "NAME_MAX", the maximum filename length variable in "toast.c", to 11. The hardware platform that I used is a pentium MMX.

Also find enclose "toast.c", "toast.h", and "toast_au.c" files that contain all the changes that I made. Wherever I made changes, I've put my name, date, and the changes made.

If you require further information from me and/or if there is any problem with this e-mail, don't hesitate to e-mail back to me.



Louis Selvon


PS: I had a lot of problems getting an audio player that plays the audio formats supported by this code. I did an exhaustive search on the web and came across an audio player called "GoldWave". This player will play any audio formats there exist on this earth. You can also save your original audio file in different formats as well. There are heeps of other things you can do with it. I recommend it to anyone who are really into audio. The site where I got this audio player is "".