156 96 6MB
Hungarian Pages [206] Year 2000
/illette/ [l!:Sill
B
Agárdi Gábor
Lektorálta: Kaszanyiczki László
Nyitott rendszerií képzés - távoktatás oktatási segédlete * Tankönyv
LSI Oktatóközpont A Mikroelektronika Alkalmazásának
Kúltúrájáért Alapítvány
ISBN
963 577141 x
Kiadó: LSI Oktatóközpont Felelös vezetö: Dr. Kovács Magda Témafelelös: Flier István
Készítette: FÜTI PRINT Kft. 95-32 Felelős vezető: Hegyesi László
Tartalomjegyzék
Tartalomjegyzék .................................................................... 3 Előszó avagy Murphy és az optimizmus .............................. 7 1. Fejezet ................................................................................ 6 A PC (DOS) filekezelése. .................. ... . . . ............... 8 ............ 8 Egy file létrehozása. ................................ File hozzáférési jogok.... ...................... 9 [Program 01] .............. ................... 10 File pointer mozgatása, buborék módszer ................... 13 [Program 02] .. ............ ..... .. . 13 File attribútumok kezelése.. ........................ 16 Lekérdezésnél . .. .. . .. . .. .. . .. . ... ... .. .. . .. 17 Beállításnál ..... ... .. .. . . .. .. . .. . .. ... ...... 17 Az attribútum byte felépítése .................................... 17 [Program 03] . . .. .. ... . .. . .. ...... 18 [Program 04] . . ..... . ......... .... 20 File átnevezése.. . .. 20 [Program 05] ............. ......................... 21 File törlése ........................ .... 22 [Program 06]. ..22 File keresése.. . . . . . . . . .. .. . ....... 23 ADTA felépítése ....... 23 [Program 07].. ..24 2. Fejezet ................................................................................ 21 A DOS Könyvtárkezelése ... .............. ....... 27 Egy könyvtár létrehozása.. .... ........... . ... 27 [Program 08] ............... .. .. .. .. .. . .. .. .. . . . .... 27 ............... .......... 28 Egy könyvtár törlése [Program 09]. . .. 28 Aktuális pozíció meghatározása........ .... 29 [Program 1O]. . .. .. . .. ... ... . . ... 30 3. Fejezet ................................................................................ 32 Batches rutinok . .. .. .. .. .. . ... ...... 32 Scroll rutin ..... ................. . .. 32 [Program 11] . .. ......... .... . . ... 32
IBM PC Gyakorlati Assembly haladóknak
4.
5.
6.
7.
8.
4
Grafika a szöveges képernyőn ? . ..... ... ................ 34 [Program 12]... . . . . . .......... 34 Fejezet .................. ,............................................................. 42 Mi van, ha többet akarunk? ...................................... .42 A 386 real mód szolgáltatásai..... ....... .... . ... . ... .42 Fontosabb utasítások .. ... .. .. .. .. . ....... . .. ... . ... ....... .42 Fejezet ............. ,.................................................................. 44 Hogyan írjunk szép programot?... .. .. . .. . ... ... ............ .44 Előkészületek. ... .. .. ... ... .. ..... ......... ........ .44 Munkánk megkönnyítése . . .. . .......... .45 Kiegészítések a BBM formátumhoz .......................... .45 Helymegtakarítás ... .45 [Program 13].. ............... .46 A vezérlőprogram működése ............. . . . ....... .... 68 A szubrutinok működése ........................................ 69 ............................ 72 A program adatmezője.. Fejezet ................................................................................ 7 4 Az animáció.. ............................................. 74 Mi is az az animáció?_. . .... 74 [Program 14].. ............. 75 Fejezet ................................................................................ 85 Egy zárt alakzat kifestése egy színnel. ................ 86 Egyszerű alakzatok kifestése.. .......... 86 [Program 15]... ...... 87 Egyszerű alakzatok kitöltése másként .. . ... 94 [Program 16].................... ..... 94 Szilánkos alakzatok kitöltése.. .. 100 [Program 17].. .. .. ... . ... . ....... 100 Fejezet ................................................................................ 11 O Háromdimenziós alakzatok kezelése.... . ... 11 0 Egy kocka térbeli ábrázolása. . .. 11 O Egy kocka vetületi ábrázolása .... 111 Térbeli alakzatok síkbeli leképzése. .... 111 Az ábrák forgatása.. . ... 112 [Program 18].. ... 113 ..... 129 A kocka felrajzolásának módja.... Forgatás mindhárom tengelyen. . 130 [Program 19]. .... 130
Tartalomjegyzék Az alakzat valós képének előállítása ........................ 151 A felrajzolási irány megállapítása ....... . ... .. ........... 152 9. Fejezet ................................................................................ 154 A v íru sok lélektana......... .... .. . ... . .. ...... .. . . .. .... .. . .. . .. . .. 154 .................................... 154 A virusok működése.... Működési feltételek biztosítása.. .............. 154 Védekezés a víruskeresők ellen ........................ 155 Védekezés a Debuggerek ellen ............................. 155 Védekezés a Ctri+Ait+Del ellen.. . .. 157 [Program 20].. . ............................... 158 . 160 A fertözés.... A virusok által használt megszakításvektorok .......... 161 1O. Fejezet .............................................................................. 177 . .. . .. . .. . . .. .. . . .. . . . ...... 177 A megfelelő időzítés........... "Black Screen" Képernyövédö.. . ........................ 177 [Program 21]. . ... 177 "Zene" készítése PC-n . 180 [Program 22]........ ..................................... 181 Frekvencia táblázat.. ................................................ 183 184 Egyedi hang effektusok létrehozása . [Program 23]... .......... 184 11. Fejezet .............................................................................. 188 Ellipszis rajzolása ............................................................. 188 Képtorzítás........ .. ........................................ 188 Az ellipszis matematikai egyenlele ................................. 188 Növekményes algoritmus... .. 189 . 189 A rutin 'C' nyelven [Program 24] . ........ . 191 További lehetőségek. . . .... ............... 194 12. Fejezet .............................................................................. 195 Az installálás.... .. ... .. .. .. . .. . 195 Egy installáló program feladata.. .... 195 Az előkészítés .. 195 .. 195 A telepítés .. [Program 25]. . ... 196 A memória felszabadítása . .200 A szabad hely ellenőrzése.. . .200 Külsö parancs indítása .·. . 200 5
IBM PC Gyakorlati Assembly haladóknak Az int 2eh használata. ............. . ..................... 201 Tárgymutató ........................................................................... 203
6
Előszó ava~:,>y
Előszó
Murphy és az optimizmus
avagy Murphy és az optimizmus
Ezen könyv megirására hasonló dolog késztetett, mint elődjére Célom egy kicsit tovább tagJaini azokat a témákat, melyek már említésre kerültek elözö könyvemben, azonban ott kevesebb helyet kaptak, illetve további új információkat is szeretnék közreadni. Továbbra sem célom, hogy egyfaJta rutingyűjteményt hozzak létre. Annak ellenére, hogy vannak kész, felhasználható rutinok is, inkább csak ötleteket, algoritmusokat szeretnék átadni információ gyanánt A könyv tartalmilag az IBM PC Gyakorlati Assembly cimü, már megjelent könyvre épül, így a rutinok egyes részei nem dokumentáltak, azok valószínűleg megtalálhatóak az emlitett kiadványban. Van azonban egy fontos dolog, amit JÓ ha mmdenki figyelembe vesz egy program megírása során, miszerint Murphy tgen optimista volt, mivel a hibalehetőségek száma négyzetesen arányos a begépelt karakterek számával, továbbá a számítógép a mi utasításainkat és nem gondolatainkat hajtJa végre. Ezért ha a gép nem azt teszi amit mt szeretnénk, ne bántsuk, hanem inkább keressük meg, hol tévedtünk.
Agárdt Gábor
7
IBM PC Gyakorlati Assembly haladóknak
1. Fejezet A PC (DOS) filekezelése A könyv első részében már említésre került a PC lemezkezelése, azonban ott részletesebben nem foglalkoztam vele. Ezért megpróbálom egy kicsit bepótolni ezt Egy file kezelése többnyire a DOS-on keresztül törtémk így meg kell tanulni annak korlátait leküzdve ésszerűen kezelm a file-okat
Egy file létrehozása Azért a lehetőségek nem olyan szűkösek, mint hinnénk. Mit IS lehet tenm egy JÓlnevelt file-la(? Először is induljunk ki abból, hogy üres a lemez. Első lépésben tehát létre kell hozni azt Ehhez szükség van az állomány leendő nevére, tulajdonságaira és egy programra ami ezekből elkészíti a file-t A file nevét egészen egyszerűen letáraijuk a programban mint egy stringet egy nullával a végén (ez nagyon fontos) MaJd ds:dx regisztert ezen string címére állítjuk A file tulajdonságai már különbözőek lehetnek. Ezt a ex regiszter egyes bitJernek beállításával kell maJd megadni a gépnek. Ennek felépítése a következő O.b1t l.bit 2.bit 9.bit
Read only Hidden System Archív
Tehát a megfelelő bit helyére l-et írva érhetjük el a kívánt tulajdonságot Ha cx=O akkor normál attribútumot kap. Ha mindezt beállítottuk, meg kell hívni a 3Ch DOS funkciót, és ha romden rendben, a file létrejön Az ax regiszterben megkapjuk a file azonosító kódot, amire a későbbiekben majd szükségünk lesz. Ha valami nem volt tökéletes, a carry flag l értéke jelzi és ekkor ax regiszterben a hiba kódját kapJuk, amelyek a következők lehetnek
8
l. Fejezet
A DOS filekezelése
ax=3 Hibás elérési útvonal ax=4 A file azonosító létrehozása nem lehetséges (pl túl sok nyitott file) ax=S Tiltott hozzáférés (pl· file már létezik és read-only vagy az aldirectory már tele van stb) A másik kiindulási alap az, hogy már létezik a file Ekkor is hasonlóan kell eljárnunk, mindössze néhány különbség van csak. Tehát a ds: d x regiszter itt is a file nevét tartalmazó memóriarészre mutat, a file megnyitási módját azonban itt az al regiszterhe kell írni, ahol az egyes biteknek szintén meg van a maguk jelentése:
File hozzáférési jogok A O és l. bit a file megnyitási módjára utalnak. 00 Ol lO
csak olvasható file csak írható file írható, olvasható file.
A 2 és 3. bit funkciója ismeretlen, értékük mind1g O A 4-7 bit a file-ok osztott elérésével kapcsolatosak, amikor több program használja az adott állományt A 7. b1t az öröklés beállítására szolgál. Ez szabja meg, hogy az adott állományt használó feladaton belül mdított Újabb feladat örökölheti-e az állomány nyitottságát A 4-6 bit az osztott elérésű megnyitás módjára utal egyidejűleg
OOO
Kompatibilis mód. Az így megnyitott file-t a továbbiakban más alkalmazások IS megny1thatják, de csak OOO módban, annak lezárásáig
00 l
Kizárólagos mód. Az így megnyitott állományt a továbbiakban semmilyen más alkalmazás nem nyithatja meg annak lezárásáig.
9
IBM PC Gyakorlati Assembly haladóknak Ol O Lefoglalás írásra. Az így megnyitott állományt annak lezárásáig nem lehet ÚJra megnyitni se kompatibilis, se írásra lefoglalt módon. Ol l
Lefoglalás olvasásra. Az így megnyitott állományt annak lezárásáig nem lehet ÚJra megnyitni se kompatibilis, se olvasásra lefoglalt módon.
l 00 Nem lefoglalt mód. Az így megnyitott állományt a továbbiakban nem lehet megnyitni (annak lezárásáig) kompatibilis módon. Ha mindezt beállítottuk, a DOS 3Dh funkciójával nyithatjuk meg az állományt. Közös tulajdonsága a két funkciónak, hogy mind létrehozás, mind megnyitás után "nyitva" lesz az állomány a további műveletek elvégzéséhez. A legnagyobb különbség az, hogy ha létrehozunk egy file-t és már létezett azzal a néwel egy régebbi állomány, akkor annak hosszát O-ra állítja, azaz mintha törölné. Ezzel szemben a file megnyitása csupán elérhetövé teszi az állományt. A file megnyitására már láthattunk példát a Gyakorlati Assembly könyvben, így most egy file létrehozására mutatok be egy példát
[Program 01] proglll
segment assume cs:progOl,ds:progOl
;Szegmensdefiníció ;Cs és ds regiszrcrek ;hoZ?.árendelése.
start:
push cs pop ds
; Os regiszterhe a cs ;értéké! tölti
mov mov
ax,Oh800h cs,ax
:A údeomcmória kezdőeimét :cs regiszterhe tölti.
ffiOY
ax,3 lll h
;!10*25 karakteres mód beállitása
int mo,·
ah,Jch
.A filc
10
létreho~