NightNetwork - yazılım, yazın, verim vs.

15.2. 6510'da Interruptlar

6510 CPUsunda iki tane interrupt kaynağı var. Başka bir deyişle dış dünyadan 6510a interrupt oluşturmak amaçlı sinyal göndermek için kullanabileceğiniz iki tane pin var. Bunlara IRQ ve NMI deniyor.

IRQ (Interrupt request) ıstendiğinde maskelenebilen ve programlanabilen, yani bizim işimize yarayıp en çok kullanacağımız interrupt çeşidi olacak.

NMI (Non maskable ıinterrupt) ise oluşumuna engel olamadığımız dolayısıyla bizi çok ilgilendirmeyen bir interrupt. Dolayısıyla şu an NMI'lara kafa yormanıza gerek yok.

6510'da IRQ'ları maskelemek ve maskelemeyi kaldırmak için iki komut mevcuttur: SEI ve CLI. Bu komutlar argüman almazlar. SEI komutunu vermenizden itibaren artık hiçbir IRQ sinyali programınızı bölemez. Ta ki CLI komutuna kadar

6510 Assembly'de ınterruptlarla ilgili öğreneceğiniz so komut da RTI'dır. Bu komut interrupt rutininin sonuna konulr ve CPU bu komutu görünce stackten PC ve status registerini pop ederek iCPUnun interrupttan önceki duruma dönmesini sağlar.

C64'ünüzde 6510 çipinin IRQ bacağına sinyal gönderebilen üç tane çevre çipi vardır. Bunlar VIC, CIA1 ve CIA2 çıpleridir. CIA çipleri klavye okuma, disket sürücü ve joystickleri okuma gibi işler için kullanılır. Hayatınızın büyük bir bölümünde CIA interruptlarını kullanmayacaksınız. O yüzden ilk etapta onları da unutabilirsiniz.

Bir demoscene programcısı için hayattaki en önemli şeylerden biri VIC ile 6510 arasındaki etkileşimdir. Scene programlarınızın çoğunda VIC'in bazı registerlerini, çeşitli koşullarda 6510'a interrupt sinyali gönderecek şekilde programlayacaksınız. Ardından da bu sinyallerin sonucu, VIC'in bazı registerlerine, bazı yeni değerler yazan interrupt rutinleri yazacaksınız. Bu rutinler VIC'de öyle kritik değişiklikler yaratacak ki, muhteşem efektler çıkacak ortaya.

Bunu başarabilmek için VIC ve onun belleği kullanımı ile ilgili daha çok şey öğrenmeniz gerekiyor. Bu kurs size, bellek ve registerlera istediğiniz şekilde yazıp çizmenizi sağlayacak, istediğiniz akış ve mantık sırasıyla programlarınızı tasarlamanıza izin verecek olan 6510 programcılığını öğretti. Bundan sonraki basamak olan "VIC Programlama" kursunda, VIC'i sizlere daha iyi tanıtıp bu bölümde öğrendiğiniz interruptlarla ilgili teorik bilgilerin pratikte nasıl kullanıldığını anlatacağım.

NightNetwork - 2009