Peter,
I think our Ellipse functions are different. I'm getting a segmentation fault passing your parameters.
I attached a screen shot of your O2 example that you forgot.
void Draw_Ellipse(SDL_Surface *super,
Sint16 x0, Sint16 y0,
Uint16 Xradius, Uint16 Yradius,
Uint32 color);
Draw a ellipse with center in x0,y0. Xradius is the major axis and Yradius is
the minor axis.
' ScriptBasic Ellipse
DECLARE SUB Window ALIAS "SB_Window" LIB "sdl"
DECLARE SUB WaitKey ALIAS "SB_WaitKey" LIB "sdl"
DECLARE SUB UpdateRect ALIAS "SB_UpdateRect" LIB "sdl"
DECLARE SUB RGB ALIAS "SB_RGB" LIB "sdl"
DECLARE SUB CLS ALIAS "SB_CLS" LIB "sdl"
DECLARE SUB Draw_Ellipse ALIAS "SB_Draw_Ellipse" LIB "sdl"
Window 800, 600, "ScriptBasic Ellipse"
width = 400
height= 300
CLS(RGB(255, 255, 255))
black = RGB(0, 0, 0)
FOR i = 0 to 260 step 10
IF i % 20 = 0 THEN
Draw_Ellipse width, height, -i, -i, black
Draw_Ellipse width, height, i, i, black
ELSE
Draw_Ellipse width + i, height, -i, -i, black
Draw_Ellipse width -i, height, i, i, black
END IF
NEXT
UpdateRect
WaitKey
.