Hi, are you using the DarkGDK as you may get more help from that board. Your problem could be you are using the one variable for both x and y increase and decrease. Try using two variables one for the x increase and decrease and one for the y increase and decrease.
Here is a code snippit that works in DBPro and you should be able to make sense of it.
ballx as integer = 320
bally as integer = 240
xvel as integer = 1
yvel as integer = 1
sync on : sync rate 60
do
cls
inc ballx, xvel
inc bally, yvel
if ballx < 20 or ballx > 620 then xvel = xvel * -1
if bally < 20 or bally > 460 then yvel = yvel * -1
circle ballx, bally, 10
text 0,0, str$(screen fps())
sync
loop
Hope this helps
A clever person solves a problem, a wise person avoids it - Albert Einstein