( time routines -- 8 July 88 -- MFB ) off printload on redefine ( : tm t . " hr" ." . " mins" ." . " ." ." .L " secs" ." crlf ;) : tm t .L " :" ." .L " :" ." .L " ." ." dup 10 >= if .L else 0 .L .L then crlf ; data[ 0 ] hdr data[ 0 ] secs data[ 0 ] mins data[ 0 ] hrs data[ 0 ] hdr0 data[ 0 ] secs0 data[ 0 ] mins0 data[ 0 ] hrs0 data[ 0 ] minse data[ 0 ] secse data[ 0 ] hdre : td hrs @ hrs0 ! mins @ mins0 ! secs @ secs0 ! hdr @ hdr0 ! ( start values) t hrs ! mins ! secs ! hdr ! ( end values) hrs @ .L " :" ." mins @ .L " :" ." secs @ .L " ." ." hdr @ dup 10 >= if .L else 0 .L .L then " ==> " ." mins @ mins0 @ over over >= 0= if swap 60 + swap then - minse ! secs @ secs0 @ over over >= 0= if swap 60 + swap minse @ 1- minse ! then - secse ! hdr @ hdr0 @ over over >= 0= if swap 100 + swap secse @ 1- secse ! then - hdre ! minse @ .L " m " ." secse @ .L " ." ." hdre @ dup 10 >= if .L else 0 .L .L then " s elapsed " ." crlf ;