Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

SDCC kullanarak Amstrad CPC için yapılmıştır

Benzer bir sunumlar


... konulu sunumlar: "SDCC kullanarak Amstrad CPC için yapılmıştır"— Sunum transkripti:

1 SDCC kullanarak Amstrad CPC için yapılmıştır
CPC ile Pixel Boyama SDCC kullanarak Amstrad CPC için yapılmıştır

2 Amstrad CPC Neye Sahip? Amstrad CPC 3 video moda sahip
Mode 0 – 160x200 piksel – 16 renk Mode 1 – 320x200 piksel – 4 renk Mode 2 – 640x200 piksel – 2 renk Video Memory adresleri C000’dan FFF’ye kadardır boyutu 16,833 bytetır. Video moda göre her byte 2,4 veya 8 piksel gösterebilir ekranda. Video memory’nin ilk byte’ı ekranın yukarı sol köşesinden başlar. Sonra byte sağ alt değildir. Amstrad CPC dizaynı dev bir sürpriz yapmıştır. Yapı daha karmaşık ve eğlencelidir grafik programcılar için.

3 Uygulama Yaparak Görelim
Mutlaka tüm uygulamalarımızda crt0_cpc.rel dosyasını ekleyin!

4 Şimdi derleyelim ve dsk yapalım!
sdcc -mz80 --code-loc 0x data-loc 0 --no-std-crt0 crt0_cpc.rel pixel01.c hex2bin pixel01.ihx CPCDiskXP -File pixel01.bin -AddAmsdosHeader AddToNewDsk pixel01.dsk

5 Gördüğümüz nedir? Birçok oyunun ekran görüntüsünü (özellikle bant) hatırlarsak, bu satır dizisi bize çok tanıdık geliyor. Gördüğümüz gibi, satırlar soldan sağa 'doğrusal' olarak doldurulur, ancak çizginin sonunda, bir sonraki alt sıçramalara gitmek yerine parça parça doldurulur.

6 Kaç byte ve mod bilgisi Üç video modunun yüksekliği 200 satırdır, böylece bu adresler her üç mod için de sabitlenir. Bu 200 satırın her biri, moda bağlı olarak genişliği 160, veya 640 pikselleri temsil eden 80 bayttır. Daha önce de söylediğimiz gibi, her bayt, moda bağlı olarak ekranın 2, 4 ya da 8 pikselini temsil eder, fakat daha da karmaşıklaştırmak için, her bir pikselin bitleri aşağıdaki gibi bayt olarak düzenlenir:

7 Video Bellek Yapısı CPC kullanıcı kılavuzundan

8

9 Address = 0xC000 + ((Line / 8) * 80) + ((Line % 8) * 2048)
Pratik örnekler: Mod 2'de, x = 81, y = 7 pikselini 1 olarak ayarlayın: İlk olarak tablo satırına 7 bakın (0'dan başlayarak başlayın) ve adres F800, mod 2'de olduğu gibi her bayt 8 pikseldir. 81 piksel yatay konumdayken, 81/8 = 10 yönünü arttırıyoruz ve 1 dinlenmeye sahibiz, 10 yönüne ekledik ve bize F80A verdiler, şimdi bu yönde 1 bit 6'ya ayarladığımız 1 pikselini yazmak için . Mod 1'de, x = 50, y = 22 pikselini 3 olarak ayarlayın: Tablodaki 22 satırının yönü F0A0, piksele 50 geçmek için 50/4 = 12 adresine eklenir ve 2'den fazla bırakılır. toplam F0AC verir ve rengi 3 yönün 2 pikseline koyun, biz 1 ve 5 bit 1 ayarlamalıyız. Adres tablosuna bakarsanız, aralarında 8 satırdan oluşan grupta bir ilişki olduğunu görürsünüz, aralarında 2048 baytlık aralıklar ve aşağıdaki 8'lik grup için 80 bayt bulunur. Bu ilişki aracılığıyla aşağıdaki kuralla herhangi bir hattın adresini kolayca elde edebiliriz:

10 Örnekler!!! DEMOLAR!!!!!!!!!!!!!!

11 Kaynaklar: http://www.cpcmania.com/


"SDCC kullanarak Amstrad CPC için yapılmıştır" indir ppt

Benzer bir sunumlar


Google Reklamları