Задание построить кривую Гильберта. Вроде бы все должно работать, но как только дело доходит до построения выдает "Ошибка 202. Стек переполнен". Помогите разобраться почему.
Program Gilbert; uses Crt,Graph; Var h,gd,gm:integer; a:byte; n:byte; Procedure LD; Begin Linerel(0,h); End; Procedure LU; Begin Linerel(0,-h); End; Procedure LL; Begin Linerel(-h,0); End; Procedure LR; Begin Linerel(h,0); End; Procedure GDw(i:byte);ForWard; Procedure GUp(i:byte);ForWard; Procedure GL(i:byte); Begin GDw(i-1);LL; GL(i-1);LD; GL(i-1);LR; GUp(i-1);Delay(5000); End; Procedure GR(i:byte); Begin GUp(i-1);LR; GR(i-1);LU; GR(i-1);LL; GDw(i-1);Delay(5000); End; Procedure GUp; Begin GR(i-1);LU; GUp(i-1);LR; GUp(i-1);LD; GL(i-1);Delay(5000); End; Procedure GDw; Begin GL(i-1);LD; GDw(i-1);LL; GDw(i-1);LU; GR(i-1);Delay(5000); End; Begin clrscr; Write('vvedite dlinu storoni v pixselyah'); Readln(h); Write('vvedite poryadok krivoi'); Readln(n); gd:=detect;gm:=0; InitGraph(gd,gm,''); Moveto(100,100); GUp(n); Readln; CloseGraph; Readln; End.