Gönderen Konu: Commodore 64 vic çipi nasıl çalışır?  (Okunma sayısı 6993 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2881
  • Advanced User Simulator
    • ae unutmadan
Commodore 64 vic çipi nasıl çalışır?
« : 20 Ocak 2013, 22:50:40 »
Soru çok genel gibi duruyor ama tam tersi, çok spesifik bir bilgiye ihtiyacım var, birşey yapacağımdan değil, zx spectrumdan bildiğim şeylerin c64 üzerinde alternatif bir düşünce kırıntısı üretebilir mi meraktayım.

Bana datasheet lazım değil çünkü onlar pek anlaşılır olmuyor. Bilen birinin basamak basamak anlatması daha iyi.

Ben tam olarak çizim anında neler olup bittiğini öğrenmek istiyorum. Örnek olarak spectrum ula'sını anlatayım kabaca:

1. Interrupt ile birlikte Ula içinde Border için 3 bitlik bir register var, ula o data kullanılarak üst border'ı çizmeye başlar. Bu sırada ram'e giriş yapılmaz. üst border 64 satır(not1) genişliğinde, 224*64=14336 ts'e vardık.
2. Ekranın bitmap alanının çizimi başlamadan 1ts önce ula CPU'nun alt bellek işlemlerini durdurur. (sadece alt bellek)
3. Ram'den renk bilgisini okur. (1ts)
4. Ram'den 8 pixellik bitmap datasını okur. (1ts)
5. 8 pixel genişliğinde çizim bir seferde yapılır. Bu çizim 2 ts sürer.
6. Ram'den renk bilgisini okur. (1ts)
7. Ram'den 8 pixellik bitmap datasını okur. (1ts)
8. CPU'yu serbest bırakır. (cpu bellek işlemlerine devam eder)
9. 8 pixel genişliğinde çizim bir seferde yapılır. Bu çizim 2 ts sürer.
10. Cpu tekrar durdurulur. 3 numaralı basamağa geri dönülür.
* Bu döngü 32 karakter için toplam 128ts tutar. Ardından 96ts genişliğinde border alanı çizilir. Border çizilirken cpu serbesttir. Böylece bir raster tamamlanır.
*Bu döngü 192 raster satırı için devam eder. 192 raster tamamlandığında 57344ts'deyiz.
*Ardından alt border çizime başlar. Bu border 56 satır genişliğinde. Toplam 12544ts.
*Alt border tamamlandığında 69888 ts'e vardık ve bir karenin çizimi tamamlandı(not2) ve Interrupt ateşlendi.

not1: bu 64 satırın son 48 satırı garanti border alanı. Diğer 16 satırlık zaman çizilm yerine -tv'nizin modeline göre- vertical retrace için kullanılıyor olabilir.
not2: 3.5MHz/69888=50.08 Hz zamanlanmış interrupt aralığı. Görüldüğü üzere bu hesap 50hz'lik elektriğe göre oturtulmuş.


Tabiiki vic ula'dan çok çok daha karmaşık bir çip. Ama c64 camiası vic'i çok iyi tanıyor gibi görünüyor. Var mı bu tip step-by-step guide?

Çevrimdışı ozayturay

  • Retroman
  • ***
  • İleti: 76
  • Commodore Forever
Ynt: Commodore 64 vic çipi nasıl çalışır?
« Yanıtla #1 : 20 Ocak 2013, 23:12:18 »
Aklıma ilk Nightlord ustanın TV'ye seslenen VIC anlatımı geldi. :)

http://nightnetwork.org/writings_tr/c64_grafik_programlama/chunk/ch02s01.html
http://www.retrodergi.com - http://www.e-turay.com

* Commodore 64C, 1541-II
* Amiga 500, Cortex Floppy Emu

* XBox (TSOP Flash, XBMC)
* Wii (SoftMod, USB Loader GX)
* PS3 Slim (Rogero Cobra, webMAN + mmCM)
* PS2 (FHDB, OPS2L)
* PS1 (ModChip)
* XBox360 (JTAG, Aurora)

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2881
  • Advanced User Simulator
    • ae unutmadan
Ynt: Commodore 64 vic çipi nasıl çalışır?
« Yanıtla #2 : 21 Ocak 2013, 10:47:31 »
vay anam vay :D BU kaynağın ingilizcede mevcut olacağından şüpheliyim, lakin google bana hiçbirşey döndürmemişti :D

Çevrimdışı nightlord

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 389
    • Night Network
Ynt: Commodore 64 vic çipi nasıl çalışır?
« Yanıtla #3 : 22 Ocak 2013, 02:03:15 »
tesekkurler :)

eger cycle cycle ne oldugunu merak ediyorsan da su var:
http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2881
  • Advanced User Simulator
    • ae unutmadan
Ynt: Commodore 64 vic çipi nasıl çalışır?
« Yanıtla #4 : 22 Ocak 2013, 14:37:48 »
tesekkurler :)

eger cycle cycle ne oldugunu merak ediyorsan da su var:
http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt


şu bölüm güzelmiş:
Alıntı
3.3. Color palette
------------------

The VIC has a hard-wired palette of 16 colors that are encoded with 4 bits:

  0 black
  1 white
  2 brown
  3 brown
  4 brown
  5 brown
  6 brown
  7 brown
  8 brown
  9 brown
 10 light brown
 11 dark brown
 12 medium brown
 13 light dark  brown
 14 light milky brown
 15 light medium  brown

Eheh, ilk ultra mini programım geliyor sıkı durun :D

Çevrimdışı nightlord

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 389
    • Night Network
Ynt: Commodore 64 vic çipi nasıl çalışır?
« Yanıtla #5 : 22 Ocak 2013, 20:02:23 »
eh tabi speccy'nin (255,0,0), (0,255,0), (0, 0, 255), (255, 255,0), (255, 0, 255), (0, 255, 255), (255, 255,255), (0, 0, 0) seklindeki paletinden sonra sizin gozlerde ara ton algilama kabiliyeti azaliyo dogal olarak :D

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2881
  • Advanced User Simulator
    • ae unutmadan
Ynt: Commodore 64 vic çipi nasıl çalışır?
« Yanıtla #6 : 22 Ocak 2013, 21:25:43 »
eh tabi speccy'nin (255,0,0), (0,255,0), (0, 0, 255), (255, 255,0), (255, 0, 255), (0, 255, 255), (255, 255,255), (0, 0, 0) seklindeki paletinden sonra sizin gozlerde ara ton algilama kabiliyeti azaliyo dogal olarak :D
yok, 192, 0, 0 olacak o :D Her rengin bir koyusu bir açığı var :)