Hola Emmanuel! bueno, aqui tienes un código posible:
program Mover_Letra;
uses crt;
var
tecla,letra : char;
X,Y : byte;
begin
Clrscr; {limpio la pantalla}
Write('Escribe un caracter: ');
ReadLn(letra);
X:=40;
Y:=12;
{me situo en el centro de la pantalla y escribo el caracter}
Clrscr; {limpio la pantalla}
GoToXY(X,Y);
Write(letra);
{ahora repito hasta que se presione la F}
repeat
if KeyPressed then {si presiono alguna tecla...}
begin
tecla:=ReadKey; {asigno a letra la tecla presionada}
GoToXY(X,Y);
Write(' '); {borro el caracter anterior}
case tecla of
'a','A' : begin
if Y > 1 then
Y:=Y - 1
else
Y:=24;
end;
'b','B' : begin
if Y < 24 then
Y:=Y + 1
else
Y:=1;
end;
'i','I' : begin
if X > 1 then
X:=X - 1
else
X:=80;
end;
'd','D' : begin
if X < 80 then
X:=X + 1
else
X:=1;
end;
end;
GoToXY(X,Y);
Write(letra); {escribo el nuevo caracter}
end;
until(UpCase(tecla) = 'F');
end.
Un abrazo!