Bu sayfadaki yazılar
Sayfanın metni
Sayfa 28
Senkron işaretlerini üretir. Tarama satırı sayaçları vardır. Işıklı kalemi destekler. Buna karşılık ekran karartma (blanking) lojiği, bellek erişiminde öncelik çözümlemesi ve nokta zamanlama lojiği yoktur. Geçmeli ve geçmesiz taramayı destekleyebilir. İçinde tampon yoktur. 4) 6545 CRT denetleyicisi (Rockwell ve Synertek firmaları tarafından üretilir.) 6845'in hemen hemen aynısıdır. Yalnız ona ek olarak karartma (blanking) lojiği, bellek öncelik çözümlemesi lojiği eklenmiştir. 5) 5. Eleman olarak Commodore'un 6569 VIC'ini inceleyeceğiz. Tümleşik devre Commodore'un sahibi olduğu MOS Technologies firması tarafından üretiliyor ve sadece C-64'te kullanılıyor. Tümleşik devrenin dizaynı bir anlamda C-64'ün felsefesini yansıtıyor. C-64'ün tasarımında çok amaçlı olması gözetilmiş. Sözcük işlemeden veri tabanına, Basic dilinde yazılmış programlardan makine dilinde yazılmış oyun programlarına kadar çok çeşitli uygulamaları desteklemesi düşünülen C-64'ün, içerisindeki donanımın da buna uygun olması gerekiyor. Buna ek olarak sistem çalışmasına yardımcı olması da istenen şeyler arasında. 6569 VIC'in iki temel görevi var: 1) Bellek tazeleme ve bellek erişim işaretlerini üretme, 2) CRT denetleyici işlevlerini yürütme. 1) C-64'ün içerisindeki RAM yongaları dinamik RAM sınıfı yongalardır. Bu tür bellekler birkaç milisaniyede bir tazeleme gerektirirler ve tazelenmezlerse 3 ila 3.5 milisaniye sonra silinirler. Bu tip RAM yongalarının çoğullamalı adres kullanmaları (multiplexed address bus) nedeniyle adresin yüksek ve alçak anlamlı byte'larını yongaya tek tek vermek (8 adet 2'ye 1 çoklayıcı kullanarak) ve bu arada gerekli zamanlarda da yongayı uyarmak gerekmektedir. C-64'te kullanılan RAM yongaları 64Kx1 bitliktir ve cihaz içinde bu yongalardan 8 adet vardır. 8 bitlik bir byte'ın her bir bit'i de böylece ayrı bir yongada saklanmış olur. Bahsettiğimiz RAM yongalarının iç organizasyonunda ise bitlerin saklandığı bellek hücreleri bir matris biçiminde gruplanmışlardır. Gerekli satır adreslerini zamanında üretmek VIC'in işidir. VIC, tazeleme işini mikroişlemcinin belleği kullanmadığı anlarda yaptığı için, sistem ça-
REGİSTER MAP
ADDRESS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DESCRIPTION 00 ($00) M0X7 M0X6 M0X5 M0X4 M0X3 M0X2 M0X1 M0X0 MOB 0 X-position 01 ($01) M0Y7 M0Y6 M0Y5 M0Y4 M0Y3 M0Y2 M0Y1 M0Y0 MOB 0 Y-position 02 ($02) M1X7 M1X6 M1X5 M1X4 M1X3 M1X2 M1X1 M1X0 MOB 1 X-position 03 ($03) M1Y7 M1Y6 M1Y5 M1Y4 M1Y3 M1Y2 M1Y1 M1Y0 MOB 1 Y-position 04 ($04) M2X7 M2X6 M2X5 M2X4 M2X3 M2X2 M2X1 M2X0 MOB 2 X-position 05 ($05) M2Y7 M2Y6 M2Y5 M2Y4 M2Y3 M2Y2 M2Y1 M2Y0 MOB 2 Y-position 06 ($06) M3X7 M3X6 M3X5 M3X4 M3X3 M3X2 M3X1 M3X0 MOB 3 X-position 07 ($07) M3Y7 M3Y6 M3Y5 M3Y4 M3Y3 M3Y2 M3Y1 M3Y0 MOB 3 Y-position 08 ($08) M4X7 M4X6 M4X5 M4X4 M4X3 M4X2 M4X1 M4X0 MOB 4 X-position 09 ($09) M4Y7 M4Y6 M4Y5 M4Y4 M4Y3 M4Y2 M4Y1 M4Y0 MOB 4 Y-position 10 ($0A) M5X7 M5X6 M5X5 M5X4 M5X3 M5X2 M5X1 M5X0 MOB 5 X-position 11 ($0B) M5Y7 M5Y6 M5Y5 M5Y4 M5Y3 M5Y2 M5Y1 M5Y0 MOB 5 Y-position 12 ($0C) M6X7 M6X6 M6X5 M6X4 M6X3 M6X2 M6X1 M6X0 MOB 6 X-position 13 ($0D) M6Y7 M6Y6 M6Y5 M6Y4 M6Y3 M6Y2 M6Y1 M6Y0 MOB 6 Y-position 14 ($0E) M7X7 M7X6 M7X5 M7X4 M7X3 M7X2 M7X1 M7X0 MOB 7 X-position 15 ($0F) M7Y7 M7Y6 M7Y5 M7Y4 M7Y3 M7Y2 M7Y1 M7Y0 MOB 7 Y-position 16 ($10) M7X8 M6X8 M5X8 M4X8 M3X8 M2X8 M1X8 M0X8 MSB of X-position 17 ($11) RC8 ECM BMM DEN RSEL Y2 Y1 Y0 See text 18 ($12) RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 Raster register 19 ($13) LPX8 LPX7 LPX6 LPX5 LPX4 LPX3 LPX2 LPX1 Light Pen X 20 ($14) LPY7 LPY6 LPY5 LPY4 LPY3 LPY2 LPY1 LPY0 Light Pen Y 21 ($15) M7E M6E M5E M4E M3E M2E M1E M0E MOB Enable 22 ($16) — RES MCM CSEL X2 X1 X0 See text 23 ($17) M7YE M6YE M5YE M4YE M3YE M2YE M1YE M0YE MOB Y-expand lışmasını yavaşlatmaz ve etkilemez. 2) Gelelim görüntünün ekranda oluşturulmasına. VIC'in katkılarına ya da bir CRT denetleyicisi olarak 6569'a 6569'un çalışma modlarını şöyle şematize edebiliriz.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 29
VIC tarafından yönetilir. Sıra adresi verilince VIC RAS (Row address strobe-satır adresi darbesi) sinyalini, sütun adresi verilince VIC CAS (column address strobe-sütun adresi darbesi) sinyalini üretir. Tüm bu olaylar
6569
Karakter Modu Grafik Modu (Character Display mode) (Bit Map Mode) | | | |
Standart Çok renklik Genişletilmiş Standart bit — Çok renkli bir karakter karakter renk modu Map modu map modu modu modu
256 ile 256'yı çarparsanız sonucun 65536 olduğunu bulursunuz. Yani her bir RAM yongası 256x256'lık bir matristir. Mikroişlemcinin ürettiği 16 bitlik adres alçak ve yüksek anlamlı olmak üzere ikiye ayrılır ve bu matrisin sekizer bitlik satır ve sütun adresleri olarak kullanılırlar. (Bellek yongası üzerinde 8 bitlik adres girişi vardır.) 2'ye 1 çoklayıcılar sırayla satır ve sütun adreslerini verir. Çoklayıcılar bir bellek erişimi sırasında, yani 450 ila 500 nanosaniye içersinde olur. Bu anlatılanlar normal bellek erişimi ile ilgili idi. Bellek tazeleme ise biraz farklıdır. Sadece sadır adresi ve RAS sinyali gönderilerek tüm satır bir anda tazelenebilir. İşte bu RAS ve CAS sinyalleri ile karakter ve grafik modlarına ek olarak oyun programlarının yazılmasını kolaylaştırak için tasarlanmış olan sprite işlemlerine de donanım desteği verir. Görüldüğü gibi karakter display modu normal veri işlem programlarına grafik modu ve sprite donanımı da oyun programlarına donanım desteği sağlar. Gelelim VIC'in iç yapısına. Reference Guide'ın 454 ve 455. sahifelerinde 6569'un saklayıcılarının bir dökümü verilmiş.
6569 toplam olarak 16K adresleyebiliyor. Daha fazla bellek adresleyebilmek ve içerisinde 47 adet kontrol saklayıcısı var. VIC'in çalışmasını anlatırken, bunların fonksiyonlarına da değineceğiz.
Önce karakter gösterim modu'nu inceleyeceğiz. VIC bu modda 1000 byte'lik ekran belleğindeki karakter işaretçilerini (karakter kodlarını) alır ve bunları, ait oldukları karakterlerin nokta kodlarının saklandığı 2048 byte'lık nokta tablosunu gösterecek şekilde dönüştürür. Her karakter 8 x8 noktadan oluştuğu için 8 byte'lık bir yer işgal eder. 256 karakter ise toplam 2048 byte'lik yer doldurur.
VIC'in 16K'lık bellek adresleyebilmek için 14 bitlik bir adres üretmeye
24 ($18) VMİC CBİ3 CBİ2 CBİl — Memory Pointers 25 ($19) — — — İnterrupt Register 26 ($IA) — — — — EMBC ERST Enable İnterrupt 27 ($1B) M&DP M5DP M3DP M2DP MODP MOB-DATA Priority 28 ($1C) MZMC MEMC M5MC M4MC MİMC MOMC MOB Mülticolor Sel 29 ($1D) M6XE M5XE MA4XE M3XE M2XE MİXE MOXE MOB X-expand 30 MEM M5SM MAM M3M MM MİM MOM MOB-MOB Collision 31 M7D MED M5D MAD M3D M2D MİD MOD MOB-DATA Collision 32 ($20) > — ECO Exterior Color 33 ($21) — — — — Boc2 Boci BOCO Bkgd #0 Color 34 ($22) — — — — Bic2 BİCİ #1 Color 35 ($23) — — — — B2c2 B2CO Bkgd #2 Color 36 ($24) — — — — B3c2 B3CO Bkgd #3 Color 37 ($25) — — — — MM02 MMO MMOO MOB #O 38 ($26) — — — —, MOB Mülticolor #1 39 ($27) — — — — Moc2 Moci MOCO MOB O Color 40 ($28) — — — — MIC3 MİCİ MİCO MOB 1 Color 41 ($29) — — — — M2c2 M2CO MOB 2 Color 42 ($2A) — — — — M3c2 M3CO MOB 3 Color 43 ($2B) — — — Mâc2 MA4Cİ M4CO MOB 4 Color 44 ($2C) — — — — M5c2 M5Cİ M5CO MOB 5 Color 45 ($2D) — — — — Möc2 M6CO MOB 6 Color 46 ($2E) — — — M7C2 MZCİ MZCO MOB 7 Color NOTE: A dash indicates a no connect. All no connects are read as a “1.” Lİ