it doesn`t realy lend it`self to a quick snippet (I was tempted), the road is drawn in scaled segments, the more left or right from the middle the more the edge of the segment is curved, or you could draw the rows pixel by pixel, one pixel per row in the foreground and where you would draw several in the distance at the same row then just keep an index of the last row drawn to make sure you only draw each row once (for speed) the basic code I wrote before used edges that went distinctly blocky on the curves because it was all done with block characters, if doing that you just need to infill the edges of the rectangle with a fillet the correct size, eg-ish
**********/ *********
*********/ ********
********/ *******
*******/ ******
etc
if you do the whole thing with the largest row in the foreground at just a pixel deep then you obviously don`t need to smooth the edge of the track out like that since the largest error will just be one pixel, but you need to draw many more lines per loop, that might be better done by locking pixels or writing to memory direct since its just simple rows being drawn and the trees etc are just sprites added afterwards.
[edit] rough example (no nice sine curves)
set display mode 800,600,32
dim xpos(300)
for i=1 to 300
xpos(i)=400
next i
x=400
do
cls
lock pixels
line 0,300,800,300
if leftkey() then x=x+1
if rightkey() then x=x-1
xpos(0)=x
for i=299 to 0 step -1
xpos(i+1)=xpos(i)
next i
for i=300 to 600
line xpos(i-300)-(300-i),i,xpos(i-300)+(300-i),i
next i
unlock pixels
loop
Do parachute manufacturers have a refunds policy?