6502, 6510 ve Zero Page

6 replies · 7,646 views

6502, 6510 ve Zero Page
şimdi iki tane sorum olacak. ılki, 6510 ve 6502 arasında ne fark var. 6510 6502'nin bir gelişmişi ama ben teknik olarak nasıl bir şey farkediyor bilmiyorum.
Esas sorumsa şu: Abi Zero Page denen şeyin olayı nedir, neden güzel bir şey bu? Tamam, sıfırıncı sayfa olunca tek bayt ile adresi yazarsın da.Tek byte ile adresleme imkanını kullanan komutlar mı var 6502/10 'un makine dilinde?
6502, 6510 ve Zero Page
ben duydugum kadarini soyliyeyim;
zero page'de islem yaparken (load?) islemi biraz (1 cycle?) daha hizli?
6502, 6510 ve Zero Page
zeropage'in en büyük kazancı gnostic'in de söylediği 1 cycle kazanma olayıdır. ayrıca aynı zamanda komut parametre uzunluğundan da 1 byte kazanç sağlanır. dolayısıyla bir komutta hem hafızadan 1 byte, hem de 1 cycle kazanmış oluyoruz. diyelim ki bir loopun içersinde 4 tane zeropage adresi kullandık ve loopumuz 256 kere tekrar ediyor. Kazanç 4*256 = 1024 cycle ~= 16.25 raster satırı. Hiç fena değil yani. Bu kadar alanda müzik çaldırabiliriz mesela.
Commodore 64'de kullanılan CPU olan 6510, 6502'nin akrabasıdır. Aynı aileden ama aynı şey değil. 6510'da desteklenmeyen ancak 6502 tasarımında yer alan op codelar var örneğin.
6502, 6510 ve Zero Page
@atiflz: 6510 ile 6502 arasindaki en onemli fark 6510da ilaveten bir giris cikis portu olmasidir. 0 ve 1. adreslerdeki bir adet veri yon registeri ve veri deger registeri ile kontrol edilen bu port (yani disari bagli 6 veya 8 pin) C64'te RAM, ROM ve I/O ciplerinden hangilerinin adres ve data buslarina baglanacagini programlama yoluyla kontrol eder. Ayni portun bazi pinleri teyp ile data alis verisinde de kullaniliyor.
@skate: 6502 ile 6510 arasinda birinde olup digerinde olmayan opcode oldugundan emin misin? Ben boyle bir fark oldugunu bilmiyordum. Hatta olmamali diye biliyordum bir check edelim emin olalim.
6502, 6510 ve Zero Page
@nightlord: örneğin lda($00),x gibi komutlar 6502'de olduğu halde 6510'da desteklenmiyor diye biliyorum. ben de bakıcam şimdi netten. zamanında bir 6502 dökümanı okumuştum. onda c64'de çalışmayan opcodelar görmüştüm. ordan yola çıkarak söyledim.
6502, 6510 ve Zero Page
az önce o dökümanı aradım ama bulamadım. diğer okuduğum dökümanlarda da opcode farklılığından bahsetmemiş. büyük olaslıkla 65c12, 65816 v.s. birşeyle karşılaştırma okumuşumdur oradan aklımda kalmıştır. ben hep 6502'de olan ve 6510'da olmayan opcode olduğunu sanıyordum. yıllardır da "ulan 6502 daha eski, niye tüm opcodeları kullanmamışlar ki 6510'da" diyordum. demek kullanmışlar da ben kullanmadıklarını sanıyormuşum 🙂