home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 33 / Flop_Magazin_33_1995_01_Raster_cs_Side_A.atr / vbibeg.cap < prev   
Text File  |  2023-02-26  |  4KB  |  1 lines

  1. ¢VBI ╱pro za'*te'n)ky$¢Radek ③t%rba, RASTER¢¢VBI je jedno z nej'ast%ji pou()van`ch p@eru&en). Umo(uje toti( pseudo soub%(n[ vykon*v*n) dvou proces+ - tj. je mo(n[ m)t spu&t%n[ dva procesy, kdy jeden prob)h* v norm*ln)m 'ase a druh` b%hem vertik*ln)ho p@eru&en).¢O p@esn`ch principech se te⇦ u( nebudu zmiovat, nebo④ ty lze naj)t v mnoha p@)ru'k*ch. Nyn) V*m chci prakticky uk*zat, jak lze pou()t VBI ve vlastn)m programu.¢¢Pro vertik*ln) p@eru&en) jsou zapot@eb) dv% rutiny:¢Prvn) rutina je vlastn) program, kter` m* b`t prov*d%n b%hem VBI. Mus)te si uv%domit, (e tato rutina je vol*na 50 kr*t za sekundu, tak(e je doba jej)ho prov*d%n) omezena na cca 20000 strojov`ch cykl+. Dal&)m omezen)m je, (e tato rutina mus) po vykonan) sv[ 'innosti sko'it na danou adresu ╱vektor$.¢Druh* rutina je inicializa'n). Prov*d) spu&t%n) rutiny pro VBI. Proto(e p@i spou&t%n) je bezpodm)ne'n% nutn[ zn*t p@esnou adresu za'*tku rutiny pro VBI, b`vaj) tyto rutiny um)st%ny napevno v pam%ti ╱a nejsou relokatibiln) - tj. nefunguj) p@i um)st%n) jinam$.¢¢Inicializa'n) rutina:¢¢Hlavn) '*st) t[to rutiny je sekvence, kter* spust) vlastn) rutinu pro VBI:¢¢     LDY #<START   ;Doln) byte¢     LDX #>START   ;Horn) byte¢     LDA #07       ;Konstanta¢     JSR ◆E45C     ;SETVBV¢                   ;Program pro nastavov*n) vektor+ p@eru&en)¢     RTS           ;Konec inicializace¢¢Rutina pro VBI ╱vlastn) program$:¢¢START¢     ...¢     ...¢     vlastn) 'innost rutiny¢     ╱maxim*ln% cca 20000 str.cykl+$¢     ...¢     ...¢     JMP ◆E462     ;XITVBV¢                   ;Vektor ukon'en) VBI¢¢¢P@i pou()v*n) VBI si dejte pozor na n*sleduj)c) probl[my:¢¢1.$¢Pozor na z*sobn)k.¢Pokud v rutin% VBI pou()v*te jak`mkoli zp+sobem z*sobn)k ╱a to nejen instrukcemi PHA,PLA - i JSR a RTS pou()v* z*sobn)k!$, dbejte na to, aby na konci byl p@esn% ve stavu, v jak[m byl v okam(iku za'*ku rutiny.¢¢2.$¢Zm%na obsahu prom%nn`ch.¢Pokud v rutin% VBI m%n)te obsah n%jak[ho m)sta v RAM ╱a to ur'it% d%l*te$, dejte si pozor, aby tato pam%④ov* buka nebyla pou()v*na v hlavn)m programu. Pokud si nejste jisti, uve⇦te na konci rutiny VBI jej) obsah do p+vodn)ho stavu.¢P@)klad:¢V hlavn)m programu prov*d)te p@esun pam%ti - berete odn%kud z pam%ti byte a d*v*te ho STA╱206$,Y.¢Nyn) si p@edstavte, (e ve VBI b%() &patn% napsan* rutina, kter* pou()v* buku 207 a neobnovuje jej) p+vodn) obsah. K 'emu dojde?¢Hlavn) program si nastav) adresy 206 a 207 tak, aby ukazovaly na c)lov[ m)sto. B%hem dal&) 'innosti hlavn)ho programu se ale vyvol* p@eru&en) a rutina VBI buku 207 zm%n). Pak vr*t) 'innost do hlavn)ho programu. Ten pokra'uje ve sv[ 'innosti a ukl*d* na STA╱206$,Y. Proto(e buka 207 byla zm%n%na a v tomto p@)pad% ji hlavn) program pou()v* jako horn) byte pro ur'en) c)lov[ho m)sta, ulo() se p@)slu&n` byte na ]pln% jin[ m)sto, ne( p+vodn% m%l. Ve v%t&in% p@)pad+ to zp+sob) hav*rii syst[mu, proto(e dojde nap@. k p@epsan) byte v n%jak[ strojov[ rutin%.¢¢3.$¢Nekone'n[ smy'ky.¢Ve VBI nesm)te m)t (*dnou 'innost trvaj)c) d[le ne( 20000 cykl+ - tj. pro p@edstavu doba men&) ne( 1/50 sekundy.¢V (*dn[m p@)pad% tedy nesm)te m)t ve VBI rutin% nekone'nou smy'ku nebo jej) obdoby.¢Jednou z nej'ast%j&)ch chyb za'*te'n)k+ b`v* nap@. smy'ka s 'ek*n)m na stisk kl*vesy um)st%n* v rutin% VBI. Toto 'ek*n) bude toti( bezpochyby trvat d[le ne( 1/50 sekundy a syst[m tedy zhavaruje naprosto spolehliv%.¢¢4.$¢Myln* ]vaha.¢Dost atarist+ se domn)v*, (e p@em)st%n)m '*sti pr*ce do rutiny VBI odleh') 'innost hlavn)mu programu, a t)m zrychl) b%h cel[ho programu. Chybn* informace ve stylu, (e hudba, kter* hraje na pozad) ╱ve VBI$, nezpomaluje b%h hlavn)ho programu, se dokonce objevuje i v n%kter`ch p@)ru'k*ch.¢Nen) probl[m napsat rutinu pro VBI, kter* bude tak n*ro'n*, (e b%h hlavn)ho programu zpomal) viditeln%.¢Z*kladn) omyl je toti( v tom, (e pokud ve VBI neb%() (*dn* rutina, (e je n%jak` strojov` 'as nevyu()v*n. Pravdou ale je, (e rutina ve VBI pracuje v(dy na ]kor hlavn)ho programu.¢