{$APPTYPE CONSOLE}
uses
SysUtils, Windows;
const rSmall:string='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
rBig:string='АБВГДЕЁЖЗИКЛМНОПРСТУФХЧЦШЩЪЫЬЭЮЯ';
var M,P,Q,N,i:integer;
b,id,tmp:string;
function Rus(mes: string):string;
// В ANSI русские буквы кодируются числами от 192 до 255,
// в ASCII - от 128 до 175 (А..Яа..п) и от 224 до 239 (р..я).
var
i: integer; // номер обрываемого символа
begin
SetLength(Result,length(mes));
for i:=1 to length(mes) do
case mes[i] of
'А'..'п' :Result := Chr(Ord(mes[i]) - 64);
'р'..'я' :Result := Chr (Ord(mes[i] ) -16);
else Result:=mes[i];
end;
end;
BEGIN
randomize;
M:=12;
write('vvedite identifikator:');
readln(id);
N:=length(id);
if n=0 then
begin
Q:=0;
P:=0;
end
else
begin
Q:=trunc(exp(3*ln(N))) mod 5;
P:=trunc(exp(2*ln(N))) mod 6;
end;
b:='';
i:=1;
while(i<=Q+1)do
begin
b:=concat(b,rSmall[1+trunc(random*length(rSmall))]);
inc(i,1);
end;
while(i<=Q+P+1) do
begin
b:=concat(b,rBig[1+trunc(random*length(rBig))]);
inc(i,1);
end;
while (i<=M) do
begin
str(trunc(random*10),tmp);
b:=concat(b,tmp);
inc(i,1);
end;
writeln('N=',N,' Q=',Q,' P=',P);
writeln('password:',b);
readln;
{ TODO -oUser -cConsole Main : Insert code here }
END.

Вопрос-то в чём? Получить русские буквы в консольном выводе? Тогда смотри функцию CharToOem(). Или почему твоя русификация не работает? Так функция Rus() в коде не вызывается.