your screen refresh must be realy slow, and since you don`t have any sync in that loop you must be using the automatic screen refresh (the default refresh), DO NOT USE THE AUTOMATIC SCREEN REFRESH...EVER
instead add this to the top of your code
sync on:sync rate 0
then after "fade bitmap" add
sync
turning sync on allows you to tell the system
when to display the changes on the screen, the automatic default sync slows code to something less than glacialy slow, never use it, make a habit of using the manual sync, the only time you need automatic sync is if you use "input" since the system is busy waiting for the return key to be pressed before it follows any other instructions you need it to manage the sync automaticaly until the input statement finishes, but swap back to manual sync as soon as you have got the input

.
you will need to add a sync in your code wherever you need to see the current state of play on the screen, you will not see any changes until you have performed a sync, so you will need one at the bottom of the main loop and another for example after you load any title screens, you may find you need to perform a double sync the first time you perform one, since the system will sometimes ignore the very first sync instruction.
Mentor.
PC1: P4 hyperthreading 3ghz, 1gig mem, 2x160gig hd`s, Nvidia FX5900 gfx, 6 way surround sound, PC2: AMD 1.2ghz, 512mb ram, FX5200 ultra gfx, stereo 16 bit soundblaster, ups.