Oberon-2

Modulok

5.1. A SYSTEM modul

Függvények: Név Argumentum típusa Visszatérési érték típusa Hatása ADR(v) bármilyen LONGINT v változó címe BIT(a,n) a: LONGINT; n: egész BOOLEAN Mem[a] n-edik bitje CC(n) Egész konstans BOOLEAN feltétel n (0<=n<=15) LSH(x,n) x:eg,ch,BYTE;n:egész x típusa logikai eltolás ROT(x,n) x:eg,ch,BYTE;n: egész x típusa forgatás VAL(T,x) T, x: bármilyen típusú T x interpretációja T típusban Eljárások: Név Argumentumok típusa Hatása GET(a,v) a: LONGINT; v: bármilyen bázistípus, mutató, eljárástípus v:=M[a] PUT(a,x) a: LONGINT; x: bármilyen bázistípus, mutató, eljárástípus M[a]:=x GETREG(n,v) n: egész konstans; v: bármilyen bázistípus, mutató, eljárástípus v:= Register(n) PUTREG(n,x) n: egész konstans; v: bármilyen bázistípus, mutató, eljárástípus Register(n):=x MOVE(a0, a1, n) a0, a1: LONGINT; n: egész M[a1..a1+n-1]:=M[a0..a0+n-1] NEW(v,n) v: bármilyen mutató; n: egész n byte memoriát lefoglal; beállítja a címét v címére

5.2 Az OS modul

Képernyõeljárások: CopyBlock(sx, sy, w, h, dx, dh) Az (sx,sy,w,h) téglalapot átmásolja a képernyõ (dx,dy,w,h) téglalapjára. FillBlock(x,y,w,h) Feltölti a képernyõ ezen téglalapját. EraseBlock(x,y,w,h) Törli a képernyõ ezen téglalapját. InvertBlock(x,y,w,h) Invertálja a téglalapot. DrawPattern(pat,x,y) A pat nevû mintát rárakja a képernyõ téglalapjára, melynek bal also sarka: (x,y) DrawCursor(x,y) (x,y) pozícióra teszi az egeret. FadeCursor Elrejti az egeret. Betûtípus operációk: f:=DefaultFont() Visszaadja az alapértelmezett fontot. f:=FontWithName(n) Visszaadja a font nevét. GetCharMetric(fnt,ch,dx,x,y,w,h,pat) Az fnt típusú, pat mintájú ch karakter (x,y,w,h,dx) metrikáját adja vissza. Egér és billentyûzet operációk: n:=AvailChars() Visszaadja, hogy hány karakter van a billentyûzet bufferében. ReadKey(ch) Beolvassa és törli a következõ karaktert a billentyûzet bufferébol. Ha a buffer üres, akkor vár, amíg le nem ütünk egy billentyût. GetMouse(b,x,y) Visszaadja az egér pozícióját és irányát. (b: 0=jobb, 1=közép, 2=bal). File operációk: f:=NewFile(n) Létrehoz egy n nevu f file-t. f:=OldFile(n) Megnyit egy n nevu f file-t. Ha ilyen nincs, akkor f=NIL. Register(f) Egy ideiglenes f file-t transzformál egy NewFile által létrehozott file-ba. InitRider(r) Rider-t inicializás. A Rider osztály metódusai: r.Set(f,pos) Az r ridert ráállítja az f file pos pozíciójára. r.Read(ch) r-bol olvas egy karaktert. r.ReadInt(x) Egész számot olvas. r.ReadLInt(x) Long integert olvas. r.ReadString(s) Stringet olvas. r.ReadChars(buf,len) Karaktereket olvas len hosszúságban és a buf bufferbe teszi. r.ReadObj(obj) Tetszõleges objektumot olvas. r.Write(ch) Karaktert ír. r.WriteInt(x) Egészt ír az r-be. r.WriteLInt(x) Long integert ír. r.WriteString(s) Stringet ír. r.WriteChars(buf,len) Karaktereket ír a bufferbõl. r.WriteObj(obj) Objektumot ír. Egyéb operációk: NameToObj(name,obj) A name egy string, melynek M.T. a formája. A NameToObj létrehoz egy T típusú recordot, melyet az M modulból exportál és visszaad egy pointert rá az obj-ba. Ha a modul vagy a típus rosszul van megadva, az obj NIL lesz. Move(buf0,pos0,buf1,pos1,len) Másol len db byte-ot buf0[pos0]-ból buf1[pos1]-be. t:=Time() Visszaadja az eltelt idõt a System start-tól. Call(cmd) Aktiválja a cmd parancsot és betölti a modult, amely ot tartalmazza.

5.3 Az IO modul

Szkenner üzenetek: s.Set(t,pos) Az s szkennert a t text pos pozíciójára állítja. s.SetToParameters A legutóbbi parancs végére állítja a szkennert, így olvashatjuk a parancs paramétereit. s.Read Olvassa a következo pozíciót. bool:=s.Eof() TRUE, ha nem tudunk több szimbólumot olvasni a szkennerbol. pos:=s.Pos() Aktuális pozíciót adja vissza. Output rutinok: Str(s) “Kidobja” az s stringet. Ch(ch) …a ch karaktert. Int(i,w) …az i egészt egy w hosszúságú karaktermezobe. Real(r,w) Ugyanez valóssal. NL Soremelés.