RE:convercion de caracteres
Puedes crear un procedimiento que lea una cadena y en vez de escribir el caracter, escribes un * u otro caracter, ademas puedes encontrarle muchos usos muy iteresantes a dicho procedimiento. podira empezar asi:
Procedure Leer_password(var destino:string; x,y:byte);
var
op:char;
begin
repeat
op:=readkey;
if op<>#13 then begin
gotoxy(x,y);
write(*);
destino:=destino+op;
end;
until op in [#13,#27]
end;
Este es un procedimiento muy sencillo, y carece de muchas cosas, pero te puede servir si te urge mucho, le faltaria implementar el borrado, controlar la longitud, y si te pones exigente la insercion de caracteres.