DPMI, BIOS i ostale funkcije ne razlikuju se od ostalih sistemskih funkcija. Pogledajte u GPC priručnik kako pristupiti C biblioteci svog sustava. Ovaj mali primjer pokazuje kako koristiti DPMI, kopirajući neke strukture i prototipove iz <dpmi.h>:
program DPMIDemo; { Samo za DJGPP } {$X+} { `Byte' je `unsigned char' u C-u, `ShortCard' je `unsigned short' u C-u, `MedCard' je `unsigned long' u C-u, `Word' je `unsigned' u C-u, itd. (svi ovi tipovi su ``built-in''). } type TDpmiVersionRet = record Major : Byte; Minor : Byte; Flags : ShortCard; CPU : Byte; Master_PIC: Byte; Slave_PIC : Byte; end; type TDpmiFreeMemInfo = record LargestAvailableFreeBlockInBytes, MaximumUnlockedPageAllocationInPages, MaximumLockedPageAllocationInPages, LinearAddressSpaceSizeInPages, TotalNumberOfUnlockedPages, TotalNumberOfFreePages, TotalNumberOfPhysicalPages, FreeLinearAddressSpaceInPages, SizeOfPagingFilePartitionInPages, Reserved1, Reserved2, Reserved3: MedCard; end; function DpmiGetVersion (var Version: TDpmiVersionRet): Integer; external name '__dpmi_get_version'; function DpmiGetFreeMemoryInformation (var MemInfo: TDpmiFreeMemInfo): Integer; external name '__dpmi_get_free_memory_information'; var Version: TDpmiVersionRet; MemInfo: TDpmiFreeMemInfo; begin if DpmiGetVersion (Version) = 0 then begin WriteLn ('CPU type: ', Version.CPU, '86'); WriteLn ('DPMI major: ', Version.Major); WriteLn ('DPMI minor: ', Version.Minor); end else WriteLn ('Error in DpmiGetVersion'); if DpmiGetFreeMemoryInformation (MemInfo) = 0 then WriteLn ('Free DPMI memory: ', MemInfo.TotalNumberOfFreePages, ' pages.') else WriteLn ('Error in DpmiGetMemoryInformation'); end.