            Ondea v. 0.1.0
    by Stefano Tommesani 2000
 http://www.tommesani.com/Ondea.html

The Delphi compiler puts FWait instructions after every statement that uses floating-point data.
This helps trapping errors during debugging, but (almost) needlessly slows down execution of
final releases.
Ondea is tool that parses EXE files for FWait opcodes ($9B) and replaces them with
Nop opcodes ($90). No debugging info is needed.

User Guide 
1) select the input EXE file by clicking on the Input file button 
2) detailed info about the selected info file appears in the Execution Log, and the Base of Code and Size of Code values are automatically updated: Ondea will scan the input file searching for FWaits starting at Base of Code up to (Base of Code + Size of Code) 
3) select the output EXE file by clicking on the Output file button 
4) click on the Go! button: when Ondea finds a FWait opcode ($9B), it goes backwards searching a matching FP instruction: if a suitable one is found, then the current byte is actually a FWait and it is replaced by a Nop opcode ($90), otherwise it is skipped.

Please note that
1) removing FWait opcodes will give a speed-boost that depends on the amount of
   floating-point computations performed;
2) exception handlers may get fooled: if the last FP instruction in a code block raises an FP
   exception, it will not be reported until the next FP instruction, that may belong to a different
   code block, gets executed!
3) the processed EXE file may not work correctly! Please do not send me e-mail such as
   "I've tried Ondea on my X exe file, and now it does not work correctly, why?",
   I'm not going to browse through tons of assembly codes to find what gone wrong!
   If it works, fine; if it does not, just forget about it!

Credits:
the PE executable file format info is extracted using parts of the PE Information module 
of the GExperts 0.97.1 by Gerald Nunn and others (http://www.gexperts.com).

THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
