system odo global xe ye d exec podo dist displ process podo r resetpin = 6 c14 = 1463 -- Rescaling from 14th of milimeters to tenths of milimeters -- i.e. a division with 1.4 is made as 1463/2048 = 1462/2^11 begin ( 13 , 12 , 14 , 15 , )odo.init :loop )odo.get arg0 *c14 >>11 ->ye arg1 *c14 >>11 ->xe ( resetpin )inpin ->r if(r =0){ )reset } A:loop function reset begin 0 ->xe 0 ->ye return load from(odo.mpo) *odo.init *odo.get load from(std.mpo) *mult *inpin \ process dist a begin 35 ->d :loop xe *xe ->a ye *ye +a ->a ( a , d , )itsqrt ->d A:loop load from(std.mpo) *itsqrt \ process displ dt = 8000000 begin ( 1 )disp.init :loop ( 0 )disp.setline ( xe , 4 , )disp.writedec ( 1 )disp.setline ( ye , 4 , )disp.writedec ( 2 )disp.setline ( d , 4 , )disp.writedec dt wait A:loop load from(display.mpo) *disp.init *disp.setline *disp.writedec \