I always recommend http://www.marcocantu.com/epascal/default.htm essential pascal. You can also download the sourcecode.And although Delphi centric, the code works in {$mode delphi} with FreePascal.