140 Strojni jezik za procesor Z80 NASLOV PUSH BC CALL PIXEL ADD POP BC RET NASLOV nam bo posredoval naslov določenega položaja, koordinate pa bodo pri tem ostale nedotaknjene. Zdaj pa k delu. Lotimo se najprej glavne zanke: URA LD A, (23672) svrednost "n", kki jo bomo določili CP n skasneje, uravnava hitrost ure. JR C, TEST sČe še ni presežena vrednost n, PUSH BC sskoči v zanko TEST. Sicer shrani LD BC, (VISURE) ;koordinate Krpana. Z imeni bomo označevali naslove rezerviranih celic. Zloga na naslovu VISURE bosta vsebovala koordinate stolpca ure. Ker bo stolpec na levi strani zaslona, bo njegova oddal jenost od leve- ga roba (koordinata x) v registru C vedno O, koordinata Y» shranjena v registru B pa bo pravzaprav višina stolpca. Ta bo na začetku 175 in se bo zmanjševala. Ko bo dosegla O, bo igre konec. CALL NASLOV s Izračunaj naslov. UD MI, 1729 s Izbriši gornjo vrstico, vendar naj sstranici (bita O in 7) ostaneta. LD (23672), A sUri daj vrednost O (register A bo simel po klicu NASLOVa vrednost o, sker se bodo koordinate vedno na- snašale na levi gornji bit likov). DEC B ;Znižaj višino stolpca ure, ter LD ((VISURE), BC ;shrani njegove koordinate. POP BC ;3S sklada vzemi podatke o položaju 3;junaka. Zadnji ukaz, ki je vplival sna zastavice, je bil DEC B: JR NZ, ' TEST sče višina stolpca še ni O, pojdi v LD BC, (TOCKE) szanko TEST, sicer naloži v BC do- RET ssežene točke in se vrni v basic. TEST PUSH BBC sShrani koordinate. CALL KEY SCAN sPreleti tipkovnico. KEY SCAN vrne POP BC sv registru E kod pritisnjene tipke LD A, E s (glej poglavje o rabi tipkovnice). Kar se Janezek nauči... 141 Zdaj bomo preverjali, ali je bila pritisnjena katera od tipk za premik. Naj služita za premik levo in desno tipki O in P, za gor in dol pa 0 in A. Seveda lahko izberete tudi druge tipke, le spremeniti boste morali vrednosti, ki slede. sČe je pritisnjena tipka 0... CP 4X25 CALL Z, GOR CP dx22 CALL Z, DESNO CP dila CALL Z, LEVO CP sd26 CALL Z, DOL CALL Z, METULJ LD A, (KLJUC) CP n CALL Z, OBRAC JR URA san 80 aa . a es . »»kliči podprogram GOR. Po. s -u- DESNO. O. s. -»- LEVO. A: spi -u- DOL. sKliči podprogram za premik metulja 35V zlogu spobranih svsi (na sključev) sčun točk. KLJUČ shranimo število že ključev. Če so pobrani že začetku je na zaslonu n kliči podprogram za obra- sPonovi glavno zanko. Če bo igralcu uspelo pobrati vse ključe, preden se bo čas izte- kel, se bo vrednost doseženih točk za vse ključe pomnožila s preostankom časa. To bo opravil "podprogram OBRAC. Glavna zanka je tako pripravl jena. Nadal jujmv kar po vrsti s podprogrami, ki jih bomo potrebovali. Najprej GOR: GOR LD A, 175 CP"B RET. Z Zdaj moramo preveriti, šče Jje lik na zgornjem robu zaslo- sna, ne more več navzgor. Zato se v stem primeru vrni v glavno zanko. ali ni nad junakovo glavo metulj ali ključ. V ta namen je najprimernejši tretji (oz. četrti, če šte- jemo od roba klobuka) zlog nad junakovo glavo. če je tam me- tulj, bo imel vrednost 1 četrti bit zloga, če bo tam ključ, bo "prižgan" bit 0. To lahko strnemo v kratek podprogram, ki ga bomo dodali na koncu. Večkrat nam bo prišel prav. Imenujmo ga BIT40: BIT4O0 BIT 4, (HL) CALL NZ, KONEC BIT O, 4HL) CALL NZ, ZADET RET sČe je tu metulj, kliči podprogram, ski bo zaključil igro; sče Je tu ključ, kliči podprogram, ski bo obračunal zadetek sin se vrni.