Informatika | Számítógép-architektúrák » Kovács Józsefné - Az IBM PC és a PS2 architektúrája

Alapadatok

Év, oldalszám:2000, 22 oldal

Nyelv:magyar

Letöltések száma:532

Feltöltve:2004. június 08.

Méret:145 KB

Intézmény:
-

Megjegyzés:

Csatolmány:-

Letöltés PDF-ben:Kérlek jelentkezz be!



Értékelések

Nincs még értékelés. Legyél Te az első!

Tartalmi kivonat

Kovács Józsefné Programozás: 1. előadás 1 1. előadás (Peter Norton: Az IBM PC és PS/2 anatómiája 1990. Prentice Hall International Ltd Peter Norton: Az IBM PC programozása Pethő Ádám : IBM PC/XT felhasználóknak és programozóknak II. és III kötet Dr. Gidófalvi Zoltán: Az IBM PC programozása assembly nyelven) a) A PC memóriaszervezése. Megszakítások kezelése. Megszakítási vektorok táblája A DOS operációs rendszer koncepciója. Parancsértelmezés, a DOS-szolgáltatások filozófiája. Input-output szervezése assembly nyelvű programokban. b) A DOS lemez-szervezése. BIOS szolgáltatások. c) Input-output szervezése portokon keresztül. A programozó számára létfontosságú, hogy ismerje egyrészt a számítógép hardver felépítését, másrészt az adott gépen alkalmazott operációs rendszer lehetőségeit. Elsőként a hardver környezetet tekintsük át! A PC memóriaszervezése A Pc-nk belső munkájával kapcsolatos egyik leghasznosabb

tudnivaló a számítógép memóriájának szervezése és használata. Ennek megértése megkönnyíti a számítógép működésének megértését (Pl 640 Kbyte-os memóriakorlát, képernyős megjelenítés, stb.) Valós üzemmódbeli működés ! 1 millió byte-os címtartomány Oka: a PC szegmensregisztereken keresztüli memóriacím-számítási mechanizmusa. Minden cím egy-egy byte-ot azonosít. Ez a címtartomány egy potenciális lehetőség, nem jelenti azt, hogy ez a számítógépben benne van. Célszerű a teljes 1Mbyte-os címtartományt 16, egyenként 64Kbyte-os blokkra osztani. Ezeket a legmagasabb helyiértékű hexa számjegyük szerint azonosíthatjuk A PC 1 Mbyte-os memóriáját a felhasználása és a rendeltetése szempontjából ilyen blokkokba szervezték. (Ez nem jelenti azt, hogy a blokkok között valamilyen korlát lenne). 2 Kovács Józsefné Programozás: 1. előadás 0-ás blokk 1. 64 K normál felhasználói memória 1-ás blokk 2. 64 K

normál felhasználói memória 2-ás blokk 3. 64 K normál felhasználói memória 3-ás blokk 4. 64 K normál felhasználói memória 4-es blokk 5. 64 K normál felhasználói memória 5-ös blokk 6. 64 K normál felhasználói memória 6-os blokk 7. 64 K normál felhasználói memória 7-es blokk 8. 64 K normál felhasználói memória 8-as blokk 9. 64 K normál felhasználói memória 9-es blokk 10. 64 K normál felhasználói memória A blokk 11. 64 K video memória B blokk 12. 64 K video memória C blokk 13. 64 K kiterjesztett ROM terület D blokk 14. 64 K kiterjesztett ROM terület E blokk 15. 64 K rendszer ROM BIOS F blokk 16. 64 K rendszer ROM BIOS A memória fő munkaterülete a memóriának az a része, ahol a programjaink és az adataink elhelyezkednek: ez az első 10, 0-tól 9-ig sorszámozott blokk. Ezt a részt gyakran felhasználói munkaterületnek nevezik, hogy megkülönböztessék azoktól a területektől, amelyeket így vagy úgy

a saját céljaira használ. Az ezen a területen lévő memória írható olvasható teszőleges hozzáférésű memória, amelyet RAM -nak nevezünk. (RAM: Random Access Memory) A DOS-t alapvetően úgy tervezték, hogy a teljes címterület 16 blokkjából csak 10 blokkot képes fő munkaterületként használni. A memóriaterület 0. címjétől kezdődő alsó része alapvető fontosságú a számítógép működésében. Kovács Józsefné Programozás: 1. előadás A memória alsó részének szolgáltatásai: 1. rész: 1024 byte (0-400h) megszakítási vektortábla - 256 megszakítási rutin kezdőcímét tárolja 2. rész: 256 byte (400h-500h)a ROM BIOS rutinok szálgálatára áll, a rutinok számára adatokat tároló terület (pl. billentyű leütésekor a lenyomott billentyű kódját tárolja, vagy feljegyzés a számítógép memóriának nagyságáról, a számítógéphez csatlakoztatott egységekről) 3. rész: 256 byte (500h-600h) a DOS és a BASIC

munkaterülete Videomemória A felhasználó memóriaterület után következik egy 128 Kbyte-os terület, amelyet a videoképernyők használnak. Amit a képernyőn látunk, azt a memóriának ez a része tárolja. A legfelső része a memóriának az E és F blokkok, amelyek a számítógép beépített ROM-BIOS programjait tartalmazzák. (ROM: Read Only Memory) Az itt lévő programok három fő típusa: − azok, amelyek a számítógép bekapcsolásakor futnak le. − azok, amelyek vezérlik a számítógép különböző részeit, főleg az I/O perifériákat. − beépített BASIC program (csak az eredeti IBM PC-ben). Kiterjesztett ROM terület (ROM Extended Area) Nincs egyértelműen meghatározott rendeltetése. Egyik felhasználási területük, hogy az E és F blokkban lévő BIOS rutinok bővítéseinek helyet adjanak. Ha valamilyen új eszközt csatlakoztatnak a számítógéphez és az eszköznek szoftvertámogatásra van szüksége, akkor ezeket a ROM-BIOS rutinokat itt

helyezik el. A másik felhasználási módja a kiterjesztett memória támogatása. 3 Kovács Józsefné Programozás: 1. előadás 4 Megszakítások kezelése Valahányszor egy hardver berendezésnek vagy egy programnak a CPU közreműködésére van szüksége, egy megszakításnak nevezett jelet vagy utasítást küld a mikroprocesszornak. A jel egyben azonosítja a végrehajtandó taszkot is Amikor a mikroprocesszor megkapja a megszakításjelet, általában befejezi minden más tevékenységét és elindítja a megszakításhoz tartozó megszakításkezelő szubrutint. Miután a megszakításkezelő befejezte feladatát, a gép onnan folytatja tevékenységét, ahol a megszakítás bekövetkezésekor tartott. A megszakításoknak három fajtája: Hardver (8db 2,8,9,11-15) amit a számítógép áramkörei generálnak, ha valami történik (pl. egy billentyű leütése). Ezeket a megszakításokat a megszakításvezérlő kezeli és sorrendbe állítja, mielőtt a CPU felé

továbbítaná. Processzor amit a CPU generál. Ezek a programban előforduló váratlan események következményei (pl. nullával való osztás) 0-ás interrupt: osztási túlcsordulás (az eredmény nem fér el a kijelölt helyen) Az interrupt-vektor normális esetben egy DOD rutint címez, amely abortálja az eseményt kiváltó programot. 1-es interrupt: lépésenkénti megszakítás ha a flag regiszter T bitjét 1-re állítottuk, akkor ez az interrupt minden egyes utasítás végrehajtása után aktiválódik. Ha ezt az interrupt-vektort úgy készítettük elő, hogy egy értelmes nyomkövető rutint címezzen, akkor ezt egy valódi hardver vezérelte nyomkövetésre használhatjuk. Ezek az interruptok hardver úton és interrupt utasítások kiadásával nem válthatók ki. Szoftver (5, 16-28, 72) amit a program szándékosan idéz elő, ily módon hív meg egy RAM-ban vagy ROMban tárolt szubrutint. (Ezek a ROM-BIOS és a DOS szolgáltatások részei) Szoftver

megszakítást INT utasítás segítségével érhetünk el. Az INT utasítás formája: INT interrupt-vektor pl. INT 21H Bizonyos értelemben mi is produkálhatunk hardver meszakítást, hiszen az INT utasítás segítségévellehetőség nyílik ezek meghívására is. 5 Kovács Józsefné Programozás: 1. előadás Mit csinál a processzor, amikor egy interrupt érkezik? 1. Befejezi azt az utasítást, amelyet éppen végrehajt 2. Elmenti a flag-regiszter tartalmát a stack-be 3. Elmenti a következő utasítás szegmens-címét a stack-be 4. Elmenti a következő utasítás offset-címét a stack-be 5. Meghatározza a megfelelő interrupt handler címét 6. 0-ra állítja az I flag-et (ezzel letiltja a további megszakításokat) 7. Indítja az interrupt handler végrehajtását Az interrupt rendszer kialakítása IBM PC-n A PC 256 féle programmegszakítást ismer fel. A megszakítási vektorok táblája a memória első 1024 byte-ját foglalja le. Ezt a táblát a

számítógép indulásakor a BIOS tölti fel. Minden egyes megszakításhoz 2 szó tartozik (IP és CS). Következésképpen a táblában 256 ún. vektor szerepel A megszakítási vektor első szava az offset-cím, a második szava a szegmens-cím. Fogalmak átismétlése Interrupt: egy esemény által kiváltott jel, ami azonnali figyelmet igényel. Interrupt vektor: egy szám, amely azonosítja az interruptot. Interrupt handler: egy procedúra, amely végrehajtódik, ha egy interrupt létrejön. Interrupt vektorok táblája: egy tábla, amely az interrupt-handlereknek a szegmentált címét tartalmazza. Kovács Józsefné Programozás: 1. előadás 6 A DOS operációs rendszer koncepciója. Parancsértelmezés, a DOSszolgáltatások filozófiája A program futtatása egy meghatározott környezetben történik, amely környezetet az operációs rendszer jelenti. A program futtatásának lépései: 1. a program betöltése a memóriába egy fájlból perifériális

eszközök biztosítása vezérlés átadása a program belépési utasítására 2. program futása 3. a programból való kilépés után visszatérés az operációs rendszerbe Általában egy operációs rendszer feladata: a számítógép belsejében lejátszódó nagy számú esemény vezénylését, koordinálását és ellenőrzését végzi. A DOS tevékenysége három kategóriába sorolható: 1. A nyomtatók, lemezek, képernyők, billentyűzetek, stb irányításával kapcsolatos tevékenység . Ez parancsok küldését jelenti a megfelelő eszközökhöz és gondoskodást az általuk bejelentett bármely hibáról. Ez éppen a BIOS feladatkörének felel meg Tágabb értelemben a PC-ken működő bármely operációs rendszer kulcsfontosságú összetevőként magában foglalja a BIOS-t. Az operációs rendszer munkájának döntő része a lemezeken az adattárolás módjának gyakorlati kivitelezése, az adatok tárolása, valamint gyors és megbízható visszakeresése.

2. A programok futtatása Betöltés lemezről, a végrehajtásukhoz szükséges keretek biztosítása és az igényelt szolgáltatásokról való gondoskodás 3. Parancsok feldolgozása Ez a DOS és a felhasználó között fennálló közvetlen kapcsolatot jelenti. Valahányszor a C:> promtjára begépelünk valamit, akkor mindig a DOS parancsfeldolgozó megjelenési formájával van dolgunk. Kovács Józsefné Programozás: 1. előadás 7 A DOS története és koncepciói A PC olyan időszakban született, amikor a legtöbb számítógép 8 bites mikroprocesszort használt. Az ezeken a gépeken használt operációs rendszer a CP/M volt. Az IBM a PC-re is egy CP/M szerű operációs rendszert szándékozott kifejlesztetni. Oka : a 8 bites gépeken futó programok gyors adaptálhatósága, a felhasználók tapasztalata és jártassága a CP/M használatában (Gary Kildall a CP/M megalkotója - Digital Research , az operációs rendszerek területén volt az uralkodó) (Bill

Gates a Microsoft elnöke - a Microsoft a programozási nyelvek területén volt az uralkodó) (Gary Kildall repülése operációs rendszerének kényszerleszállása) Első változata 1980-ban jelent meg. A Microsoft terméke Bár a CP/M vetélytársa, mégis a DOS kialakítása és működése nagymértékben a CP/M által biztosított lehetőségeken és a mögöttük húzódó elképzeléseken alapult. Ugyanakkor a Microsoft járatos volt a UNIX világában, amely álatlánosan elismert volt széleskörű szolgáltatásaiért. Így egy sor hatása érezhető a UNIX koncepciójának. A CP/M befolyása az alábbiakban látható: A prompt c:/> egyfelhasználós egy felhasználó egyetlen feladatot hajthat végre (nem újrahívható rutinok, nincs lehetőség arra hogy újra meghívjuk a rendszert) UNIX-szerű hatások: katalógusrendszer DOS belső szerkezete, a DOS szolgáltatásai az állományok kezelése Az általunk használt DOS a CP/M és a UNIX stílusjegyeinek és

kialakítási jellemzőinek egyfajta keveréke. Miközben a UNIX számos széles körű és előremutató lehetőségével rendelkezik, még mindig szenved kezdeti korlátozásaitól. 8 Kovács Józsefné Programozás: 1. előadás Próbálkozások a korlátozások meghaladására A DOS 1-es verziója merev felépítéssel rendelkezett, amely előre definiált módon az összes olyan eszközt, lemezformátumot és hasonló dolgot tartalmazott, amellyel együtt tudott működni. A PC család növekedésével azonban fontossá vált az, hogy egyrészt képesek legyünk a DOS-t az egyes számítógépek és számítógép-felhasználók igényeihez igazítani, másrészt pedig azt, hogy módunkban legyen az új perifériális eszközöket a DOS-szal elfogadtatni és ahhoz hozzáilleszteni, különösen, ami a PC-vel használatos lemezegységek sok eltérő változatát illeti. 2.0-ás verzióban a konfigurációs állomány kialakításával adaptálhatóvá tették A

konfigurációs állomány a DOS rugalmasságának és alkalmazkodóképességének a kulcsa. A DOS indulásakor megkeresi az indításhoz használt lemezen a CONFIG.SYS nevű állományt. Amennyiben talál ilyet, elolvassa és végrehajtja azokat a parancsokat, amelyek meghatározzák azt, hogy a DOS-nak miként kell az adott helyzetben kiépülnie és alkalmazkodnia. Péda: buffers = 30 files = 20 device = c:DOSxmaem.sys device = c:DOSxma2em.sys frame = d000 p254 = c000 p255 = c400 install = c:fastopen.exe c: d: Az első sor azt mondja meg a DOS-nak, hogy hány lemezszektort puffereljen. A device-os sorok eszközmeghajtókat integrálnak a DOS-hoz. Az install-os sorok automatikusan üzembe helyezik a hivatkozott programokat. 9 Kovács Józsefné Programozás: 1. előadás Vizuális parancsértelmezők A DOS felhasználói felülete a C:> parancs prompton valamint azon alapul, ahogyan a billentyűzeten a beírt parancsokat elfogadja Egy programot képes

egyszerre futtatni Nem tudunk programokat felfüggeszteni azért, hogy egy másik programot elindíthassunk. A vizuális parancsértelmezők olyan programok, amelyek lényegében körbefogják a DOS-t, és különféle olyan lehetőségeket biztosítanak, amelyekkel a DOS nem rendelkezik. Vizuális parancsértelmezők: Microsoft Windows Norton Commander Paracsfeldolgozás A DOS tevékenységei közül a parancsfeldolgozásról van legközvetlenebb tudomásunk. Ez a DOS-nak az a képessége, hogy parancsainkat elfogadja és azokat végrehajtsa. Ezt A COMMAND.COM néven ismert program végzi A COMMAND.COM adja ki a parancs prompt-ot, majd arra vár, hogy bevigyünk egy parancsot. Mi is egy parancs? Valójában nem más, mint egy program futtatására vonatkozó kérés. Azok a programok, amelyeket a parncsértelmező végre tud hajtani, a következő kategóriákba lehet sorolni: belső parancsok külső parancsok: EXE állományok COM állományok BAT állományok (kötegelt

feldolgozás) Kovács Józsefné Programozás: 1. előadás 10 A belső parancsok listája a DOS verzióval együtt változik. A parancsértelmező ezeknek a belső parancsoknak a táblázatát, valamint a végrehajtásukhoz szükséges programok kódját tartalmazza. COM állományok jellemzői: a lemezen tárolt állomány pontosan megfelel annak, ami betöltődik a memóriába. Nem szükséges további előkészítés a futtatáshoz EXE állomány: a betöltés után még bizonyos előkészítést kell tenni a futtatáshoz. Az EXE állományformátumhoz tartozik egy tábla, amely a program módosítandó részeit tartalmazza. BAT , vagy kötegelt állományok Ezek egszerű ASCII szöveges állományok, amelyeknek, minden sora egy parancs, amelyeknek végrehajtására a parancsértelmező kísérletet tesz. Létezik egy kötegelt parancsnyelv, amely képessé teszi a parancsértelmezőt arra, hogy logikai lépéseket hajtson végre, megismételje bizonyos programok

végrehajtását, vagy kihagyjon egyes lépéseket, az előforduló hibáktól, aparaméterektől, vagy attól függően, hogy léteznek-e a nekünk szükséges állományok valójában. 11 Kovács Józsefné Programozás: 1. előadás A beépített BIOS A BIOS ( Basic Input/ Output System) a mindenkori számítógép állandó és megváltoztathatatlan része A BIOS programjai a számítógép legalapvetőbb, alacsonyszintű és legbensőbb vezérlési és felügyeleti feladatait látják el. A BIOS egyszerűen ugyanolyan program, mint bármely másik, azonban funkcionálisan átmenet a hardver és a szofver között. A fő tevékenysége a portok közvetlen programozása, ezenkívül a gondosan kialakított időzítések elvégzése. A BIOS működése bekapcsolás önellenőrzés inicializálás a kiterjesztés inicializálása betöltés lemezről Hardvermegszakítás kezelése Szolgáltatások hardvermegszakítás a program által kért szolgáltatások 12

Kovács Józsefné Programozás: 1. előadás A BIOS első része azoknak a rutinoknak a gyűjteménye, amelyek csak a számítógép bekapcsolásakor futnak le. Két fő részre osztható: önellenőrzés ( a számítógép rendben működik-e) inicializálás (megszakításvektorok létrehozása, a számítógéphez tartozó berendezések beállítása. A BIOS ismeri mindazoknak a szabványos berendezéseknek a teljes körét, amelyekkel a számítógép rendelkezhet. Végigvizsgálja a BIOS- kiterjesztések területét. (Átadja a vezérlést, hogy a kiterjesztés végrehajtsa mindazt, ami a neki megfelelő berendezés inicializálásához szükséges és integrálja magát a BIOS többi részéhez. Pl átírja a Megszakítási vektor-táblát egy új videószolgáltatás esetén). A betöltő rutin: a betöltő rekordot beolvassa a lemezről (a: vagy C: lemezegységről), majd átadja a vezérlést a betöltő rekordon található rövid programnak, amely betölti a DOS-t.

Hardvermegszakítás-kezelő rutinok Szolgáltatások A BIOS programoknak úgy kell működniük, hogy a lehető lenagyobb rugalmasságot tegyék lehetővé, és az őt használó programokat a lehető legkisebb mértékben korlátozza, ugyanakkor a lehető legnagyobb biztonságot garantálja. A BIOS programok a lehető legrövidebb ideig tiltják le a mgszakításokat. Újraindíthatók - ezt úgy oldja meg, hogy az egymást követő szolgáltatáshívások valamennyi adat-és állapotinformációja egymástól elkülönítve kerül tárolásra. A BIOS szolgáltatások moduláris felépítésüek. Kovács Józsefné Programozás: 1. előadás A következő csoportokba vannak szervezve: Megszakítás Szolgáltatáscsoport (hexa) 05 Képernyőtartalom nyomtatása 10 Videoszolgáltatások 11 Konfigurációs lista 12 Tárkapacítás 12 Lemezszolgáltatások 14 Soros port szolgáltatások 15 Vegyes rendszerszolgáltatások 16 Billentyűzetszolgáltatások 17

Párhuzamos port szolgáltatások 18 ROM-BASIC 19 A számítógép indítása 1A Időszolgáltatások 13 14 Kovács Józsefné Programozás: 1. előadás A DOS lemezek logikai felépítése A lemez fő részei: rendszertartomány, adattartomány, amely a DOS saját adminisztrációját tartalmazza ahol állományaink kapnak helyet Rendszertartomány részei BOOT rekord Rögzített helyen, mindig a lemez legelején van, hossza 512 byte. Ez egy rövid programot jelent, amely a DOS betöltésének elindítását végzi Ez a program vagy a rendszer betöltését végzi el, vagy azt írja ki, hogy a lemez nem tartalmaz betölthető operációs rendszert. Minden lemezen megtalálható, az olyanon is, amely nem tartalmaz DOS-t. FAT (File Allocation Table) Mérete 9 szektortól 256 szektorig terjedhet. Ez nagyon fontos tábla. Az állományok részére rendelkezésre álló terület foglaltságát tartja nyilván. (Adatterületre vonatkozik) Kétszer szerepel a lemezen, ezeket a

DOS időnként összehasonlítja, hogy meggyőzödjön azonosságukról. Ennek nem teljesülése révén szerez a DOS tudomást arról, hogy hiba történt. Gyökér katalógus (ROOT directory) Közvetlenül a FAT mellett helyezkedik el. A lemezen lévő állományok leírását tartalmazó 32 byte-os bejegyzések közönséges táblázataként funkcionál.Ennek a mérete rögzített, de lemezenként változó. (Általában merevlemezen 512 bejegyzés fér el). Adatterület A lemez hasznos területe, itt helyezkednek el az adatok. Az adatterületet a DOS clusterekre osztja. 1 cluster : 1, 2 vagy több szektor. Az adatok szektorokban tárolódnak, de a szektorok csak teljes clusterekben tartozbak az állományhoz. Az állományhoz rendelt utolsó clusterben kihasználatlan szektorok is lehetnek. 15 Kovács Józsefné Programozás: 1. előadás Katalógus bejegyzés A file eléréséhez szükséges információkat tartalmazza. A lemezen lévő minden file-hoz tartozik egy

katalógus bejegyzés, melynek hossza 32 byte és ez a gyökérkatalógusban, vagy egy alkatalógusban helyezkedik el. A gyökérkatalógus a lemez típusától függő, de rögzített helyen van és semmilyen különleges bejegyzést nem tartalmaz. Az alkatalógusok önálló file-ként helyezkednek el a lemez adatterületén. Első két bejegyzése adminisztrációs célokra foglalt. Az első bejegyzés saját magára vonatkozik. A név mezőben egy "" helyezkedik el és tíz darab szóköz. A második bejegyzés saját magára vonatkozik. A név mezőben két "" helyezkedik el és kilenc darab szóköz. A katalógus bejegyzés 0-7 file név Balra igazítva, nagybetűvel, szóközzel kiegészítve) 8-10 kiterjesztés 11 attribútum 12-21 lefoglalt terület 22-23 keletkezési idő 24-25 keletkezési dátum 26-27 cluster (első FAT bejegyzés) 28-31 file-hossz (byte-okban) 16 Kovács Józsefné Programozás: 1. előadás File - attribútum: x v x a d

volume label : v s h r/o a lemez kötetcímke bejegyzésről van szó nem tartozik hozzá valódi file d directory file: a szóban forgó tételt nem közönséges file-ként, hanem katalógusként kell kezelni. nem törölhetjük paranccsal. r csak olvasható file: DOS művelettel nem lehet megváltoztatni vagy törölni a archív file: arra utal, hogy az állomány módosult a BACKUP és az XCOPY programok használják, a mentett file-ok atttributumát 0-ra állítják. Minden változtatás után automatikusan 1-re állítja a rendszer. h rejtett (hidden) file: a legtöbb parancs számára láthatatlanná teszi a file-t s rendszer file: a legtöbb parancs számára láthatatlanná tezsi a rendszer. a file programként nem indítható el. Törlésük lehetetlen 17 Kovács Józsefné Programozás: 1. előadás Időt tartalmazó szó szerkezete 5 bit 6 bit óra 5 bit perc 2 mp Idő = Óra * 2048 + Perc 32 + Mp/2 Dátumot tartalmazó szó szerkezete 7 bit 4

bit év 5 bit hó nap 1980. január elsejétől 2099 végéig terjedő dátumok rögzítésére alkalmas Dátum = (Év-1980) * 512 + Hónap 32 + Nap Pl. 1984 december 25 4 * 512+ 12 32 + 25 A bejegyzések első kbyte-ja két speciális értéket felvehet: 0: ez a bejegyzés még soha nem volt használva E5: törölt állomány bejegyzése ezen kívül a katalógus bejegyzésben semmi nem változik a FAT táblában az állományterület felszabadul Kovács Józsefné Programozás: 1. előadás 18 FAT (File Allocation Table) Az adatterület foglaltságát mutatja. Az adatterület minden egyes clusteréhez tartozik egy FAT bejegyzés. A clusterek sorszámozása 2-ről indul. Az egyes clusterek FAT bejegyzésében mindig egy másik cluster azonosítási számát találjuk. Az összes clusterek száma meghatározza, hogy mekkora FAT táblára van szükség. Kétféle FAT formátum létezik: 16 bites bejegyzési mérettel 12 bites bejegyzési mérettel. Ha egy FAT bejegyzés

tartalma 0, akkor az azt jelöli, hogy az illető cluster szabad. Állományok adatait tartalmazó clusterek esetén a FAT bejegyzés vagy a rá következő cluster számát tartalmazza, vagy egy speciális számot, amely az állományelhelyezési lánc végét jelöli. Egy adott állományhoz tartozó clusterek a FAT-ban tárolt numerikus kapcsolat révén láncolódnak össze. Az állománykatalógus bejegyzése az első cluster számát jelöli, és valamennyi cluster a rá következőre mutat, vagy a lác végét jelzi. A lán végét hexa FFFF, hexa FFF jelzi. Hibás lemezterületek azonosítására a hexa FFF7, vagy FF7 bejegyzés használatos. 16 bites FAT-ban lévő számok egyszerűen 2 byte-os szavak listájaként tárolhatók Példa: 0 1 2 3 4 5 6 7 FD FFE 3 5 FF7 6 FFF 0 19 Kovács Józsefné Programozás: 1. előadás 12 bites FAT esetén a dolog komplikáltabb: Algoritmus: 1. A katalógustételben megkeressük a file kezdő clusterét 2. A kapott cluster-számot

szorzzuk 1,5-tel Eredményként egy olyan FAT offset-et kapunk, amely a file következő clusterének a sorszámát tartalmazza. 3. A kiszámított offset-en található értéket töltsük MOV utasítással egy regiszterbe 4. Ha az offset páros, akkor az alacsony helyiértékű 12 bitet hagyjuk a regiszterben, ellenkező esetben a a magas helyiértékű 12 bitet. 5. Ha a kapott 12 bit = FFFh, akkor a file-nak nincs több clustere Egyébként a 12 bit a következő cluster számát adja a file-nak. Példa: 03 40 00 05 60 00 A cluster logikai szektorszámmá alakítása: 1. A cluster-számból vonjuk ki a 2-t 2. Az eredményt a clusteren belüli szektorok számával szorozzuk meg 3. Adjuk hozzá az adatterület kezdő címének a logikai szektorszámát 20 Kovács Józsefné Programozás: 1. előadás A Beep procedúra Egy olyan program, amely a display-re írja az ASCII beep karaktert (07h), 800 hertznek megfelelő frekvencián negyed secundumig szólaltatja meg a beep-et.

Lehet produkálni különböző hangokat különböző időtartamig. Két egységet kell ehhez kezelni: a timer-t a speaker-t. A timer feladata: pulzusokat generálni. A timer a 42h és 43h portokon érhető el. A speaker a 61h porton érhető el. A timer 1 sec alatt 1 193 180-szor vibrál (1234dch). Ahhoz, hogy adott frekvencián generáljon pulzusokat egy számot kell küldeni számára. Ha ez a szám 1000, akkor a timer minden 1000 vibráció után pulzust küld a speakernek. Ha a közép C-t akarjuk, amelynek a frekvenciája 523,25, akkor 1 193 180/ 523.25 = 2280 az a konstans, ami ezt biztosítja 21 Kovács Józsefné Programozás: 1. előadás A timer irányítása: 1. Előkészíteni a timer-t egy új frekvencia fogadására 2. Kiszámolni a timer-nek küldendő számot 3. Küldeni a számot a timer-nek Előkészítés: B6h értéket kell küldeni a 43h portra. Timer-szám: 42h portra kell írni a megfelelő értéket. A timer által generált pulzusok irányítása a

speaker-nek A speaker speciális byte-jának jobboldali két bitje: 0: ki van kapcsolva 1: be van kapcsolva A speciális byte a 61h porton érhető el. Teendők: 1. Olvasd a speciális byte értékét 2. Állítsd a jobboldali két bitet 1-re 3. Írd ki a speciális byte új értékét a portra Időtartam ciklussal határozható meg. 22 Kovács Józsefné Programozás: 1. előadás A program: CSEG SEGMENT ASSUME MAIN: MOV MOV CALL MOV INT ; BEEP PROC PUSHA MOV MOV OUT MOV MOV DIV OUT JMP MOV OUT IN MOV OR OUT L1: MOV L2: LOOP DEC JNZ MOV OUT BEEP CSEG CS:CSEG AX,523 BX,300 BEEP AH, 4CH 21H ; AX: frekvencia, BX: időtartam CX,AX AL,0B6H 43H,AL DX,0012H AX,34DCH CX 42H,AL SHORT $+2 AL,AH 42H,AL AL,61H AH,AL AL,03H 61H,AL CX,4680 L2 BX L1 AL,AH 61H,AL POPA RET ENDP ENDS END MAIN