thanks for the offer user137, i appreciate your help, i just wish you werent such an asshole with your " a=b " shit

the problem is the compìler ask for "interface" or "unit" or "implementation" sections before the first line (?). note that i mimicked the code on the SDL tutorial on http://www.freepascal-meets-sdl.net/ (chapter 3) where it is assumed i dont need what im being asked plus it is supposed to work with the command line compiler IDE (which im using)

since i only learned procedural pascal i dont know what an "interface" or "unit" or "implementation" is and as far as i know, the first line has always been "program program_name;"

Code:
program HelloSDL;    // the program intends to show a simple image on the screen
USES SDL, CRT;     // as said, the problem is the compiler asks for an "interface" and "unit" section before this line

VAR
screen,picture:pSDL_SURFACE;
source_rect,destination_rect:pSDL_RECT;

BEGIN
SDL_INIT(SDL_INIT_VIDEO);
screen:=SDL_SETVIDEOMODE(423,400,32,SDL_SWSURFACE);
IF screen=NIL THEN HALT;writeln('problem with the screen');

picture:=SDL_LOADBMP('C:\Documents and Settings\briss\Escritorio\hello_image.bmp');
IF picture=NIL THEN HALT;writeln('problem with the image');

NEW(source_rect);
source_rect^.x:=0;
source_rect^.y:=0;
source_rect^.w:=423;
source_rect^.h:=400;
NEW(destination_rect);
destination_rect^.x:=0;
destination_rect^.y:=0;
destination_rect^.w:=423;
destination_rect^.h:=400;

REPEAT
  SDL_BLITSURFACE(picture,source_rect,screen,destination_rect);
  SDL_FLIP(screen);
UNTIL keypressed;

SDL_FREESURFACE(picture);
SDL_FREESURFACE(screen);

DISPOSE(source_rect);
DISPOSE(destination_rect);

SDL_QUIT;
END.
well, it would be great if you help me make it work, i was planning on checking out allegro pascal tonight anyways so no big deal if i dont get any solution