De interrupt in Basic (2) Genic Clubguide, 00-00-00 DE INTERRUPT IN BASIC, DEEL 2 Inmiddels is bij iedereen de bekende VDP(24) welbekend. Voor de genen onder ons die hier echter niks vanaf weten: In VDP(24) staat het nummer van de beeldlijn die bovenaan staat, maak je dit nummer dus steeds groter (van 0 tot 192 bijboorbeeld) ontstaat er dus een vertikale scroll. Dit biedt leuke mogelijkheden, het creeren van wipes bijvoorbeeld, voor de mensen die videographics kennnen. Het is dan mogelijk om eerst een beeld het scherm in te laten komen en het vervolgens weer weg laat scrollen terwijl er een ander beeld het scherm opkomt scrollen. Je krijgt zo een mooi vloeiende beeld overgang. Voor deze toepassing is echter de interrupt nodig, er moet namelijk steeds een regel gecopieerd worden van de ene naar de andere pagina in screen 8. Ook moet het gebied tussen pagina 0 en pagina 1 vrij zijn van vuiligheden. Hiervoor moet het sprite-, en het sprite-video geheugen gewist worden. Hieronder volgt de routine: 10 ON INTERVAL=1 GOSUB 110 20 DEFINT A-Z : SCREEN 8 30 VDP(9)=VDP(9) OR 2 : COPY(0,0)-(255,44),0TO(0,212),0 40 SETPAGE0,1:BLOAD"PICTURE1.PIC",S 50 S=2 : GOSUB 90 60 SETPAGE1,0:BLOAD"PICTURE2.PIC",S 70 SETPAGE0,1:GOSUB 90 80 END 90 S2=SAND255:Y=S2:INTERVAL ON 95 GOTO 95 100 S=-S : RETURN 110 VDP(24)=Y:COPY(0,Y-1)-STEP(255,S),1TO(0,Y-1),0 120 Y=Y+SAND255:IF Y=S2 THEN INTERVAL OFF :RETURN 100 130 RETURN Het lijkt vrij ingewikkeld, maar dat valt best mee. Aan de hand van het vorige artikel over de interrupt is deze listing makkelijk te analyseren. In regel 10 het klaarzetten van de interrupt, 50 keer per seconde gaat deze naar regel 110. In regel 30 wordt het sprite en sprite-video geheugen gewist In regel 40 wordt het eerste plaatje ingeladen op pagina 1 van scherm 8, vervolgens komt het plaatje het scherm opgescrollt. Dit gaat als volgt: Interrupt wordt ingeschakeld, 50 keer per seconde schakelt de interrupt over van regel 95, waar niks gebeurt, naar regel 110, waar steeds een verdere regel van pagina 1 wordt gecopieerd naar het niet zichtbare deel van pagina 0. Vervolgens wordt alles doorgeschoven met behulp van VDP(24) , dan wordt nog gekeken of het hele plaatje al op het scherm staat, zo ja dan gaat het programma door met plaatje nummer 2. Toch blijft het een vreemd gezicht die regel 95, maar dat betekent gewoon dat het programma wacht terwijl de interrupt zijn werk doet. Experimenteer er maar eens mee, de S kan de waarden 1,2,4,8 of -1,-2,-4,-8 bevatten. Met dank aan Alex Wulms die zijn routine speciaal voor deze gelegenheid beschikbaar wilde stellen. Op Clubguide Picturedisk 1 kunt U deze methode in de praktijk zien toegepast worden. Mocht U nog scrollroutines hebben in BASIC of in Machinetaal , stuur deze met uitleg naar ons toe, wij kunnen er dan misschien een volgende aflevering aan wijden. Ronald Egas De Blauwe Wereld 53 1398 EP Muiden tel. 02942-3813 ( alleen s'avonds en in weekends ) |