(if (and (eq? (cdr (assoc 'state (cdr o))) 'main)
(> (- (cdr (assoc 'lastprog (cdr o))) (cdr (assoc 'lasttime (cdr o)))) 20))
(begin (set-cdr! (assoc 'curspeed (cdr o))
(/ (- (cdr (assoc 'curpos (cdr o))) (cdr (assoc 'lastpos (cdr o))))
(- (cdr (assoc 'lastprog (cdr o))) (cdr (assoc 'lasttime (cdr o))))))
(set-cdr! (assoc 'lastpos (cdr o)) (cdr (assoc 'curpos (cdr o))))
(if (and (eq? (cdr (assoc 'state (cdr o))) 'main)
(> (- (cdr (assoc 'lastprog (cdr o))) (cdr (assoc 'lasttime (cdr o)))) 20))
(begin (set-cdr! (assoc 'curspeed (cdr o))
(/ (- (cdr (assoc 'curpos (cdr o))) (cdr (assoc 'lastpos (cdr o))))
(- (cdr (assoc 'lastprog (cdr o))) (cdr (assoc 'lasttime (cdr o))))))
(set-cdr! (assoc 'lastpos (cdr o)) (cdr (assoc 'curpos (cdr o))))