9. Gépközeli feladatok Ebben a fejezetben olyan feladatok szerepelnek, amelyek valamilyen szempontból igénylik a számítógép mélyebb ismere- tét. Ennek ellenére mindegyik programozási feladat. Úgy gon- doltuk ugyanis, hogy ebbe a gyűjteménybe nem illenek bele mű- szaki jellegű feladatok. A fejezet két részből áll: - mérés-vezérlés, - gépi kód. Az első rész, bár programozással kapcsolatos, mégis igé- nyelhet műszaki tevékenységet: a mérő, illetve vezérlő rend- szer összeállítását. A másodikban gépi kódú feladatokkal foglalkozunk, ami sok nehézséget okozott: melyik processzorral, melyik géppel fog- lalkozzunk? Végül is úgy döntöttünk, hogy a Z80-at választ- juk, de a feladatok jelentős része más processzortípusokon is megvalósítható. Javasolt irodalom: 1. Kovács M.: Számítógép a fizikatanításban. OPI, 1985. 2. Sztrókay K.: A Z80 assembler. Műszaki Könyvkiadó, 1985. 3. Erdős I.: Commodore 64 assembly. LSI ATSZ, 1985. 4. W. Link: BASIC a mérés-, a vezérlés- és a szabályozástech- nikában. Műszaki Könyvkiadó, 1987. 5. Babán G. - Masa I.: Gépi kódú programozás kezdőknek és ha- ladóknak C16 és PLUS/4 számítógépre. 9.1 Mérés - vezérlés A most következő feladatok többségének megoldása akkor látványos, ha megfelelő interfésszel a szövegben szereplő pe- rifériákat is működtetni tudjuk. Érdemes az adott interfész- hez kimeneti és bemeneti szubrutint írni. A kimenetinek adjuk meg a K(1)...K(8) változókban a kimeneti bitek értékét, a be- menetitől pedig a B(1)...B(8)-ban kapjuk vissza az informáci- ót. Ha nincs interfészünk, próbáljuk a működését modellezni! A bemeneti alprogramhoz a billentyűzeten, a kimeneti alprog- ramhoz a képernyőn vagy a hanggenerátorban keressünk megfele- lő egyszerű helyettesítő funkciót, de semmiképpen sem érdemes vaktában próbálkozni a számítógép ki- és bemeneteivel, mert könnyen okozhatunk maradandó változást az áramkörökben. A feladatok tetszőleges nyelven megoldhatók, mivel azonban a gépeink túlnyomó többsége BASIC-gép, ez a legegyszerűbben elérhető nyelv, a feladatok megfogalmazása is ehhez igazodik. Az első feladatokat ujjgyakorlatnak szántuk, a megoldások a további feladatoknál felhasználhatók. Természetesen gépi nyelven is lehet próbálkozni a felada- tok megoldásával, hiszen a bitműveletekhez és időzítésekhez ez a legalkalmasabb. 9.2. Gépi kód Az egyes mikroprocesszorokat sajnos eléggé eltérő módon kell programozni, ezért ez az alfejezet nem lehet annyira független a géptől, mint a többi. A másik nehézség abban rej- lik, hogy még az azonos processzorral dolgozó gépek között is rengeteg különbség lehet a gépi kódú programozás szempontjá- ból. Az itt következő feladatok első csoportja egy-egy szub- rutin vagy program írását követeli meg. Ezeket tetszőleges személyi számítógépen meg lehet oldani. Nagy segítséget je- lent, ha van a géphez egy ASSEMBLER program, de legalább egy monitor, amely programok írását, belövését segíti. Bizonyos monitor funkciókat BASIC programmal is megvalósíthatunk (me- móriakiírás, tizes-tizenhatos átszámítás, egy bájt töltése a memóriába stb.). Egyes feladatokhoz elkerülhetetlen a memó- riafelosztás ismerete, másoknál nagyon jó hasznát vehetjük az egyes ROM rutinoknak, ezek belépési címét érdemes kikeresni a (sajnos elég ritka) szakirodalomból. A feladatok második része programelemzés, hibakeresés. Itt az egyik legelterjedtebb mikroprocesszort, a Z80-ast válasz- tottuk. Ezzel egy nagyon elterjedt gépcsalád, a COMMODORE ki- esett. Akinek ilyen gépe van, ne keseredjék el, hanem vagy forduljon a bőséges szakirodalomhoz, vagy ismerjen meg egy sokkal barátságosabb mikroprocesszort!