Du solltest eventuell auch folgendes vor dem {$asmmode} einfügen:
Delphi-Quellcode:
{$ifdef fpc}
{$mode delphi}{$H+}
{$endif}
Das könnte zumindest ein paar der Fehler beseitigen.
Nichtsdestotrotz hast du dir da zu Beginn einen ziemlich harten Brocken ausgesucht
EDIT:
Mir fällt grad auf, dass da einige Interface Funktionen nicht mit deren Implementierung übereinstimmen:
z. B. Interface:
function Ansi2OEM(AnsiString: string): string;
Implementierung:
function Ansi2OEM(AnsiString: WideString): WideString;
Delphi ist hier seeeeeehhhhhrrrrr tolerant. FPC ist hier strikter, was ich allerdings auch gut finde!
EDIT2:
Ok... kompiliert nun. Veränderte
Unit im Anhang. Einige (Hilfs)Funktionen kann man für FPC denke ich noch ifdefen.
Gruß,
Sven