У попа была собака

Для тех, кто не знает, привожу полный текст стихотворения:
     У попа была собака 
     Он ее любил
     Она съела кусок мяса
     Он ее убил и на камне написал:
А дальше по кругу то же самое.

Конечно его можно было бы проще напечатать с помощью цикла но это не интересно. Рекурсия больше отвечает духу стихотворения. Конечный цикл рано или поздно закончится, т.е. не не выполнит задание до конца, а бесконечный подразумевает бессмысленность труда автора (попа), поскольку какой смысл трудиться, точно зная, что стихотворение никогда не будет написано до конца? С рекурсией дело хитрее. Вызывая в который раз саму себя, функция считает, что скоро будет конец, что в ближайшем вызове дело закончится полным успехом. А чтобы во время печати не пришлось ждать слишком долго, пусть программа продолжается до тех пор, пока не будет нажата какая-нибудь клавиша.

   program pop;
   uses crt;
   procedure absaz(c:word);{ Процедура,
    печатающая один абзац }
   { В качестве параметра цвет абзаца }
   begin
     textcolor(c);
     writeln(' У попа была собака');
     writeln(' Он ее любил');
     writeln(' Она съела кусок мяса');
     writeln(' Он ее убил');
     writeln(' И на камне написал:');
     delay(500);{ Задержка перед выводом
	  следующего абзаца }
     if not keypressed then absaz((c+1)mod 15+1);
	 { Продолжать, пока не нажата клавиша }
   end;
   begin
     clrscr;
     absaz(1);
     readkey;
   end.