!open graphics ----------------------- flagOri                = 0 refW                   = 790 refH                   = 1255 IF !flagOri              THEN SWAP refW, refH GR.OPEN                  255, 0 , 0 , 90 , 1 ,flagOri GR.SCREEN                curW, curH scaW                   = curW / refW scaH                   = curH / refH GR.SCALE                 scaW , scaH PAUSE                    500 GR.BITMAP.CREATE         canvas , refw, refh GR.BITMAP.DRAW           _canvas, canvas, 0, 0 array.load                col[],~ 000 , 255 , 000 , ~ 255 , 000 , 000 , ~ 255 , 255 , 000  bri1                   = 255 bri2                   = 225 facMirror              = 1 speedBorder            = 50   mainTxtSize            = 240 GR.TEXT.TYPEFACE         2 GR.TEXT.SIZE             mainTxtSize GR.GET.TEXTBOUNDS        "4", le, to, ri, bo txtOffsh                = ABS(to-bo)/2 txtOffsw                = ABS(le-ri) * 1.2 GR.BITMAP.DRAWINTO.START canvas !countdown ------------------------ tic                    = CLOCK() tocFilt                = 200 toc                    = 200 !main -------------------------- DO !virtual channels----          speed                  = 40+ SIN( ctr++ /15)*20 distance              += speed/3.6*toc/1000000 ! periodic mirror---- IF                       !mod(ctr,15) THEN facMirror*=-1 GOSUB                    screenUpdate IF !BACKGROUND()         THEN GR.render tocFilt                = tocFilt+(toc-tocFilt)*0.05 toc                    = clock ()-tic PAUSE                    MAX(250- toc, 1) tic                    = CLOCK() UNTIL_END !--------------------------------- END screenUpdate : TIME                    nn$, nn$, nn$, hh$, mm$, ss$ _time$                = hh$+":"+mm$+":"+ss$ !clear canvas ---- GR.COLOR                 255, 000 , 000 , 000 , 1 GR.RECT                  nn, 00, 00, refw, refh !draw items ---- no                     = 0 if speed               > speedBorder then no = 3 GR.COLOR                 bri1, col[no+1] , col[no+2] , col[no+3] , 1 GR.TEXT.SIZE             mainTxtSize GR.TEXT.ALIGN            3 GR.TEXT.DRAW             nn, refw/2+ txtOffsw, refh/2+txtOffsh, INT$(ROUND(speed)) GR.TEXT.SIZE             60 GR.TEXT.ALIGN            1 GR.TEXT.DRAW             nn, refw/2 + txtOffsw +20, refh/2+txtOffsh, "km/h" no                     = 2 *3 GR.COLOR                 bri2, col[no+1] , col[no+2] , col[no+3] , 1 GR.TEXT.SIZE             22 GR.TEXT.DRAW             nn, 20, 725, "looptime: " + INT$(tocFilt) GR.TEXT.DRAW             nn, 20, 750, "fps:      " + STR$(ROUND(1000/tocFilt,1)) GR.TEXT.SIZE             30 GR.TEXT.DRAW             nn, 20, 60, hh$+":"+mm$+":"+ss$ GR.TEXT.SIZE             40 gr.text.align            2 GR.TEXT.DRAW             nn, refw/2, 700, format $("%%%%.#", round (distance, 1)) + " km" !perform mirror ---- gr.color                 255, 0,0,0,0 GR.BITMAP.SCALE          mirror, canvas, refw, facMirror* refh GR.BITMAP.DRAW           nn,mirror, 0, 0 GR.BITMAP.DELETE         mirror RETURN