passarei os comentários no script:
<script language="JavaScript">
function desce() { // função para descer o documento
window.scrollBy(0,50); // incremento horizontal e vertical
tempo = setTimeout('desce()',100); // rola a cada 100 milisegundos
}
function para() { // função para parar o documento
clearTimeout(tempo); // limpamos aqui o setTimeout da descida
}
function sobe() { // função para submir o documento
window.scrollBy(0,-50);
tempo = setTimeout('sobe()',100);
}
function tecla() {
if (event.keyCode==68) { // se a tecla d (68) for digitada, ativa desce()
desce();
}
if (event.keyCode==80) { // se a tecla p (80) for digitada, ativa para()
para();
}
if (event.keyCode==83) { // se a tecla s (83) for digitada, ativa sobre()
sobe();
}
}
document.onkeydown=tecla; // aqui carregamos uso do teclado cada evento
</script>
Obs.: Informe aos seus usuários se ele clicar em rolar (cima ou baixo) deve parar o evento antes de iniciar outro.
Veja no link abaixo códigos das teclas:
http://www.tiraduvidas.com/tutoriais/block_letra.html