Gönderen Konu: dev sid + karakter set  (Okunma sayısı 12325 defa)

dev sid + karakter set

« : 10.03.2006 16:56:57 »
Hızlı düğmeleri aç

jimqode

İleti: 215

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://
ya brolar, beyler
siz yucesiniz bilirsiniz.

Party report yazmaya calisiyorum 3 gundur 64'te. herseyi hallettim amma velakin wisdom sagolsun hard return $1000'den basliyor $4000'e kadar yuruyor (yoksa butun sidler mi boyle). hal bu olunca karakter set'e yer kalmadi.

$0800'e koymayi denedim karakter seti, malum orda basic start da var o yuzden program calistiktan sonra tasiyorum oraya. monitorlere aciyorum bakiyorum tasimis. ama

lda $12
sta $d018

sadece garbage...
nasil yapilir bu isler?
muzigi mi relocate etmek lazim? oyleyse onu nasil yapicam?
/*
Planet Retro - Retrocomputing News and Blogs
*/

dev sid + karakter set

« Yanıtla #1 : 10.03.2006 17:13:46 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Ulan madem public ortama atacaktın, bir de niye özelden sordun bana :) Al buraya da paste ediim cevabımı...

-------------------------
merhaba skate,

ya party report yaziyorum c64'te fakat bir derdim var. Sen bilirsin kesin. Arkada wisdom'un hard return'unu caldiriyim dedim ama adam masallah bir muzik yazmis $1000'den $4000'e kadar.  
character set koyacak yer kalmadi tabi boyle olunca. $0800'e koymayi denedim karakter seti (tabi orda basic start var bi de program calistiktan sonra kopyaliyorum) ama yemiyor, garbage gorunuyor sadece.

nasil hallederim bu isi?
-------------------------

$4000'den sonrasını kullan. Bunun için $dd00 adresiyle bank değiştirmen lazım. $dd00'ın alt iki biti bank belirler.

%00000011 -> $0000-$3fff arası
%00000010 -> $4000-$7fff arası
%00000001 -> $8000-$bfff arası
%00000000 -> $c000-$ffff arası

olacak şekilde. Kısacası $4000-$7fff arasını kullanmak istersen;

lda #$02
sta $dd00

demen lazım. Peki ekran adresi ve karakter set noolacak o durumda? Bunlar için de $d018'le oynaşman lazım. $d018 hem karakter setinin bulunduğu alanı, hem de ekranın (default olarak $0400) bulunduğu alanın yerini belirler. şöyle ki;

%xxxxyyyy

diyecek olursak;

xxxx: ekranın bulunacağı alan. Her $0400'lük alan için birer birer artar. Örnek olarak ekran $0400'de ise değeri 1'dir yani:

xxxx = 0001

bu şu şekilde ilerler

0000 -> 0 -> $0000
0001 -> 1 -> $0400
0010 -> 2 -> $0800
0011 -> 3 -> $0c00
0100 -> 4 -> $1000
0101 -> 5 -> $1400
0110 -> 6 -> $1800
0111 -> 7 -> $1c00
1000 -> 8 -> $2000
1001 -> 9 -> $2400
1010 -> 10 -> $2800
1011 -> 11 -> $2c00
1100 -> 12 -> $3000
1101 -> 13 -> $3400
1110 -> 14 -> $3800
1111 -> 15 -> $3c00

Tabii ki bu değerler bankın başlangıç adresiyle toplanır. Örnek olarak sen ekranını $5c00 adresine koymak istiyorsan;

0111 -> 7 -> $1c00

Bu değeri kullanacaksın.

Gelelim alt bitlere. en alt bitin hiçbir anlamı yoktur, kullanılmaz. Yani yyyy aslında yyy? şeklinde ifade edilebilir. Diğer bitler karakter setinin yer alacağı adresleri belirler.

yyyy'nin alabileceği değerler:

0000 -> 0 -> $0000
0010 -> 2 -> $0800
0100 -> 4 -> $1000
0110 -> 6 -> $1800
1000 -> 8 -> $2000
1010 -> 10 -> $2800
1100 -> 12 -> $3000
1110 -> 14 -> $3800

Mesela karakter setini de $6800'e koymak istediğini varsayalım, bu durumda bank $4000'den başladığı için;

1010 -> 10 -> $2800

Bu değeri kullanman gerekir. Kısacası özetlemek gerekirse;

Ekran adresi $5c00-$5cff arasında ve karakter seti $6800-$6fff arasında olacaksa yapman gereken yalnızca ikişer lda sta'dan ibaret.

lda #$02
sta $dd00
lda #$7a
sta $d018

$7a nerden mi geldi?
xxxx = 0111 -> 7 -> $1c00
yyyy = 1010 -> 10 -> $2800

olduğuna göre

%xxxxyyyy = %01111010 = $7a

ok?

Örnek olarak sana güzel bir hafıza düzen yapiim. Karakter seti $4000'de ve ekran $4800'de olursa;

lda #$02
sta $dd00
lda #$20
sta $d018

demen yeterli olacaktır. Anlamadığın yeri sor, detaylandıriim.

dev sid + karakter set

« Yanıtla #2 : 10.03.2006 17:17:06 »
Hızlı düğmeleri aç

jimqode

İleti: 215

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://
heheheh ciktin sandimdi :)
/*
Planet Retro - Retrocomputing News and Blogs
*/

dev sid + karakter set

« Yanıtla #3 : 10.03.2006 17:26:38 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Alıntı
Originally posted by jimqode@Mar 10 2006, 05:17 PM
heheheh ciktin sandimdi :)
[post=5835]Quoted post[/post]
[/b]
Ha, bir de $0800'ü kullanmak istediğini varsayalım. Bu tür durumlarda genellikle hafızaya herşeyi yükletip başlangıç adresine jump ederek (basicdeysen sys, monitörlerde genellikle "g" komutu) programı çalıştırarak test edebilirsin. En son iş bitip paketlenme aşamasına geldiğinde commodore 64'de cruncher, packer tarzı programları kullanabilirsin ve bunlar başlangıç adresi sorarlar sana zaten. Böylece hem sıkıştırmış olursun hem de doğrudan run ile çalışır hale gelir.

Örnekler:
Time Cruncher
Sledge Hammer III
v.s.

Ancak bunun yanında eğer PC'de geliştiriyorsan projeyi sana tek tavsiyem PuCrunch olacaktır. Süper bir utility, console modeda çalışıyor. Help'i de içinde geliyor.

Bunlar da ekstra bilgiler sana. Ama bence $4000-$7fff arası kullanım açısından süper rahat bir hafıza alanıdır. Hatta hatta Commodore'un "en temiz" bankıdır. Commodorecular ne demek istediğimi iyi anlayacaklardır :)

dev sid + karakter set

« Yanıtla #4 : 10.03.2006 17:56:54 »
Hızlı düğmeleri aç

jimqode

İleti: 215

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://
evet az once o bankin ustune ciktim ne demek istedigini cok net anladim ben de :)

kim kurcaliyo lan bu adresleri !!  :blink:
/*
Planet Retro - Retrocomputing News and Blogs
*/

dev sid + karakter set

« Yanıtla #5 : 10.03.2006 18:16:43 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@jimgode: Sana son bir tiyo, grup arkadaşın Madhead'in çok iyi bir 64 alt yapısı vardır. Geçenlerde mesajlaşmıştık, bilgileri taptaze duruyor. Hatta hatta "ulan zamanında nasıl akıl edememişim, şimdi olsa böylemi yapardım" modundaydı en son. O adam ara ara kaybolur, partilere gelmez v.s. ancak sana tavsiyem yapış yakasına, hem kendin faydalan, hem onu da gaza getir.

Kendisinin TR scene tarihinin en güzel *unreleased* 4x4 textureını çizmiş olması gibi de kırılamaz bir rekoru vardır bu arada. :lol:

dev sid + karakter set

« Yanıtla #6 : 11.03.2006 09:57:25 »
Hızlı düğmeleri aç

eirik

İleti: 312

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://localhost/
konu dI$I olacak biraz ama c64 un rom unu (dolayIsIyla rom basic i) cIkarIp yerine kendi yazdigi rom u takIp cali$tiran birisi var midir yani bu $ekilde rom a kendi yazdigi i$letim sistemini kullanmak olasI gibi duruyor ustelik de rom basic i yuklemeyince bayagI bi yerden kazanilabilir ozellikle programcI dostu bi i$letim sistemiyle

daha once boyle bi$ii yapilmamI$sa yapmak eglenceli olabilir.

dev sid + karakter set

« Yanıtla #7 : 11.03.2006 12:41:48 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Alıntı
Originally posted by eirik@Mar 11 2006, 09:57 AM
konu dI$I olacak biraz ama c64 un rom unu (dolayIsIyla rom basic i) cIkarIp yerine kendi yazdigi rom u takIp cali$tiran birisi var midir yani bu $ekilde rom a kendi yazdigi i$letim sistemini kullanmak olasI gibi duruyor ustelik de rom basic i yuklemeyince bayagI bi yerden kazanilabilir ozellikle programcI dostu bi i$letim sistemiyle

daha once boyle bi$ii yapilmamI$sa yapmak eglenceli olabilir.
[post=5865]Quoted post[/post]
[/b]
Bunun başka yöntemleri var. ROM'u RAM'a aktarıp, RAM'da istediğin değişiklikleri yapıp herşeyi RAM'dan çalıştırabiliyorsun. BASIC'e komut eklemek, değiştirmek v.s. zaten çok bilindik ve kullanılan şeyler. Dolayısıyla ROM'u değiştirmek için bir neden göremiyorum ben.

dev sid + karakter set

« Yanıtla #8 : 11.03.2006 12:49:27 »
Hızlı düğmeleri aç

jimqode

İleti: 215

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
    • http://
kartuslarin yaptigi seyin makinenin uzerindeki ROMu degistirmekten pek farki yok. Zaten commodore muhendisleri bunu dusunmus yani :)
/*
Planet Retro - Retrocomputing News and Blogs
*/

dev sid + karakter set

« Yanıtla #9 : 09.08.2006 01:07:17 »
Hızlı düğmeleri aç

madhead

İleti: 39

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Alıntı yapılan: skate
Kendisinin TR scene tarihinin en güzel *unreleased* 4x4 textureını çizmiş olması gibi de kırılamaz bir rekoru vardır bu arada. :lol:

bu arada o texture'ı nightlord'a verdiğimi hatırlıyorum umarım kaybetmediyse bi gün kullanır, hatta 2*2 formatında bikaç doom texture'ı da hazırlamıştım ama kaybolmuş gitmiştir heralde

dev sid + karakter set

« Yanıtla #10 : 20.05.2007 16:44:10 »
Hızlı düğmeleri aç

Wisdom

İleti: 134

Çevrimdışı
  • ***
  • Full Member
    • Profili Görüntüle
Ya ben bu thread'i daha yeni gordum. :-)

Hard Return'un o kadar fazla yer kaplamasinin sebebi partide o muzigi pack etmeden compo'ya submit etmis olmamdi (yine deadline'a 4 saat kala muzik yapmaya basladigimdan vakit kalmamisti pack olaylarina.)

Bir ara packed versiyonunu da cikaririm artik. Baktim HVSC'ye de oyle 14 kb gitmis, yuh. :-)