Witam
Co to jest Unit ? Unitami są graph, crt, dos i inne są to po prostu zbiory procedur i funkcji które możemy wywoływać z naszego programu . Najpierw deklarujemy bibliotekę (nie mylić z bibliotekami DLL to inny temat)
np: uses moj_unit;
Po deklaracji wywołujemy procedury i funkcje z tegoż unitu, przy funkcjach pamiętaj o parametrach. Unity możesz pisać także obiektowo, dodawać tablice rekordy itd. Informacji na ten temat w necie jest całe mnóstwo wystarczy trochę poszukać
A co do załączonego pliku jest w nim błąd zwykła literówka funkcja wywoływała samą siebie dodatkowo sama nazwa funkcji w swej nazwie miała błąd (literówka). Wartości funkcji proponuje zwracać poprzez RESULT. Do tego unita musisz napisać jeszcze program który wykorzysta zawarte w nim procedury i funkcje Powodzenia

Poprawiony unit:
unit InterfrejsUzytkownika;interfaceuses Crt;constEnter = #13;Esc = #27;MaxOpcja = 9;typestring30 = string[30];TablOpcji = array[1..MaxOpcja] of string30;varch:char;KFunSpec:boolean;PoprzedniX,PoprzedniY : byte;procedure Czekaj;procedure Buczek(Hz:word;Czas:real);procedure PiszXY(x,y:byte;s:string);procedure CzytajReal(var q:real;x,y:byte;Zaproszenie:string);procedure UstawKolory(KolorZnakow,KolorTla:byte);procedure OdtworzKolory;function Menu(x,y:byte;LiczbaOpcji:byte;Opcje:Tablopcji):byte;function Szlaczek(Zn:char;Dlug:byte):string;implementationvarPoprzednieKolory : byte;procedure Czekaj;beginKFunSpec:=false;ch:=ReadKey;if ch=#0 thenbeginKFunSpec:=true;ch:=ReadKEyend;end;procedure Buczek(Hz:word;Czas:real);vari:integer;begini:=round(Czas*1000);Sound(Hz);Delay(i);NoSoundend;procedure PiszXY(x,y:byte;s:string);beginPoprzedniX:=WhereX;PoprzedniY:=WhereY;GotoXY(x,y);write(s)end;procedure CzytajReal(var q:real;x,y:byte;Zaproszenie:string);vars:string;Blad:integer;beginrepeatPiszXY(x,y,Zaproszenie);readln(s);Val(s,q,Blad);if Blad <> 0 then Buczek(1000,0.2);until Blad=0end;procedure UstawKolory(KolorZnakow,KolorTla:byte);beginPoprzedniekolory:=TextAttr;TextColor(KolorZnakow);TextBackground(kolorTla);end;procedure OdtworzKolory;beginTextAttr:=PoprzednieKolory;end;function Menu(x,y:byte;LiczbaOpcji:byte;Opcje:Tablopcji):byte;vari : integer;s:string;OstatniaOpcja : char;beginOstatniaOpcja:=chr(Liczbaopcji+ord('0'));for i:=1 to LiczbaOpcji dobeginStr(i,s);s:=s+':'+Opcje[i];PiszXY(x,pred(y)+i,s);end;PiszXY(x,y+LiczbaOpcji,'0: Zaniechanie wyboru');repeatCzekaj;until ch in['0'..OstatniaOpcja];menu:=ord('0')end;function Szlaczek(Zn:char;Dlug:byte):string;vars:string;i:integer;begins:='';for i:=1 to Dlug dos:=s+Zn;Szlaczek:=send;beginPoprzednieKolory:=TextAttr;end.