But I have a suggestion:other password input program will use "*" in stead of the char which you input.And you can use the function "ReadKey"(in CRT unit) which gets a char from keyboard and doesn't show this char in screen.
Uses CRT;{I only give you the UI codes and you can use it after reading}
Var
Password,s:String;
ch:Char;
i,j:Integer;
Begin
i:=0;
Repeat
ch:=ReadKey;
If ch in ['0'..'9','a'..'z','A'..'Z','!','@','#','$','%','^','&','*','(',')','-','=','_','+','\','|','/','?','''','"',';',':',',','.','<','>','[',']']
Then
Begin
Write('*');
i:=i+1;
s[i]:=ch;
End;
If Ord(ch)=8{ch=BackSpace}
Then
Begin
i:=i-1;
GotoXY(GetY,i+1);
Write(' ');
End;
Until Ord(ch)=13;{ch=Enter}
For j:=1 to i do
Password[j]:=s[j];
End;