Hades, benim spectrum bilgim o kadar da derin değil, sadece bu ortalıkta kendini gösteren spectrumcu yok o kadar. Meydan bana kalıyor anlayacağınız.
Ayrıca türkiyedeki spectrumcuları bunca zamandır bulamamıştım, elini sallasan komodorcuya denk geliyor. Bu sebepten ben de ingiliz kıyılarına atmıştım kendimi. Burada "iyi spectrumcu" gibi duruyorum, lakin ingiliz z80 aleminde en fazla bir "newbie" olarak görülmekteyim. Buna ek olarak z80 bilgim benim de 1990'dan kalma ve bir hayli tozlu. Yeniden öğrenecek zaman da bulamadım.
Şimdi sorularına elimden geldiğince cevap vereyim:
1. Spectrumda 3 adet programlanamayan interrupt modu var. Eğer kapatmadıysan (EI/DI) Her saniye 50 kere interrupt oluşur. Fakat, işe yarayan iki interrupt modu var. IM 1, IM 2.
IM 2, senin I register'ine yüklediğin değere göre zıplıyor. (örnek, I 127 ise 32767'ye zıplar). IM 1 ise RST 56 yapıyor (RST h38).
edit:
Bu arada interrupt zamanında "Contention" oluşmuyor, bu yüzden interrupt kodunu lower ram denilen 32767'nin altında tutarak yerden kazanmış oluyorsun. Bu da bir dipnot olsun.
2. IM2 'den bahsediyorsun sanırım. Bir de nasıl yaptıklarını ve ne yaptıklarını tam olarak bilmiyorum ama ROM'un sonundaki boş alanı (255'lerle dolu) kullanıyormuş.
3. yok, cycle saymalısın. 1ms yaklaşık 3500 cycle tutuyor olmalı (3.54mhz) bu durumda, bir loop hazırlayıp cycle saymak gerek:
ld b,152
loop: ld hl,0
djnz loop
üstteki kod yaklaşık 1ms beklemesi lazım.
4. Evet, tüm kılavuza geçmemiş komutlar neredeyse tüm emülatörler tarafından destekleniyor ve kullanılıyor. Hatta 2002-3 yıllarında keşfedilen R register'ı bile (hiçbir programda kullanılmamasına karşın) birçok emulator tarafından destekleniyor. Problemli tek komut, "Bit N, (HL)". Bu komutun dökümanlara girmeyen frag registerinin 3 ve 5 numaralı bitlerini garip bir şekilde etkilemesi henüz tartışılmaya devam ediyor. Bu konudaki birkaç bilgiden biri şu adreste bulunabilir:
http://zx.pk.ru/attachment.php?attachmentid=29895. Hayır kendimi daha çok oyun programcısı olarak görmüşümdür. Demo coder'ı olmak sadece bilgisayar bilgisi değil, ciddi matematik bilmeyi gerektirdiği için bu konuda faydalı ürünler çıkarabileceğime inanmıyorum.
Görüldüğü üzere interruptlar hakkında da çok detaylı bilgi sahibi değilim. z80.info 'da takılmaya başlamalı bol bol.
Bu arada spectrum grubu kurulmasında ben de olurum, grafik falan çizerim ama
Kodlamayı da beraber öğrenelim burada. Yaptıklarınızı post edin, bilgi paylaşalım, forumun bilgi üreten kısmı spectrum tarafı olsun.
Haha, aslında rahatlıkla Alco'yu da katabiliriz, o da z80'ci nede olsa...
--cevabın gecikmesi tamamen okulumdan kaynaklanıyor, internet yoktu bir süredir, ekranda cevap post edilmeyi bekliyordu...Yoksa bulmuşum konuyu kaçırır mıyım.