Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
Sayfa: 1 [2]   Aşağı git
Yazdır
Gönderen Konu: ZX Spin'in yeni sürümü çıktı.  (Okunma Sayısı 12545 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
hades
Üye
****
Mesaj Sayısı: 323



Üyelik Bilgileri
« Yanıtla #15 : Aralık 29, 2008, 21:32:34 ÖS »

z80 tutorialler için Arda var benden önce.
C64'ün yapısıyla çok farklı spectrum. c64'te ekranda raster bar yapması çok kolay ama spectrumda bunun nasıl yapıldığını bile anlamış değilim.
Spin'de kod yazarken C64'teki alışkanlıktan olsa gerek "LD A," komutunu "LDA " olarak yazıyorum. RET yerine RTS yazıyorum.

Şimdi Arda'ya bir kaç soru sorayım.

1-Z80 'deki interrupt modları ne işe yarıyor ve nasıl kullanabiliriz?
2-C64'te interrupt vektörü tarzında bir adres var. Ama Spectrumda -yanlış hatırlamıyorsam- böyle bir vektör yok. ancak belli adreslerden başlayan interrupt rutini yazabiliyoruz. doğru mu?
3-yine C64'te $EEB3 bulunan bir rutin 1msn gecikme sağlıyor. Spectrumda böyle bir rutin var mı? (PAUSE komutunu inceledim ama pek birşey göremedim)
4-"Undocumented opcodes" olarak bilinen bazı komutlar var. Bunların içinde HX,HY,LX ve LY komutları bulunmakta. IX, IY ve HL registerlerinin yarımlarıyla ilgili komutlar. Bu "Undocumented" komutlar kullanılıyor mu?
5-Spectrum hakkında epeyce bilgi sahibisin. Herhangi bir intro/demo çalışman var mı?

Joker, senide bekleriz z80 coderler arasına. öğrenmenin yaşı yoktur.

ilkergörkem, beraber çalışalım şu z80'e.
Neyse, şimdi worldofspectrum.com 'un ftp sini sömüreyim


(Yine gaza geldim. Ben Türkiye'de ilk spectrum grubunu kuralım diyorum. Z80'ciler el kaldırsın.)
« Son Düzenleme: Aralık 29, 2008, 21:35:59 ÖS Gönderen: hades » Logged
joker_
Genel Yönetici
*****
Mesaj Sayısı: 2.123



Üyelik Bilgileri
« Yanıtla #16 : Aralık 29, 2008, 22:06:30 ÖS »

hades el kaldırmasına kaldırayımda,benim spectrum maceram basicten öteye geçemedi,plot komutunu kullanarak ekrana nokta,nokta hayalet avcılarının logosunu çizmiştim. hiç üşenmemiş,koordinatları tek tek plot ile girmiştim
yok yok ben döneyim c64 ün başına,hmmm nerde kalmıştım,
lda #$00
sta $d020
sta $d021
ama spectrum için yapılacak her türlü buluşmalara katılırım.
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #17 : Aralık 30, 2008, 14:49:27 ÖS »

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:

Kod:
      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=2989


5. 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 Kahkaha 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.

« Son Düzenleme: Aralık 30, 2008, 15:01:29 ÖS Gönderen: Arda » Logged

joker_
Genel Yönetici
*****
Mesaj Sayısı: 2.123



Üyelik Bilgileri
« Yanıtla #18 : Aralık 30, 2008, 16:11:42 ÖS »

grup kurulursa üye olurum,buluşmalara katılır sohbet ederim.
Logged
hades
Üye
****
Mesaj Sayısı: 323



Üyelik Bilgileri
« Yanıtla #19 : Aralık 30, 2008, 20:17:10 ÖS »

Dün nette biraz "undocumented opcodes" araştırdım. Oldukça kıt olan ingilizcemle bir şeyler öğreneyim dedim. HX, HY, LX, LY registerlerinin benim zannettiğim gibi HL ile IX,IY registerlerinin birleşimi/karışımı vs. değil, başlı başına 16 bitlik olan bu iki registerin low ve high kısımları olduğunu öğrendim. Yani anladığım kadarıyla IX veya IY registerlerini 8 bitlik iki ayrı register olarak kullanabiliyoruz.

Zaten Z80'nin registerlerine hastayım. Adamlar lego oyuncak gibi yapmışlar registerleri. A,Flag,AF,B,C,BC,D,E,DE,H,L,HL, HX, LX, IX, HY, LY, IY, SP. Bunlar  yetmezmiş gibi birde bunların alternate registerlerini yapmışlar. AF', BC', DE', HL'.... Yani aslında elimizde depolama amaçlı kullanabileceğimiz extra registerlerimiz var gözüküyor.

Yeni başlayanla programlarında 1 byte yer kazandıracak bir ipucu vereyim. 2 bytelık "LD A,0" komutu yerine 1 bytelık "XOR A" komutunu kullanabilirsiniz. Her iki komut aynı işi yapar. Aküyü sıfırlar.

Neyse konu daha fazla dağılmadan uzaklaşayım.
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #20 : Aralık 30, 2008, 22:36:39 ÖS »

Dün nette biraz "undocumented opcodes" araştırdım.


z80'in undocumented özelliklerini listelemeye çalışan VirtualMSX'in yazarı Sean Young'ın mini-kitabının son güncellemesi:

http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf

bir de Rodney Zaks'ın sitesi vardı biryerlerde bulamadım...
Logged

Sayfa: 1 [2]   Yukarı git
Yazdır
Gitmek istediğiniz yer: