Commodore sayı 66, sayfa 46

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 46

PÜF NOKTASI

Tabi ki bir de interrupt program yazmalıyız ki, bilgisayarımız kilitlenmesin. Mesela bilgisayarınız her adresine geldiğinde ekranı karakter ekranına geçiren ve aynı zamanda arkaplan (çerçeve) rengini ve önplan (ekran) rengini beyaz yapacak bir interrupt programı yazalım:

Program 3: Lda $DO11 And #$DF Sta $DOl1 Lda #$01

Sta $DO20 Sta $DO21 Inc $DO19 Jmp $EASI

Gördüğünüz gibi, yapmamız gereken tek şey, karakter ekranına geçmek, ve $D020-$D021 renklerini beyaz yapmak. Ama unutmamanız gereken şey, $D019'un değerini bir arttırmak. Eğer bu işlemi yapmazsanız, interrupt'tan çıkar çıkmaz, yeniden interrupt'a geri dönersiniz. Kısaca programınız düzgün çalışmaz. Arkadaşımızın sorununu çözmek için, bir de ekranın üstünü grafik yapmamız yeterli olacaktır. Bu iş için de “Jmp Döngü' komutunun yerine şu komutları yazabiliriz:

Program 4: -Döngül Lda $DO11 Bpl Döngül Döngü2 Lda $DO11 Bmı Döngü2 Lda

Yani, bir yandan ekranın en tepesine gelinmesini beklerken, diğer yandan ekranın ortasına gelinince ekran karakteristiklerini değiştiren iki programın ortak çalışması sonucu ekranı iki bölüme ayırabilmiş oluyoruz. Yukarıdaki örneğin en sonuna dikkatinizi çekmek istiyorum. A'ya doğrudan sıfır verdiğimiz için sıfır bayrağı bu kısımda mutlaka kalkık olacaktır. Yani JMP komutu yerine Beq komutunu kullanırsak, hem daha hızlı, hem de daha kısa program yazmış oluruz. Tabi ki tek başına pek bir fark yaratmaz, ama tek bir cycle'ın bile değerli olduğu rutinler yazmaya kalktığınızda bu tür bilgiler işinize yarayacaktır. Bu aylık da bu kadar. Yazıyla ilgili programları her zamanki gibi

Döküm eki'nde bulabilirsiniz.

Mektuplarınızı bekliyorum. Gelecek aya kadar hoşçakalın.

Klavyeyle gezinmek için ← ve → tuşları.