IA) 134 Strojni jezik za procesor Z80 pomnilnika. Prav tako izbriše vrednosti v prostorih O in 1 ukaz RST 10, kadar izpisuje grafične znake. Zaradi tega je najbolj zanesljivo uporabljati le prostore' 3, 4 in 5. Poglejmo zdaj primer: želeli bi izračunati izraz SIN X 4 COS X. Recimo, da je število X že na vrhu računskega sklada. Uporabimo zaporedje EF RST 28 C5 DEFB C5 (spravi 5) spravi X v prostor 5. X ob tem ostaja tudi na vrhu sklada. 1F DEFB 1F (sin) sizračunaj SIN X. Rezultat nado- mesti vrednost na vrhu sklada (tj. odstrani X). E5 ' DEFB E5 (vzemi. 5) ;pPorini vrednost iz prostora 5 na sklad. Na vrhu sklada je zdaj X, pod njim SIN X. zizračunaj COS X. Rezultat naj nadomesti vrednost na vrhu skla- da (tj. odstrani X). OF DEFB OF (seštej) zodstrani zgornji dve vrednosti ' (SIN X in COS X) s sklada in ju nadomesti z njuno vsoto. 20 DEFB 20 (cos) 38 DEFB 38 (končaj) Vsoto dveh kotnih funkcij smo tako izračunali v samo sedmih zlogih! Podobno je tudi z rabo drugih operacij. Opozoriti pa velja na operacije VAL, VAL$ in STR$. Njihova raba je bolj za- pletena, zato naj bi se jih lotil le tisti, ki dobro pozna Spectrumov nadzorni program. Toliko za okus. Raziskovanje številnih preostalih možnosti prepuščam vam, da boste imeli od učenja res pravo korist. 28. poglavje KAR SE JANEZEK NAUCI ... V zadnjem poglavju bomo pridobljeno znanje uporabili za izdelavo programa v strojnem jeziku. In česa bi se v tem pro- gramu lotili? (Gotovo je najprivlačnejša misel o igrici. Pri oblikovanju takšnega programa smo povsem svobodni, edina omeji- tev je naša iznajdljivost. Odločimo se torej za igro, ki bo zahtevala nekaj programerske veščine, računalnikove hitrosti in — na koncu - igralčeve spretnosti. Program bomo vnašali z urejevalnikom, zato bomo skrbeli, da ne bo predolg. Predlagam igro, ki bo miroljubnejše narave. Odpovejmo se streljanju in pobijanju nasprotnikov, ki brzijo čez zaslon. Raje naj igralec npr. zbira določene predmete, pri tem pa naj mu bo na voljo le omejen čas. Več predmetov ko bo zbral, večje bo število točk; hitreje ko jih bo zbral, toliko boljši bo uspeh. Da pa ne bo vse odvisno le od hitrosti, pošljimo v igro še nasprotnika. Ta naj preganja našega junaka. Če ga bo ujel, bo to pomenilo takojšen neuspešen zaključek. Obrise igre zdaj že imamo. Loti mo se najprej izdelave načr- "ta, nato pa bomo postopoma zapisali program. Za začetek moramo pripraviti vse, kar bomo v igri potrebovali: Začetek Razpostavi predmete. Pripravi uro. Nariši junaka. Nariži nasprotnika. $e kaj? No da: vsakič bo treba preveriti, ali ima junak še kakšno življenje, treba bo šteti, ali so razpostavljeni že vsi predmeti... in še kaj. A to so že podrobnosti - in posebej smo poudarili, da podrobnosti vedno prihranimo za na konec. Torej lahko rečemo, da je načrt začetka igre narejen. Zdaj je na vrsti glavni, bolj zapleteni del - igra sama. Ta naj ima eno glavno zanko, iz katere bomo po potrebi klicali stranske zanke, tj. podprograme. (V glavni zanki bo tekla ura, spreml jali bomo premike igralca, premikali nasprotnika in kontrolirali, ali so že pobrani vsi predmeti. Takole: Ura Zmanjšaj preostali čas. Je čas že potekel? Ce je, končaj igro.