I would say that this is a really stupid way to make a good lookin' loading screen.
You need to sync the screen before the loading text wil appear on your monitor. But, so does the objects that you load that same time.
Here is a good example how i do my loading screens.
first: the INIT function
function INIT_LOADSCREEN()
set image colorkey 10,10,10
load image "gfx\black.jpg",1
sprite 1,0,0,1:size sprite 1,screen width(),screen height()
load image "gfx\text_load_images.jpg",2: sprite 2,0,0,2
dx = screen width() /2 : dy = screen height() / 2
sx = sprite width(2) / 2: sy = sprite height(2) / 2
x = dx - sx : y = dy - sy: sprite 2,x,y,2
endfunction
The black jpeg image is a sprite to be sure that you can't see the objects currently loading and placing.
Now the function that updates the loading screen
function UPDATE_LOADSCREEN(image$)
load image image$,2
set sprite image 2,2
for i=1 to 10:sync:next i
endfunction
The image$ string is a image file that needs to be the same size as the gfx\text_load_images.jpg that has a text on it to show what is currently loading.
use it like this:
sync on:sync rate 100
INIT_LOADSCREEN()
UPDATE_LOADSCREEN("gfx\load_1.jpg")
rem ## load some stuff ##
UPDATE_LOADSCREEN("gfx\load_2.jpg")
rem ## load some more stuff ##
good luck with it.

First DifNiX -> now EvaX.