Contributor: SWAG SUPPORT TEAM        

Program TrueName;  uses DOS;

   function RealName(FakeName:String):String;
   Var Temp:String;
   begin
     FakeName := FakeName + #0; { ASCIIZ }
     With Regs do
     begin
       AH := $60;
       DS := Seg(FakeName); SI := Ofs(FakeName[1]);
       ES := Seg(Temp);     DI := OfS(Temp[1]);
       INTR($21,Regs);
       DOSERROR := AX * ((Flags And FCarry) shr 7);
       Temp[0] := #255;
       Temp[0] := CHAR(POS(#0,Temp)-1);
     end;
     If DosError <> 0 then Temp := '';
     RealName := Temp;
   end;

begin  writeln( RealName( Paramstr(1) ) end.