f1. A TURBO PASCAL szabványos ELJÁRÁSAI ÉS FÜGGVÉNYEI F1.1. Matematikai függvények Abs függvény Visszatér az argumentum abszolút értékével. Abs(x) : azonos x típusával; x egész vagy valós típusú kifejezés. ArcTan függvény Visszatér az arctg főértékével. ArcTan(x: real) : real; x valós típusú kifejezés. Az x valós típusú kifejezés arkusztangens főértékét adja vissza radiánban. Cos függvény Visszatér az argumentum koszinusz értékével. Cos(x: real) : real; x valós típusú kifejezés. Az x értékét radiánban kell megadni. Exp függvény Visszatér az argumentum exponenciális értékével. Exp(x: real) : real; x valós típusú kifejezés. Frac függvény Visszatér az argumentum tizedes részével. Frac(x: real) : real; x valós típusú kifejezés. Az x valós típusú kifejezés tizedes részét adja vissza: Frac(x):=x-Int(x). Int függvény Visszatér az argumentum egész részével. Int(x: real) : real; x valós típusú kifejezés Az x valós típusú kifejezés egész részét adja vissza: Int(x):=x-Frac(x). Ln függvény Visszatér az argumentum természetes alapú logaritmusával. Ln(x: real) : real; x valós típusú kifejezés. Odd függvény Vizsgálja az argumentum páratlanságát. Odd(x: longint) : boolean; x egész típusú kifejezés. Igaz értéket ad vissza ha az x páratlan, és hamisat, ha páros. Pi függvény Pi értékét adja vissza. Pi : real; Pi értékét adja vissza: 3.1415926535897932385. Az érték pontossága a hardver ($N+) vagy szoftver ($N-) számítási módtól függ. Random függvény Visszatér egy véletlenszámmal. Random [ (range: word) ] : range függvénye; range word típusú kifejezés. Ha a range nincs megadva, akkor valós típusú 0 <= x < 1, egyébként word típusú 0 <= x < range véletlenszámot generál. Ha a range értéke 0, akkor a függvény értéke is 0 lesz. A véletlenszám generátornak kezdő értéket lehet adni a Randomize eljárással, vagy a RandSeed értékadásával. Randomize eljárás A beépített véletlenszám generátornak kezdőértéket ad. Randomize; A rendszer órája alapján számítja a véletlenszám generátor kezdőértékét. Round függvény Valós típusú kifejezést a legközelebbi egészre kerekíti. Round(x: real) : longint; x valós típusú kifejezés. Az x valós kifejezést a legközelebbi egészre kerekíti. Ha az x kerekített értéke nem esik bele a Longint típus értékkészletébe, futási hiba lép fel. Ha a tizedesrész 0.5-nél nagyobb, a nagyobb abszolút értékűt egészre kerekíti. Sin függvény Visszatér az argumentum szinusz értékével. Sin(x: real) : real; x valós típusú kifejezés. Az x értékét radiánban kell megadni. Sqr függvény Visszatér az argumentum négyzetével. Sqr(x) : azonos x típusával; x egész vagy valós típusú kifejezés. Sqrt függvény Visszatér az argumentum négyzetgyökével. Sqrt(x: real) : real; x valós típusú kifejezés. Trunc függvény Visszatér az argumentum egész részével. Trunc(x: real) : longint; x valós típusú kifejezés. Az x valós típusú kifejezés nulla felé kerekített egész részét adja vissza. Ha a kerekített érték nem esik bele a Longint típus értékkészletébe, akkor futási hibát okoz. F1.2 Függvények a megszámlálható típusokra Chr függvény Visszatér a sorszámnak megfelelő karakterrel. Chr(x: byte) : char; x egész típusú kifejezés. Eredményként az ASCII kódnak megfelelő karaktert adja vissza. Dec eljárás Csökkenti a változó értékét. Dec(var x [; n: longint] ); x sorszámozott típusú változó, n egész típusú kifejezés. A Dec eljárás az x értékét csökkenti eggyel, illetve n értékével, ha meg van adva.A Dec(x) megfelel x:=x-1 illetve Dec(x,n) pedig x:=x-n utasításnak. Inc eljárás Növeli az argumentum értékét. Inc(var x [; n: longint] ); x sorszámozott típusú változó, n növekmény. A Inc eljárás az x értékét növeli eggyel, illetve n értékével, ha meg van adva. A Inc(x) megfelel x:=x+1 illetve Inc(x,n) pedig x:=x+n utasításnak. Pred függvény A sorszámozott típus előző sorszámú elemét adja vissza. Pred(x); x sorszámozott típus. A Pred függvény az x sorszámozott (egész, karakter, logikai) típus előző sorszámú elemét adja vissza. Succ függvény A sorszámozott típus következő sorszámú elemét adja vissza. Succ(x); x sorszámozott típus. A Succ függvény az x sorszámozott (egész, karakter, logikai) típus követ-kező sorszámú elemét adja vissza. F1.3. Sztring kezelések Concat függvény Karakterláncokat fűz össze. Concat(s1 [, s2, ..., sn]: string) : string; s1,... sztring típusú. Minden paraméter sztring típusú kifejezés. Eredmény az összefűzött sztring. Ha az eredmény hosszabb 255 karakternél, akkor a 255. karakter utániakat levágja. A függvény helyettesíthető a + művelettel. Copy függvény Részkarakterlánccal tér vissza. Copy(s: string; index: integer; count: integer) : string; s sztring, ahonnan másolunk, index karakter sorszáma, amelytől másolunk, count a másolandó karakterek darabszáma. Az s karakterláncnak index pozíciójától count darabot másol és ered-ményként a részláncot adja vissza. Ha az index nagyobb, mint a sztring hossza, az eredmény üres sztring lesz. Ha a count nagyobb, mint amennyi karakter van az s sztringben az index pozíciótól, akkor csak a hátralévő maradékot adja vissza. Delete eljárás Részlánc törlése. Delete(var s: string; index: integer; count: integer); s sztring típusú változó, amelyből törlünk, index karakter pozíció, amelytől törlünk, count a törölni kívánt karakterek száma. Az s sztringnek index pozíciójától count darabot törlünk. Ha az index na-gyobb, mint a sztring hossza, nem lesz törlés. Ha a count nagyobb, mint az index pozíciótól a maradék karakterek száma, akkor csak a maradék karak-terek törlődnek. Insert eljárás Részlánc beszúrása. Insert(source: string; var s: string; index: integer); source a beszúrandó részlánc, s az eredmény karakterlánc, index a karakter pozíció sorszáma, ahonnan beszúrás történik. A source karakterláncot az s karakterlánc index pozíciójától beszúrja. Ha az eredmény sztring hossza nagyobb 255 karakternél, a 255. karakter utániakat levágja. Length függvény Visszatér a karakterlánc hosszával. Length(s: string) : integer; s karakterlánc. Ord függvény Visszatér a sorszámozott típusú kifejezés sorszámával. Ord(x) : longint; x sorszámozott típusú kifejezés. Pos függvény Karakterláncban részláncot keres. Pos(substr, s: string) : byte; substr részlánc, s vizsgálandó karakterlánc. A Pos függvény az s karakterláncban keresi a substr részláncot, eredmény-ként az s karakterláncban megtalált substr részlánc első karakterének pozí-cióját adja, ha nem találja a részláncot, akkor 0- val tér vissza. Str eljárás Numerikus értéket karakterlánccá alakít. Str(x [: width [: decimals]]; var s: string); x egész vagy valós típusú kifejezés, width mezőszélesség, decimals tizedes jegyek száma, s eredmény sztring. Az x egész vagy valós típusú kifejezés értékét konvertálja width mezőszé-lességgel és decimals tizedesek számával az s sztringbe. UpCase függvény A karaktert nagybetűvé alakítja. UpCase(ch: char) : char; ch kisbetű karakter. Az ch kisbetű karaktert nagybetűvé alakítja. Ha a karakter nincs az 'a'-'z' interallumban, akkor a függvényhívás hatástalan. Val eljárás Karakterláncot numerikus értékké konvertálja. Val(s: string; var v; var code: integer); s a konvertálandó karakterlánc, v egész vagy real típusú változó, code a hibás első karakter pozíciója. A Val függvény az s karakterláncot konvertálja a v típusának megfe-lelő numerikus értékké. Ha a sztringben illegális karakter van, a code vál-tozó tartalmazza a hibás első karakter pozícióját, különben értéke 0 lesz. F1.4. Byte és regiszter műveletek CSeg függvény Visszatér a CS regiszter aktuális értékével. Seg : word; DSeg függvény Visszatér a DS regiszter aktuális értékével. Seg : word; Hi függvény Visszatér az argumentum felső byte-jával. Hi(x) : byte; x egész vagy word típusú kifejezés. Lo függvény Visszatér az argumentum alsó byte-jával. Lo(x) : byte; x egész vagy word típusú kifejezés. Ofs függvény Az adott objektum eltolási (offset) címét adja vissza. Ofs(x) : word; x bármilyen típusú változó, eljárás vagy függvény azonosító. Seg függvény Visszatér az adott objektum szegmens címével. Seg(x) : word; x bármilyen típusú változó, eljárás vagy függvény azonosító. SPtr függvény Visszatér az SP regiszter aktuális értékével. SPtr : word; SSeg függvény Visszatér az SS regiszter aktuális értékével. SSeg : word; Swap függvény Felcseréli az argumentum felső és alsó byte-ját. Swap(x) : azonos x típusával; x egész vagy word típusú kifejezés. F1.5. Könyvtárak kezelése ChDir eljárás Átváltja az aktuális tartalomjegyzéket. ChDir(s: string); s sztring típusú kifejezés. Az aktuális tartalomjegyzéket átváltja az s sztringben megadott tartalom-jegyzékre. Az s tartalmazhat meghajtót is. A DOS az itt megadott útvonalat és meghajtót tekinti majd aktuálisnak a program lefutása után. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. DiskFree függvény Dos Visszatér a specifikált diszk meghajtó szabad byte-jának számával. DiskFree(Drive: byte) : longint; Drive a meghajtó száma, 0 az aktuális, 1 az A, 2 a B stb. DiskSize függvény Dos Visszatér a specifikált diszk meghajtó teljes méretével byte-okban. DiskSize(Drive: byte) : longint; Drive a meghajtó száma, 0 az aktuális, 1 az A, 2 a B stb. FindFirst eljárás Dos Keresi a specifikált vagy az aktuális tartalomjegyzékben az első adott nevű és tulajdonságú bejegyzést. FindFirst(Path: string; Attr: word; var s: Searchrec); Path sztring típusú kifejezés (tartalomjegyzék maszk, pl. *.*), Attr file tulajdonság, s Searchrec típusú rekord tartalmazza a hívás eredményét. A Path paraméterben meghatározott normál és Attr tulajdonságú katalógus-bejegyzések közül kikeresi az elsőt és elhelyezi az s rekordban. A DOS Unit-ban vannak definiálva az alábbi konstansok: const Readonly = $01; { csak olvasható } Hidden = $02; { rejtett file } SysFile = $04; { rendszer file } VolumeID = $08; { lemez neve } Directory = $10; { tartalomjegyzék bejegyzés } Archive = $20; { archivált file } AnyFile = $3F; { bármilyen típusú file } A SearchRec típus: type Searchrec = record Fill: array[1..21] of byte; Attr: byte; Time: longint; Size: longint; Name: string[12]; end; FindNext eljárás Dos Az előzőleg FindFirst eljárással definiált katalógus-bejegyzések közül a következőt adja vissza. FindNext(var s: Searchrec); s Searchrec típusú rekordban keletkezik az eredmény. FSearch függvény Dos Egy fizikai állományt keres aktuális lemezegység aktuális katalógusában. FSearch(Path: PathStr; DirList: string) : PathStr; Path PathStr típusú kifejezés, DirList sztring típusú kifejezés. Keresi a Path paraméterben megadott fizikai állományt az aktuális lemez-egység katalógusában, majd a DirList paraméterben definiált katalógu-sokban. Ha megtalálta, akkor a teljes állomány- specifikációt adja vissza, különben a függvény értéke üres karakterlánc lesz. A dinamikus keresés céljából a DirList paramétert a GetEnv('PATH') hívásával helyettesítjük. FSplit eljárás Dos A paraméterben megadott állomány specifikációt komponenseire bontja. FSplit(Path: PathStr; var Dir: DirStr; var Name: NameStr; var Ext: ExtStr); Path állomány specifikáció, Dir meghajtó és az útvonal, Name file neve, Ext kiterjesztés a ponttal együtt. A DOS Unit-ban az alábbi típusok vannak definiálva: type PathStr = string[79]; DirStr = string[67]; NameStr = string[8]; ExtStr = string[4]; GetDir eljárás Visszatér a megadott meghajtó aktuális tartalomjegyzékével. GetDir(d: byte; var s: string); d egész típusú kifejezés a meghajtó, 0 az aktuális, 1 az A, 2 a B stb. s sztring típusú változó, tartalmazza eredményül az aktuális útvonalat. A d paraméterben definiált meghajtón s-be adja az aktuális útvonalat. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. MkDir eljárás Tartalomjegyzéket hoz létre. MkDir(s: string); s sztring típusú kifejezés. Létrehozza az s paraméterben megadott tartalomjegyzéket, az s tartalmazhat meghajtót is. Az eljárás hívása megfelel a DOS MD parancsának. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. RmDir eljárás A tartalomjegyzék törlése. RmDir(s: string); s sztring típusú kifejezés. Törli az s paraméterben megadott tartalomjegyzéket, az s tartalmazhat meg-hajtót is. Az eljárás hívása megfelel a DOS RM parancsának. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. F1.6. File kezelések Append eljárás Létező file-t nyit meg adatok file végéhez való hozzáírására. Append(var f: text); f text típusú file változó. Az f text típusú file változó, amelyet korábban Assign utasításban hasz-náltunk külső file létrehozására. Az Append létező file-t nyit meg a megadott file névvel és az f azono-sítóval. Hibajelzést kapunk, ha az adott néven a file nem létezik. Ha az f file nincs lezárva, akkor először megtörténik a file lezárása, majd újra-megnyitása. A file mutató a file végére mutat és a file csak írásra hasz-nálható. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a nyitási művelet sikeres volt, különben a hibakódot adja vissza. Assign eljárás Külső file nevéhez file változót rendel. Assign(var f; name: string); f bármilyen típusú file változó, name sztring típusú kifejezés, a fizikai file-nevet tartalmazza. Minden további művelet az f-el azonosított adott nevű file-on történik. Addig létezik, míg egy másik Assign felül nem írja. A file név lehet üres sztring, vagy akár tartalmazhat meghajtót és több al-tartalomjegyzéket, amely \ (backslash) jellel van elválasztva. meghajtó:\direktori\...\direktori\file név Pl: c:\munka\kod\dat.dat A file név maximális hossza 79 karakter lehet. Ha a file név üres sztring, akkor a Reset(f) hívásakor a szabványos input file ill. Rewrite(f) hívásakor a szabványos output file lesz. BlockRead eljárás Egy változóba egy vagy több blokkot olvas. BlockRead(var f: file; var buf; count: word [, var result: word] ); f típus nélküli file változó, buf bármilyen változó, count word típusú kifejezés, result word típusú változó. Az f típus nélküli állományból count rekordot olvas és elhelyezi a buf változó memóriacímétől kezdődően. A result változóban kapjuk meg azt az értéket, amelyet az eljárás valójában beolvasott. A result megadása nem kötelező, ha azonban nem tudta a megadott számú rekordot beolvasni I/O hibajelzést kapunk. 128 byte a rekordméret, ha az f állomány megnyitásakor nem adtuk meg. Maximálisan 65535 byte lehet a count * rekordméret. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. BlockWrite eljárás Egy vagy több blokkot ír ki egy változóba. BlockWrite(var f: file; var buf; count: word [, var result: word] ); f típus nélküli file változó, buf bármilyen típusú változó, count word típusú kifejezés, result word típusú változó. Az f típus nélküli állományba count rekordot ír ki a buf változó címétől. A result változóban kapjuk meg azt az értéket, amelyet az eljárás valójában kiírt. A result megadása nem kötelező, ha azonban nem tudta a megadott számú rekordot kiírni I/O hibajelzést kapunk. 128 byte a rekordméret, ha az f állomány megnyitásakor nem adtuk meg. Maximálisan 65535 byte lehet a count * rekordméret. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Close eljárás Nyitott file-t zár le. Close(var f); f bármilyen típusú file változó Reset, Rewrite vagy Append utasítással megnyitott file-t zár le. A {$I-} direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Eof függvény (text típusú file) Visszatér a text típusú file end-of-file státuszával. Eof [ (var f: text) ] : boolean; f text típusú file változó Ha az f-et elhagyjuk a függvény a standard Input állományt vizsgálja. Az Eof(f) értéke igaz, ha a file mutató a file végére mutat, vagy a file üres, egyébként hamis. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Eof függvény (típusos vagy típus nélküli file) Visszatér a típusos vagy típus nélküli file end-of-file státuszával. Eof(var f) : boolean; f file változó. Az Eof(f) értéke igaz, ha a file mutató az file végére mutat, vagy a file üres, egyébként hamis. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Eoln függvény Visszatér a file end-of-file státuszával. Eoln(var f: text) : boolean; f text típusú file változó. Ha az f-et elhagyjuk a függvény a standard Input állományt vizsgálja. Az Eoln(f) értéke igaz, ha a file mutató a sor végére mutat, vagy az Eof(f) igaz, egyébként hamis. Nyitott állományra nem szabad használni. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. FilePos függvény Visszatér az aktuális file pozíciójával. FilePos(var f) : longint; f file változó. Ha a file mutató a file elejére mutat, a FilePos(f) 0-val, ha a file végére mutat, akkor a file méretével FileSize(f) értékével tér vissza. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. FileSize függvény A file méretét adja vissza. FileSize(f) : longint; f file változó. A FileSize(f) visszatér a file-ben lévő komponensek számával, ha a file üres, a visszatérési érték 0 lesz. Csak nyitott file esetén kérdezzük meg a file méretét és ne használjuk az utasítást ha a file text típusú. Flush eljárás Text típusú file pufferjének kiírása az outputra. Flush(var f: text); f text típusú file változó. Rewrite vagy Append utasítással outputra megnyitott file esetén a Flush utasítás az átmeneti puffer tartalmát kiírja. Olvasásra megnyitott állományok esetén az utasításnak nincs hatása. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. IOResult függvény Az utoljára végrehajtott Input/Output művelet hibakódjával tér vissza. IOResult : word; A {$I-} fordító direktívával történő fordítás esetén, amikor a periféria műveletek inaktívak, a függvény a System egység InOutRes változójának értékét veszi fel, ami egy DOS I/O hibakód, majd törli a belső változó értékét. Hiba esetén a belső változó értéke nem nulla, ebben az esetben az I/O művelet nem kerül végrehajtásra. Read eljárás (text file) Egy vagy több értéket olvas szöveg állományból. Read( [var f: text; ] v1 [, v2, ..., vn] ); f text file változó. Ha az f hiányzik, akkor a standard Input állományból olvas. A változók lehetnek egész, valós, karakteres és sztring típusúak. Az eljárás az aktuális pozíciótól kezdő értéke(ke)t olvassa a paraméter típusától függően, majd elhelyezi a felsorolt változó(k)ban. A file mutató az utolsó beolvasott karakter mögé áll. Numerikus változók olvasásakor a TAB, szóköz vagy sorvégjel (CR/LF) karaktereket nem veszi figyelembe. Sztring esetén a sorvég jelig olvas, ha a változó rövidebb a szöveg csonkulni fog. Read eljárás (típusos file) Változóba file komponenst olvas. Read(f, v1 [, v2, ..., vn] ); f bármilyen típusú file változó, kivéve a text típust. A változók típusának meg kell egyeznie az állományban lévő adatok típu-sával. Csak nyitott file-ból lehet olvasni. A file mutató minden olvasás után automatikusan a következő komponensre lép, ha az utolsó komponens után áll, olvasás esetén I/O hibát kapunk. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Readln eljárás Végrehajt egy Read utasítást és a file következő sorára pozíciónál. Readln( [var f: text; ] v1 [, v2, ..., vn]); A Readln egy kiterjesztett Read utasítás, amely csak szöveges állományokra használható. A változó(k)ba történő beolvasás után a Readln a file mutatót, illetve a kurzort a következő sor elejére állítja. Ha az f hiányzik, a standard Input állományból olvas és az olvasás után a puffer törlődik. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Rename eljárás File-t átnevez. Rename(var f: newname: string); f bármilyen típusú file változó, newname sztring típusú kifejezés. Az f-hez rendelt fizikai állományt átnevezi a newname változóban megadott névre. Nyitott állományra nem szabad használni. Megfelel a DOS REN parancsának. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Reset eljárás Létező file-t nyit meg. Reset(var f [; file, recsize: word] ) f bármilyen típusú file, recsize opcionális word típusú kifejezés, csak típus nélküli file esetén kell megadni. Létező file-t nyit meg, azzal a névvel amelyet Assign utasítással az f-hez rendeltünk. Ha az adott nevű file nem létezik, hibajelzést kapunk, ha a file már nyitva volt, akkor először lezárja, majd újranyitja - ebben az esetben az előző file elveszik - a file mutató a file elejére mutat. Assign(f,'') esetén a file neve üres sztring, ilyenkor a standard Input állo-mány lesz megnyitva. Ha az f szöveg állományhoz van rendelve, a Reset utasítás csak olvasás-ra nyitja meg az állományt, ilyenkor az Eof(f) igaz, az állomány üres. Típus nélküli állomány esetén a recsize változó adja meg a rekord méretét. Ha a recsize változó hiányzik a paraméterlistáról, a rekord mérete 128 byte lesz. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Rewrite eljárás Létrehoz és megnyit egy új file-t. Rewrite(var f [: file; recsize : word] ); f bármilyen típusú file, recsize opcionális word típusú kifejezés, csak típus nélküli file esetén kell megadni. A Rewrite utasítás új file-hoz létre azzal a névvel, amelyet az Assign utasítással az f-hez rendeltünk. Ha a file már létezett, törli és a helyén újat hoz létre. Ha nyitva volt, lezárja és újra létrehozza. A file mutató a file elejére mutat. Ha a file neve üres sztring, akkor a Rewrite a standard Output file-t fogja megnyitni. Tipus nélküli állomány esetén a recsize változó adja meg a rekord méretét. Ha a recsize változó hiányzik a paraméterlistáról, a rekord mérete 128 byte lesz. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Seek eljárás A file mutatót a megadott komponensre állítja. Seek(var f: n: longint); f file változó, text típusú nem lehet, n longint típusú kifejezés. Az aktuális file mutatót az n változóban megadott számú komponensre állítja. 0 esetén a file első komponensére, FileSize(f) esetén az utolsó komponensére fog mutatni a file mutató. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. SeekEof függvény Visszatér a file end-of-file (file vége) státuszával. SeekEof [ (var f: text) ] : boolean; f text típusú file változó. A függvény a szöveg állományban a következő tabulátort, szóközt és sorvégjelet átugorja és értéke igaz lesz, ha a mutató a file végére került. Ha az f hiányzik, akkor a standard Input állományról van szó. Az utasítás csak nyitott file-ra adható ki. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. SeekEoln függvény Visszatér a file end-of-line (sor vége) státuszával. SeekEoln [ (var f: text) ] : boolean; f text típusú file változó. A függvény a szöveg állományban a következő tabulátort, szóközt és sor-végjelet átugorja és értéke igaz lesz, ha a mutató a sor végére került. Ha az f hiányzik, akkor a standard Input állományról van szó. Az utasítás csak nyitott file-ra adható ki. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. SetTextBuf eljárás Szöveg állományhoz I/O puffert rendel. SetTextBuf(var f: text; var buf [; size: word] ) f text típusú file változó, buf bármilyen típusú változó, size word típusú opcionális változó. Minden text típusú file változónak van egy belső 128 byte-os puffere. Ez a méret az I/O műveleteknél általában megfelelő. Azonban text file- ok másolásánál, konvertálásánál érdemesebb nagyobb pufferrel dolgozni. Az eljárás a belső puffert kicseréli buf változóban megadott méretűre, ha a size változó is adott, akkor az abban megadott méretűre. A SetTextBuf utasítást Assign utasítás után és a Reset, Rewrite vagy Append utasítások előtt kell aktiválni. Truncate eljárás Az aktuális file pozíciótól a file végéig törli a file-t. Truncate(var f); f bármilyen típusú file változó. Az f bármilyen típusú file aktuális pozíciójától törli a komponenseket a file végéig. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Write eljárás (text file) Egy vagy több értéket ír text file-ba. Write( [var f: text;] v1 [, v2, ..., vn] ); f text típusú file változó, v1, ... a kiírandó paraméterek. Az eljárás az f szöveg állományba az aktuális pozícótól kezdve kiírja a v1 [v2, ... ] kifejezés(ek) értékét. A kifejezések típusa lehet karakter, egész, valós, sztring és logikai. A file mutató az utolsó kiírt karakter mögé áll. Ha az f hiányzik, akkor a standard Output állományba ír. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Write eljárás (típusos file) Egy változót ír ki típusos állományba. Write(f, v1 [, v2, ..., vn ] ) f file változó. v1, ... változó típusa megegyezik a file komponens típusával. Az f típusos állományba kiírja a v1 [, v2, ...] változó(k) értékét. A file mutató minden írás után automatikusan a következő komponensre lép. Ha file mutató az utolsó komponens után áll, a file bővül. A {$I-} fordító direktívával történő fordítás esetén az IOResult változó 0 lesz, ha a művelet sikeres volt, különben a hibakódot adja vissza. Writeln eljárás Write végrehajtása után egy sorvége jelet ír a file-ba. Writeln( [var f: text;] v1 [, v2, ..., vn] ); Teljesen azonos a Write eljárással, melynek végrehajtása után sorvége jelet ír a file-ba. F1.7. DOS és rendszer paraméterek kezelése DosExitCode függvény Dos Alprogram visszatérési kódját adja vissza. DosExitCode : word; Az Exec eljárással hívott program visszatérési kódját adja vissza. Az alsó byte a program által küldött kódot tartalmazza - a Halt vagy Keep eljárás-nak adott paramétert -, míg a felső byte értéke: 0 ha az alprogram hiba nélkül lefutott, 1 ha Ctrl C billentyűkkel szakították meg, 2 futási hibával állt meg, vagy 3 a Keep eljárás hívása miatt fejeződőtt be futása. DosVersion függvény Dos Visszatér a DOS verzió számával. DosVersion : word; Az alsó byte a fő-, a felső byte az alverziószámot tartalmazza. EnvCount függvény Dos Visszatér a DOS környezeti változók számával. EnvCount : integer; Az EnvCount függvény az EnvStr sztring tömb elemeinek számát adja, amely tartalmazza a DOS környezetet. EnvStr függvény Dos A DOS környezeti sztring aktuális értékét adja. EnvStr(Index: integer) : string; Index egész típusú változó, a DOS környezeti változó aktuális eleme. Az első DOS környezeti változó értéke 1. Ha az Index értéke kisebb egynél, vagy nagyobb az EnvCount függvény által visszaadottnál, akkor a függvény értéke üres sztring lesz. Exec eljárás Dos Végrehajt egy programot egy specifikált parancs sorral. Exec(Path, CmdLine: string); Path sztring típusú kifejezés tartalmazza a program nevét, és esetleg az elérési utat CmdLine sztring típusú kifejzés pedig a parancs sort tartalmazza. A heap maximális felső határát akkorára kell lecsökkenteni, hogy a futtatható program beférjen a memóriába. DOSError változó értéke 0, ha az eljárás eredményes volt. A hívott program visszatérési kódját a DosExitCode függvénnyel kérdezhetjük le. A COMMAND.COM futtatásakor a parancs sor első paraméterének Control C -nek kell lennie. Az Exec eljárás hívása előtt és után használjuk a SwapVectors eljárást. Exit eljárás Kilép az aktuális blokkból. Exit Az Exit eljárás hatására a vezérlés egy programszinttel feljebb kerül: kilép az aktuális függvényből, eljárásból illetve főprogramból. Az eljárás hívása hasonló egy Goto utasításhoz, amely a blokk end utasítására adja a vezérlést. FExpand eljárás Dos A file-evet kiegészíti a meghajtóval és a teljes útvonallal. Expand(Path:PathStr) : PathStr; Path a file-nevet tartalmazó PathStr (string[79]) típusú sztring GetCBreak eljárás Dos Visszatér a DOS Ctrl-Break vizsgálatának státuszával. GetCBreak(var Break: boolean); Break logikai változó. Az eljárás a Break paraméterben adja vissza, hogy aktív-e a DOS Ctrl- Break ellenőrzése. Ha hamis az értéke, akkor a DOS csak periféria műveletek hívásakor fogadja el a Ctrl-Break által történő megszakítást, míg igaz esetén minden rendszer hívásakor. GetDate eljárás Dos Az operációs rendszer szerinti aktuális dátumot adja vissza. GetDate(var Year, Month, Day, DayofWeek: word) Year az év dátuma: 1980-2099-ig, Month a hónap dátuma: 1 .. 12, Day nap dátuma: 1 .. 31, DayofWeek a hét napjainak sorszáma: 0 .. 6 (vasárnap sorszáma 0) GetEnv függvény Dos Visszatér az adott környezeti változó értékével. GetEnv(EnvVar: string) : string; EnvVar sztring típusú kifejezés. A GetEnv függvény az EnvVar paraméterben meghatározott DOS környe- zeti változó értékét adja vissza. Ha nem létezik, üres karakterlánc lesz a visszatérési érték. GetFAttr eljárás Dos A file tulajdonságait adja vissza. GetFAttr(var f; var Attr:word); f bármilyen típusú file változó, amely Assign utasításban szerepelt, de nincs megnyitva. Az Attr változóban kapott tulajdonságot and utasítással maszkolhatjuk, és az alábbi konstansokat használhatjuk: const Readonly = $01; { csak olvasható } Hidden = $02; { rejtett file } SysFile = $04; { rendszer file } VolumeID = $08; { lemez neve } Directory = $10; { tartalomjegyzék bejegyzés } Archive = $20; { archivált file } AnyFile = $3F; { bármilyen típusú file } 3-as hibakód keletkezik, ha érvénytelen az útvonal, 5 lesz a hibakód, ha a file nem érhető el. GetFTime eljárás Dos Visszatér az utolsó file írás dátumával és idejével. GetTime(var f; var Time: longint); f bármilyen típusú file változó, Time az utolsó írás dátuma és ideje pakolt formában. A dátumot és az időt az UnpackTime eljárással lehet szétválasztani. GetIntVec eljárás Dos Visszatér a specifikált vektorban a megszakítási rutin címével. GetIntVec(IntNo: byte; var Vector: pointer); IntNo a megszakítási vektor száma (0 .. 255), Vector tartalmazza a megszakítási rutin címét. GetTime eljárás Dos Visszatér az operációs rendszer aktuális idejével. GetTime(var Hour, Minute, Second, Sec100: word); Hour óra : 0 .. 23, Minute perc : 0 .. 59, Second másodperc : 0 .. 59, Sec100 század másodperc: 0 .. 99. GetVerify eljárás Dos Visszatér a DOS Verify (ellenőrzés) jelzőjének aktuális állapotával. GetVerify(var Verify: boolean); Verify logikai kifejezés. Ha a Verify változó igaz, akkor minden lemez írásakor külön ellenőrzés tör-ténik, egyébként nem. Halt eljárás Leállítja a program futását és visszaadja a vezérlést az operációs rendszernek. Halt [ (ExitCode: word) ] Exitcode word típusú kifejezés, a program visszatérési kódja. Az ExitCode értéke bekerül a rendszer ExitCode változójába. A paraméter nélküli Halt hívása megfelel Halt(0) hívásnak. Intr eljárás Dos Szoftver megszakítást hajt végre. Intr(IntNo: byte; var Regs: Registers); IntNo byte típusú kifejezés, a szoftver megszakítás sorszáma, értéke : 0 .. 255 lehet. Regs Registers típusú rekord. A megszakítás hívása előtt a processzor AX, BX, CX, DX, BP, SI, DI, DS és a ES regisztereit a Regs rekordból tölti fel, visszatéréskor ezeket és a Flags regisztert is visszamenti a Regs rekordba. Azon szoftver megszakítást, amely használja és módosítja az SP és SS regisz-tereket, ezzel az eljárással nem szabad meghívni. type Registers = record case integer of 0: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags:word); 1: (AL,AH,BL,BH,CL,CH,DL,DH: byte); end; Keep eljárás Dos Leállítja a program futását, de a program a memóriában marad. Keep(ExitCode: word); ExitCode word típusú kifejezés, a visszatérési kód. A program visszatérési kódját a hívó programból DosExitCode függvénnyel kérdezhetjük le, batch állományban pedig az ERRORLEVEL segítségével. MsDos eljárás Dos Végrehajt egy DOS megszakítást. MsDos(var Regs: Registers); Regs Registers típusú rekord. Az MsDos hívásának a hatása azonos az Intr eljárás IntNo = $21 paraméter-rel történő meghívásával. PackTime eljárás Dos Átkonvertálja a DataTime rekordot 4 byte-ba. PackTime(var DT: DataTime; var Time: longint); DT DataTime típusú rekord, Time longint típusú változó, ebben keletkezik az idő pakolt formában. DataTime = record Year, Month, Day, Hour, Min, Sec: word; end; ParamCount függvény A program parancs sorában lévő paraméterek számát adja vissza. ParamCount : word; Ha a ParamCount kisebb, mint 1, a parancssorban nincs paraméter. ParamStr függvény A parancssor adott sorszámú paraméterét adja vissza. ParamStr(Index: word) : string; Index word típusú kifejezés, a parancssorban lévő paraméter sorszáma. Ha az Index értéke 0 vagy nagyobb, mint a ParamCount függvény, akkor üres sztring a visszatérési érték. A ParamStr(0) értéke a futó programot tartalmazó katalógus teljes útvonalát és a program nevét adja. RunError eljárás Leállítja a program futását és futási hibát generál. RunError [ (ErrorCode: word) ]; ErrorCode word típusú kifejezés, a hiba kódja. 0 lesz a kód, ha az ErrorCode hiányzik. SetCBreak eljárás Dos Beállítja a DOS-ban a Ctrl-Break ellenőrzésének állapotát. SetCBreak(Break: boolean); Break logikai típusú kifejezés. Ha a Break értéke hamis, a DOS csak a periféria műveletek alatt figyeli a Ctrl-Break megnyomását, igaz érték esetén minden rendszer- híváskor. SetDate eljárás Dos Beállítja a operációs rendszer dátumát. SetDate(Year, Month, Day: word); Year az év dátuma : 1980-2099-ig, Month a hónap dátuma : 1 .. 12, Day nap dátuma : 1 .. 31. SetFAttr eljárás Dos Megváltoztatja a file tulajdonságait. SetFAttr(var f; var Attr:word); f bármilyen típusú file változó, amely Assign utasításban szerepelt, de nincs megnyitva. Az Attr változóban a következő tulajdonságokat adhatjuk meg (Az and utasí-tással fűzhetünk össze többet): const Readonly = $01; { csak olvasható } Hidden = $02; { rejtett file } SysFile = $04; { rendszer file } VolumeID = $08; { lemez neve } Directory = $10; { tartalomjegyzék bejegyzés } Archive = $20; { archivált file } AnyFile = $3F; { bármilyen típusú file } 3-as hibakód keletkezik, ha érvénytelen az útvonal, 5 lesz a hibakód, ha a file nem érhető el. SetFTime eljárás Dos Beállítja a file utolsó írásának a dátumát és idejét. SetFTime(var f; Time: longint); f bármilyen típusú file változó, Time longint típusú változó, pakolt formában tartalmazza a dátumot és az időt. A SetFTime eljárás hívásakor az állománynak nyitva kell lennie. SetIntVec eljárás Dos Beállítja a megadott megszakítási vektort egy megadott címre. SetIntVec(IntNo: byte; Vector: pointer); IntNo byte típusú változó, a megszakítási vektor sorszámát tartalmazza (0 .. 255), Vector pointer típusú változó, tartalmazza a címet. SetTime eljárás Dos Beállítja az operációs rendszer idejét. SetTime(Hour, Minute, Second, Sec100: word) Hour óra: 0 .. 23, Minute perc: 0 .. 59, Second másodperc: 0 .. 59, Sec100 századmásodperc: 0 .. 99. SetVerify eljárás Dos Beállítja a DOS verify jelzőjének állapotát. SetVerify(Verify: boolean); Verify logikai típusú kifejezés. Ha a Verify értéke igaz, minden disk műveletnél ellenőrzés történik. SwapVectors eljárás Dos Felcseréli a megszakítási vektorokat. SwapVectors; A System unitban lévő SaveIntXX mutatók tartalmát felcseréli a megszakítási vektorok tartalmával. Az Exec eljárás előtt és után kell használni. UnpackTime eljárás Dos Szétpakolja a 4 byte-os pakolt dátum és időt egy DateTime típusú rekordba. UnpackTime(Time: longint; var DT: DateTime); F1.8. Overlay kezelés OvrClearBuf eljárás Overlay Törli az overlay puffer tartalmát. OvrClearBuf; Ha egy overlay egységről hívjuk az eljárást, akkor a puffer törlése után ismét betölti az egységet. Az OvrClearBuf használatát kizárólag speciális célra szánták, hogy ideiglenesen törölje az overlay puffer által elfoglalt memóriát. OvrGetBuf függvény Overlay Visszatér az overlay puffer aktuális méretével. OvrGetBuf : longint; Kezdetben az overlay puffer azt a legkisebb méretet foglalja le, amely a legnagyobb overlay szegmens számára elegendő. Az overlay program vég-rehajtásakor a puffer mérete automatikusan megállapításra kerül. Az overlay puffer mérete lehet nagyobb, mint 64 K, mivel az utasítá-sokat és a legnagyobb overlay szegmens információit tartalmazza. OvrGetRetry függvény Overlay 5.5 Visszatér az overlay puffer próbálkozási területének aktuális méretével. OvrGetRetry : longint; Ez az érték az OvrSetRetry eljárás által utoljára adott érték. OvrInit eljárás Overlay Inicializálja az overlay-kezelőt és megnyitja az overlay file-t. OvrInit(FileName: string); FileName sztring típusú kifejezés, overlay file neve; Ha FileName paraméter nem tartalmaz meghajtót vagy útvonalat, az overlay-kezelő a file-t először az aktuális tartalomjegyzékben, majd az .EXE állományt tartalmazó katalógusban, végül a DOS PATH környezeti változó-jával meghatározott katalógusokban keresi. Az OvrResult változó tartalmazza a hibajelzést. ovrOK sikeres a végrehajtás, ovrError az overlay file formátuma nem megfelelő, vagy a program nem overlay típusú, ovrNotFound jelenti, hogy az overlay file-t nem tudja betölteni. 208-as futási hibát kapunk, ha az overlay-kezelő nincs installálva. OvrInitEMS eljárás Overlay Betölti az overlay file-t az EMS memóriába. OvrInitEMS; Ha van elég hely az EMS memóriában, az OvrInitEMS eljárás betölti oda az overlay file-t, majd lezárja azt, és ezután a lemezről való betöltést a gyors memóriamásolás váltja fel. A programfutás végén az EMS memória automa-tikusan felszabadul. Az OvrResult tartalmazza a hibajelzést. ovrOK nincs hiba, ovrError OvrInit hibás, vagy nincs aktiválva, ovrIOError I/O hiba történt az overlay file olvasása közben, ovrNoEMSDriver EMS meghajtót nem érzékelt, ovrNoEMSMemory nincs elég EMS memória. Ha CONFIG.SYS file-ban EMS-en alapuló RAM diszk parancs van, akkor bizonyosodjon meg arról, hogy van még elegendő hely az overlay működésére. OvrSetBuf eljárás Overlay Beállítja az overlay puffer méretét. OvrSetBuf(BufSize: longint); BufSize longint típusú kifejezés, az overlay puffer mérete. A BufSize paraméternek nagyobb vagy egyenlőnek kell lennie az overlay puffer kezdeti méreténél, és kisebb vagy egyenlő mint MemAvail+OvrGetBuf. Az eljárás hívásakor a heap-nek üresnek kell lennie, ezért szün-tessük meg az összes dinamikus változót és zárjuk le a grafikus üzem-módot. Ha az OvrSetBuf eljárással növelni kívánja az overlay puffer méretét, akkor használja egyidejűleg a (M fordítási direktívát a heap minimum mére-tének növelésére. Hibajelzések az OvrResult változóban: ovrError OvrInit hívása hibás, vagy nincs aktiválva, BufSize mérete túl kicsi, vagy a heap nem üres, ovrNoMemory nincs elég memória az overlay puffer méretének növelésére. OvrSetRetry eljárás Overlay 5.5 Beállítja az adott méretre az overlay puffer próbálkozási területét. OvrSetRetry(Size: longint); Size longint típusú kifejezés, overlay puffer mérete. Ha a próbálkozási terület elegendő egy újabb overlay egység betölté-séhez, akkor az overlay-kezelő nem törli a már betöltött szegmenst. Az overlay puffer bármely szabad területe a próbálkozási területen van figyelembe véve. Az overlay-kezelő korábbi verziójának kompatibilitása céljából alapértelmezésben a próbálkozási terület nulla, mely lehetetlenné teszi a próbálkozási/végrehajtási mechanizmust. A próbálkozási terület optimális méretének meghatározására nincs empirikus formula, azonban a tapasztalat szerint az overlay puffer méretének körülbelül 1/3-a az optimális adat. F1.9. Pointerek kezelése Addr függvény Visszatér a specifikált objektum címével. Addr(x) ; pointer; x bármilyen változó, eljárás vagy függvény. Megadja az x változóra, eljárásra vagy függvényre mutató pointert. A függvényhívás helyettesíthető a @x operátorral. Dispose eljárás Felszabadítja a dinamikus változót. Dispose(var p: pointer [; destructor] ) p bármilyen típusra mutató pointer, destructor destruktor azonosító. A Dispose eljárás felszabadítja a New eljárással létrehozott p pointer heap-beli területét, ezután a p határozatlan lesz, a rá való hivatkozás futási hibát okozhat. Ha az eljárás hívásakor a p nem a heap-be mutat, futási hiba lép fel. Turbo Pascal 5.5 verzióban a dinamikus objektumok megszüntetésére hasz-nálható, ekkor második paraméterként az objektum destruktorának neve is megadható. Ebben az esetben a destruktor végrehajtódik a Dispose utasítás végrehajtása előtt. FillChar eljárás Feltölti a memóriát a változó kezdőcímétől egy megadott értékkel. FillChar(var x; count: word; value); x bármilyen típusú változó, count word típusú kifejezés, value sorszámozott típusú kifejezés. Az x változó kezdőcímétől feltölti a memóriát count darab value kifejezés értékével. Mivel nincs memóriaellenőrzés, óvatosan kell használni. FreeMem eljárás Felszabadít a heap-ből egy dinamikus változóhoz rendelt adott méretű terü-letet. FreeMem(var p: pointer; size: word); p bármilyen típusra mutató pointer, amely a GetMem eljárás hívásával kapott értéket, size word típusú kifejezés, a felszabadítandó terület byte-okban. A FreeMem felszabadítja a heap-ből a p pointer mutatóhoz rendelt size mé-retű területet és ezáltal határozatlanná válik. A p pointerre való további hivatkozás futási hibát okozhat. Ha a size nem egyezik meg a p mutatóval mutatott terület méretével, a heap megsérülhet. Ha az eljárás hívásakor a p nem a heap-be mutat, futási hiba lép fel. GetMem eljárás Adott méretű területet foglal le a heap-ben és a területre mutató címet el-helyezi egy pointerben. GetMem(var p: pointer; size: word); p a lefoglalt területre mutató bármilyen típusú pointer, size word típusú kifejezés, a lefoglalandó terület méretét tartalmazza byte-okban. A GetMem eljárással dinamikusan foglalhatunk le size méretű területet a heap-ből. Az újonnan létrehozott változóra p^ hivatkozhatunk. Ha nincs elég összefüggő szabad terület a heap-ben, akkor hibajelzést kapunk. 65521 byte méretű az a legnagyobb terület, melyet lefoglalhatunk. Mark eljárás Egy pointer változóba másolódik a heap-mutató értéke. Mark(var p: pointer); p bármilyen típusú pointer. A Mark eljárás a p pointerbe másolja a heap-mutató (HeapPtr) értékét, amelyet később a Release eljárással lehet visszaállítani. MaxAvail függvény Visszatér a legnagyobb összefüggő terület méretével, amelyet a heap-ben lehet egyidejűleg dinamikusan lefoglalni. MaxAvail : longint; A MaxAvail függvény byte-okban adja vissza a heap-ben lévő legna-gyobb összefüggő szabad terület méretét. MemAvail függvény Visszatér a heap-ben lévő összes szabad terület méretével. MemAvail : longint; A MemAvail függvény byte-okban adja vissza a heap-ben lévő összes szabad terület méretét. Move eljárás Átmásol egy meghatározott nagyságú részt egyik változóból a másikba. Move(var source, dest; count: word); source, dest bármilyen típusú változó, count word típusú kifejezés. A Move eljárás count darab byte-ot átmásol a source változó kezdő-címétől a dest változóba, a dest változó első byte-jától kezdődően. A két vál-tozó esetleges átfedését az eljárás figyelembe veszi, és a másolást úgy hajtja végre. Nem végez viszont memória- és típusellenőrzést, ezért óvatosan hasz-náljuk. New eljárás Létrehoz a heap-ben egy dinamikus változót és a címét elhelyezi benne. New(var p: pointer [; constructor] ); p bármilyen típusú pointer, constructor konstruktor azonosító. Az újonnan létrehozott változóra p^ hivatkozhatunk. Ha nincs elég hely a heap-ben az új változó létrehozására, akkor hibajelzést kapunk. Turbo Pascal 5.5 verzióban a dinamikus objektumok létrehozására használ-ható, ekkor második paraméterként az objektum konstruktorának neve is megadható. Ebben az esetben a konstruktor végrehajtódik a New utasítás végrehajtása után. Ptr függvény Pointer típusú mutatóvá konvertálja a szegmens : eltolás címet. Ptr(Seg, Ofs: word) : pointer; Seg,Ofs word típusú kifejezések. A Ptr függvény a Seg és az Ofs paraméterekben megadott címet mutató típusúvá konvertálja. Release eljárás Pointer értékének átmásolása a heap-mutatóba. Release(var p: pointer); p bármilyen típusú pointer. A Release eljárás átmásolja a Mark eljárás által kapott p pointer értékét a heap-mutatóba (rHeapPt). SizeOf függvény Visszatér az argumentumnak byte-okban elfoglalt értékével. SizeOf(x) : word; x bármilyen változó, vagy típus azonosító. A SizeOf függvény az x által elfoglalt byte-ok számát adja vissza. TP 5.5-ben VMT/vel rendelkező objektum típusú változó esetén a VMT mérete lesz a függvény értéke. TypeOf függvény 5.5 Visszatér az objektum típusú változóhoz tartozó VMT címével. TypeOf(x) : pointer; x olyan objektum típus, amely rendelkezik VMT/vel.