{$A-,B-,D-,E+,F-,G+,I+,L-,N-,O+,P-,Q-,R-,S-,T-,V-,X+,Y-}
unit schedule;

interface

type MenuProc=procedure(a,b,c,d,e,f:longint);

procedure MenuShedule;

procedure RunMenu(menu:menuproc;p1,p2,p3,p4,p5,p6:longint);
procedure OldMenu;
procedure exitmenu;

var
 PrevFunc,
 NextFunc:MenuProc;
 mp,mo:array[1..6] of longint;

implementation

procedure MenuShedule;
begin
 while @nextfunc<>nil do nextfunc(mp[1],mp[2],mp[3],mp[4],mp[5],mp[6]);
end;

procedure RunMenu(menu:menuproc;p1,p2,p3,p4,p5,p6:longint);
begin
 prevfunc:=nextfunc;
 nextfunc:=menu;
 mo:=mp;
 mp[1]:=p1;
 mp[2]:=p2;
 mp[3]:=p3;
 mp[4]:=p4;
 mp[5]:=p5;
 mp[6]:=p6;
end;

procedure OldMenu;
begin
 nextfunc:=PrevFunc;
 mp:=mo;
end;

procedure exitmenu;
begin
 nextfunc:=nil;
end;

end.