Plazma sayı 3, sayfa 72
Sayfanın metni

Sayfa 72

12 -> %1100 -> 12*$0400 = $3000

13 -> %1101 -> 13*$0400 = $3400

14 -> %1110 -> 14*$0400 = $3800

15 -> %1111 -> 15*$0400 = $3C00

Biz $0400'ü kullanmak istediğimiz durumda yukarıdaki tabloya göre 7-4 arasındaki bitlerin "1" değerine sahip olması lazım.

Bit 3-1 ise text modda karakter setinin yerini belirler. Her karakter seti 2048 byte yani $0800'lük bir alan kaplar. Dolayısıyla yerleşebileceği 8 farklı konum vardır.

0 -> %000 -> 0*$0800 = $0000

1 -> %001 -> 1*$0800 = $0800

2 -> %010 -> 2*$0800 = $1000 (Commodore'un varsayılan karakter seti adresi)

3 -> %011 -> 3*$0800 = $1800

4 -> %100 -> 4*$0800 = $2000

5 -> %101 -> 5*$0800 = $2800

6 -> %110 -> 6*$0800 = $3000

7 -> %111 -> 7*$0800 = $3800

Ancak biz karakter ekranı kullanmadığımız ve grafik ekranları 8000 byte kapladığı ve 8192'lik ($2000) alanlara yerleştiği için, bizim için yalnızca "Bit 3" önemli. Bit 3'ün set olup olmamasına göre bitmap verileri;

0 -> 0*$2000 = $0000

1 -> 1*$2000 = $2000 adreslerine denk gelir.

Şimdi bu durumda biz "Bit 3"ü 1 olarak kullanacağız çünkü bitmap'i $2000 adresinde istiyoruz. Bit 7-4 aralığını ise %0001 şeklinde kullanacağız çünkü video ekranımız $0400'de olacak.

Aşağıdaki toplama işlemi sayısal değil bitleri yan yana ekleme anlamında kullanılmıştır.

Bit 7-4 + Bit 3 + Bit 2-1 = %0001 + %1 + %000 = %00011000 = $18 = 24

Bu durumda $d018'in alması gereken değerin $18 olduğunu da buradan hesaplamış bulunmaktayız. Yani grafik modumuzu açmak için yazmamız gereken kod:

lda #$3b sta $d011 lda #$d8 sta $d016 lda #$18 sta $d018 bu hale gelmiş oluyor.

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