Program Information File (PIF) je malý nastavovací soubor umožňující běh programů originálně vytvořených pro DOS pod víceúlohovými operačními systémy. PIF byl původně vytvořen pro systémové prostředí IBM TopView,[1] později byl adaptován i systémovým prostředím DESQview a operačním systémem Windows.[2] V současné době je tento souborový typ již takřka nepoužíván.
Původní formát souboru PIF obsahoval pouze jediný blok dat s informacemi potřebnými ke spuštění programu pod IBM TopView, obsahující informace zahrnující požadovaný název okna programu, přiřazenou paměť, typ monitoru, požadovanou pozici a rozměry okna aplikace a další.[3] Při adaptace souboru PIF pro Microsoft Windows pak z důvodů nutnosti zahrnutí dalších nastavení při souběžném zachování zpětné kompatibility souborů došlo k rozšíření formátu PIF zařazením hlavičkových a dalších datových bloků za původní blok dat, s první z hlaviček se na tento blok zpětně odkazující. Tímto bylo umožněno jednak použití souborů PIF staršími operačními systémy, které pouze přečetly původní blok dat a zbytek souboru ignorovaly, jednak operačními systémy novými, které mohly rovnou přeskočit na první z hlaviček a poté číst pouze bloky pro ně zajímavé, včetně opět i bloku původního.
Bloková struktura souboru PIF[4]
Odsazení od začátku souboru v bytech
|
Velikost v bytech
|
Popis
|
0
|
369
|
Původní IBM TopView blok dat
|
369
|
22
|
Hlavička původního bloku dat
|
391
|
22
|
Hlavička prvního rozšiřujícího bloku dat
|
413
|
X
|
První rozšiřující blok dat
|
413 + X
|
22
|
Hlavička druhého rozšiřujícího bloku dat
|
...
|
Struktura původního IBM TopView bloku dat[3][4]
Odsazení od začátku bloku dat v bytech
|
Velikost v bytech
|
Popis
|
0
|
1
|
Ignorováno
|
1
|
1
|
Kontrolní součet, ignorováno
|
2
|
30
|
Název okna aplikace zapsaný znakovou sadou CP437
Doplněno prázdnými znaky do délky 30 bytů
|
32
|
2
|
Maximální množství přiřazené paměti v kilobytech
|
34
|
2
|
Minimální množství přiřazené paměti v kilobytech
|
36
|
63
|
Absolutní cesta ke spustitelnému souboru
Ukončená symbolem NULL, znaková sada CP437
|
99
|
2
|
|
101
|
64
|
Absolutní cesta k pracovnímu adresáři
Ukončená symbolem NULL, znaková sada CP437
|
165
|
64
|
Parametry předávané souboru
Ukončené symbolem NULL, znaková sada CP437
|
229
|
1
|
Typ monitoru
|
230
|
1
|
Počet využitých "screen pages"
|
231
|
1
|
|
232
|
1
|
|
233
|
1
|
Výška okna ve znacích
Výchozí hodnota 25
|
234
|
1
|
Šířka okna ve znacích
Výchozí hodnota 80
|
235
|
1
|
Odsazení okna od levého okraje obrazovky ve znacích
Výchozí hodnota 0
|
236
|
1
|
Odsazení okna od horního okraje obrazovky ve znacích
Výchozí hodnota 0
|
237
|
2
|
|
239
|
128
|
Ignorováno
|
367
|
2
|
|
Struktura hlavičky bloku[4]
Odsazení od začátku hlavičky v bytech
|
Velikost v bytech
|
Popis
|
0
|
16
|
Název odkazovaného bloku dat
|
16
|
2
|
Odsazení následující hlavičky od začátku souboru
|
18
|
2
|
Odsazení odkazovaného bloku dat od začátku souboru
|
20
|
2
|
Velikost odkazovaného bloku dat v bytech
|
Reference