Gönderen Konu: illegal opcodes  (Okunma sayısı 13010 defa)

illegal opcodes

« : 29.11.2004 12:45:29 »
Hızlı düğmeleri aç

Guest_hades


  • Ziyaretçi
c64 coderleri..

illegal (undocumented) komutlarla birşeyler yapan varmı ?
emülatörler bu komutları destekliyormu ?

countdown to 7d5......

illegal opcodes

« Yanıtla #1 : 29.11.2004 13:37:04 »
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/
olmaz mı? :) $fffe, $ffff interruptını kullanıldığında bir illegal opcode ($7a mıydı neydi...) 1 cycle yiyor. Normalde $7a illegal opcodeunun karşılığı NOP ve 2 cycle yiyor. Ama bu yalnızca dökümanlarda böyle. Zamanında yanılmıyorsam Crossbow büyük bir split yapmıştı bu illegal opcode'u kullanarak. Aşağıdan geçen scrollde açıklıyordu nasıl yaptığını.

Ben hayatımda yalnızca birkez illegal opcode kullandım. O da bir proportional text editörümde bitleri kaydır ORla v.s. iki komutun işini tek bir illegal opcode yapıyordu. Ben tam editörün codeunu yazarken TASS'ın illegal opcode desteği olan bir versionu geçmişti elime. Bir baktım benim codeumda onlarca kez ard arda geçen iki opcodeun tek bir illegal opcode karşılığı varmış :) Ama nedense 64 Times'da bunu kullanmamıştım. Belki ilerde yazacağım bir prop editörde kullanırım.

İllegal opcode kullanımıyla ne kazandım peki? Topu topu 1 cycle :) Ancak tüm ekranı dolduran bir yazıda yaklaşık (45 karakter/satır x 25 satır x ortalama 3 bit shift) 3375 cycle kazanç sağlıyorsunuz. Gerçi proportional rutini interrupt içi kullanılmadığından pek de bir farkı olmuyor, gözle görülemez bir hız farkı dışında. Kazanç PAL'de yaklaşık 54 raster satırı.

Diğer soruna da cevap veriim. CCS64 ve Vice destekliyor. Diğer emulleri ben kullanmadım ancak Frodo da destekliyor diye tahmin ediyorum.

$7a ile ilgili açıklama: Birincisi $7a olduğundan tam emin değilim, aklımda öyle kalmış. İkincisi, yanılmıyorsam tek başına ölçüldüğünde 1 cycle çıkıyordu (öyle bir program vardı cycle ölçen) ancak code içersinde peş peşe 2 $7a 2 cycle etmiyordu Crossbow'un (ya da her kim yaptıysa) codeunda. Olay biraz PC'deki 1.5 ya da 0.5 cycle yiyen opcodelara benziyor. Tek başına kullanınca 2 cycle yiyor, peş peşe iki tane 3 cycle yiyor v.s.