Hola
Bueno, pues le puse un botón detener que en efecto funciona pero deja en ceros, esto por las validaciones que tienes
<script>
function stop(){exit display(); document.counter.d2.value="";}
</script>
<form name="counter"><input type="text" size="8"
name="d2">
<input type="button" name="Empezar" value="Empezar" onclick="display('ok')"></form>
<input type="button" name="Detener" value="Detener" onclick="display('stop')"></form>
<script>
<!--
//
var milisec=0
var seconds=240
document.counter.d2.value='30'
function display(val){
if (val=="stop"){ milisec=1; seconds=1; }
else{
if (milisec<=0){
milisec=9
seconds-=1
}
if (seconds<=-1){
milisec=0
seconds+=1
}
else
milisec-=1
document.counter.d2.value=seconds+"."+milisec
setTimeout("display()",100)
}}
-->
</script>
Yo pensaria en validar algunas otras posibles posibilidades, tal vez usar ciclos como while o for y pues te dejo un vínculo
http://login.osirislms.com/index.php...9a6103ee4a71e7
espero algo te sirva, saludos