|
Konu Başlığı: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde Kasım 26, 2006, 17:15:23 ÖS Spectruma ait onlarca emulatörlerden "en iyi 5" arasında diyebileceğim ZX Spin 0.6 Test 13 sürümü çıktı.
Merak edenler buyursun: http://homepage.ntlworld.com/paul.dunn4/SPIN_Test13.zip Bu sürümün en önemli özelliği IDE arabirimi desteği. Daha önce başka bir başlık altında tartıştığımız spectrum'a CFkart/Harddisk/CDrom bağlamak için kullanılan DivIDE kartının emulasyonu mevcut. Yani dilerseniz bir harddisk imajı ya da cf kartınızın kendisini kullanarak dosyalarınızı spin'de yaratabilir/test edebilirsiniz. Daha da önemlisi, DivIDE arabiriminizi programlayabilir, donanıma zarar vermeden rahatça debugging yapabilirsiniz. Falan filan işte... Buyrun: (http://img216.imageshack.us/img216/6307/spinidexh3.jpg) (http://homepage.ntlworld.com/paul.dunn4/SPIN_Test13.zip) Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde Aralık 27, 2006, 21:50:36 ÖS ZX Spin'in yeni sürümü çıktı! (yine)
Sürüm V0.61'de şu yenilikler var: - ZX Pentagon emülasyonu. TRD ve SCL disk dosyaları desteği. - Gigascreen yumuşatması. (Fakat Gigascreen kartı emülasyonu yerine ekrandaki titremeyi azaltan bir sistem kullanıyor.) - Avi dışında, artık GIF formatında da video kaydedebiliyor. - Midi emülasyonu. PC'nize taktığınız midi aracını spectrumunuza takmışsınız gibi. (standart speccy 128k'larda midi portu vardır) - DivIde emülasyonu ve DivIDE rom'larına binary yükleme özelliği. - ULA Snow denilen IR bug'ını daha doğru emüle ediyor. Bekletmeden asılın: http://homepage.ntlworld.com/paul.dunn4/ZXSpin.zip Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: hades üzerinde Şubat 05, 2008, 00:22:23 ÖÖ zxspin 0.622'yi indirdim. Bana göre en iyi tarafı şimdilik extra bir asm editör/compiler kullanmadan, kendi içinde bulunan Spin-assembler tool'u kullanarak asm kod yazabilmemiz. 21-22 sene aradan sonra tekrar z80 kod denemelerine başladım. Ancak bir sorun var. Şöyleki :
yazdığım kodun sonuna herhangi bir byte, word, string (text) ekleyemiyorum. zxspin-assembler ile ilgili bir dökümanı/bilgiyi nerden bulabilirim. İlk denemem bir loop içinde out (254),a - inc a - jr loop komutlarıyla borderde çizgiler ve beep sesi çıkarmak oldu. Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde Şubat 05, 2008, 01:39:45 ÖÖ selam hades,
Spin'in assembler'ını yazan Marko o kısmı biraz sallapati yapmış, hiçbir döküman olmadığı gibi spin'in ana yazarı paul dunn'da assembler ile ilgili pek birşey bilmiyor ve o kısma yanaşmak bile istemiyor. Benimde birkaç sorum oldu, "valla ben de bilmiyorum" dan başka cevap alamadım :) En iyisi pasmo kullanmak. Pasmo direk .TAP dosyasına compile edebiliyor, ben de bu arada paul'ü facebook'tan sıkıştırayım. Bir de spin'in yeni bir sürümü daha var, 6.66 yılbaşından hemen önce çıktı, onu çekmeni tavsiye ederim. Assembler'de bir gelişme yok (hatta paul assembleri çıkarmak istiyor programdan) http://www.raww.org/filez/zxspin666.zip Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: hades üzerinde Şubat 06, 2008, 00:37:53 ÖÖ Selam Arda
Pasmo'yu geçtiğimiz günlerde biraz kurcalamıştım ama pek bir şey anlamadım. Ayrıca ccz80ide isimli bir tool denedim yine olmadı. Son olarak zxspin'i kurcalamaya başladım ve birşeyler buldum. Asm programına defb komutu ile byte, defm komutu ile "yazı", defw komutu ile word, equ komutu ile bir değişkene değer atanabiliyor. org komutu ise olmazsa olmazlar arasında. gerekirse asm programının sonuna end komutu koyulabilir. Ve yıllar sonra yaptığım ilk program. Kod: org 32768 main call 0d6bh ;CLS command ld a,color out (254),a ld b,endmsg-msg ld hl,msg loop0 ld a,(hl) rst 10h ;PRINT command inc hl djnz loop0 ret msg defb 16,7 ;INK 7 defb 17,1 ;PAPER 1 defb 18,1 ;FLASH 1 defb 19,1 ;BRIGHT 1 defm " bu bir denemedir. 05-02-2008 " endmsg color equ 5 end Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde Şubat 06, 2008, 01:07:13 ÖÖ hades, spin'in assembler'ını kullandığını gördüğüm ilk adamsın :)
o zaman iyi haberler var, dün marko ile konuştum ve şu günlerde spin'in debugger ve assembleri ile uğraştığını söyledi. Yakında yeni bir sürüm gelecek sanırım. Yıllar sonra yaptığın ilk programın hemen devamında yıllar sonra yaptığın ikinci programı bekliyorum senden :) Belki de türk scene'ine küçük de olsa bir zx introsu sokmanın vakti geldi. 256b belki? Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: tabu üzerinde Şubat 06, 2008, 01:30:29 ÖÖ divIDE hayalimdeki donanım :)
Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: hades üzerinde Şubat 06, 2008, 12:28:16 ÖS hades, spin'in assembler'ını kullandığını gördüğüm ilk adamsın :) o zaman iyi haberler var, dün marko ile konuştum ve şu günlerde spin'in debugger ve assembleri ile uğraştığını söyledi. Yakında yeni bir sürüm gelecek sanırım. Yıllar sonra yaptığın ilk programın hemen devamında yıllar sonra yaptığın ikinci programı bekliyorum senden :) Belki de türk scene'ine küçük de olsa bir zx introsu sokmanın vakti geldi. 256b belki? aklımda ufak bir efekt var. 1-2 gün içinde yazmaya başlayabilirim. Ama önce ekran belleğini ve komutları biraz kurcalamam lazım. Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: ilkergorkem üzerinde Aralık 27, 2008, 11:37:19 ÖÖ yaklaşık 12 saatlik z80 geçmişimde foruma göz atarken sinclair kategorisinin en altından başladım okumaya ne var ne yok diye. Ve yaptığın ilk programı gördüm ve heveslendim copy paste yaptım spin 0.66 ya çok güzel yapıştı ama Program menüsündeki run bile aktif değil sonra asm olarak save edip spin tarafında açmak istedim bu seferde başlangıç adresi ne olsun dedi ??? demek 12 saatlik bir zaman hazır programı run etmeme bile yetmemiş :)
yıllar sonra yaptığın program için seni kutlarım. Ama 10 aydır bir suskunluk var sanırım 2. program gelmemiş... Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde Aralık 27, 2008, 12:05:31 ÖS başlangıç adresini upper ram'e koymaya gayret etmelisin (32767 ve altı, yani lower ram sinclairde contended *gecikmeli* ramdir. programın grafik kullanımına göre %3-10 yavaş çalışır).
assembler'da başlangıç adresini org komutuyla verebilirsin ilk satıra org 40000 yazarsan başlangıç adresi o olur. seçenek olarak "assemble to memory" seçip compile edip, spectrum tarafında RANDOMIZE USR 40000 yazarsan çalışır :) Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: hades üzerinde Aralık 27, 2008, 13:17:50 ÖS selam
10 ay içinde değil spectrum, c64 için bile kod yazmadım. sanki üzerime ölü toprağı serpilmiş gibiyim. arda'nında dediği gibi, -lame bir code bile olsa- 256b yazmak istiyorum. Zamanında (1986-87 olması lazım) karakter setini başaşağı çeviren bir program yazmıştım. Hatta "Atic Atac" oyununun loader screen resmini yüklendikten sonra baş aşağı çevirip yüklemeye o şekilde devam ediyordu. Son hatırladığım ise bir oyunu, "ultrafile ???" isimli bir copy tool'un kopyalayamayacağı uzunluğa getirmiştim. Yazdığım kod printer bufferindeydi ve oyun yüklendikten sonra $4000-$ffff arasını kasede kaydediyordu. Nasıl yaptığımı hiç hatırlamıyorum ama oyunu kasetten yükleyince normal çalışıyordu. işin ilginci o yıllarda hiç z80 asm döküman olmamsıydı. tek kaynak elo elektronikti. yaşımız 18 falandı. fena gaza geldim şimdi :) Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde Aralık 27, 2008, 13:36:29 ÖS işin ilginci o yıllarda hiç z80 asm döküman olmamsıydı. tek kaynak elo elektronikti. yaşımız 18 falandı. fena gaza geldim şimdi :) zx spectrum için türkçe döküman konusu o yıllar boyunca pek de değişmedi hades. Durum birebir aynı, yine elo elektronikle sınırlısın :) Gaza gel ama Z80'de gel. Forumdaki spectrumcu sayısı 3'e çıktı, seni de katalım 4 olsun :) Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: hades üzerinde Aralık 29, 2008, 00:00:34 ÖÖ Daha önceki mesajımda bahsetmiş olduğum efekti bugün kodladım. ilk hali 440 byte civarında geziniyordu. Optimize edince 359 byte oldu. 256 byte olması biraz zaman alacak :)
Spin kullanıyorum ama çok acemi sayılırım. Mesela yazdığım kodu SAVE "strech" CODE 32768,359 ile kaydedip masaüstüne attım. Ancak herhangi bir uzantı vermedim. tzx, sna, z80 vs... bir sürü uzantı var. Bunları öğrenmem lazım. spini açıyorum. load binary file'ı seçip dosyayı gösteriyorum. start adresi 32768 yazıp yüklüyorum. sonra Randomize usr 32768 ile çalıştırıyorum. Daha kolay bir yolu yok mu? artık 22-23 senelik yeni bir z80 coderiyim. org 32768 main ld a,2 call 1601h ; call 0d6bh ;CLS command xor a out (254),a ld b,endmsg-msg ld hl,msg loop0 ld a,(hl) rst 10h ;PRINT command inc hl djnz loop0 call longdelay ;-------------------------------------- line7 call la47004020 ;-------------------------------------- line6 call la46004700 call la40204120 ;-------------------------------------- line5 call la45004600 call la47004020 call la41204220 ;-------------------------------------- line4 call la44004500 call la46004700 call la40204120 call la42204320 ;-------------------------------------- line3 call la43004400 call la45004600 call la47004020 call la41204220 call la43204420 ;------------------------------------- line2 call la42004300 call la44004500 call la46004700 call la40204120 call la42204320 call la44204520 ;------------------------------------- line1 call la41004200 call la43004400 call la45004600 call la47004020 call la41204220 call la43204420 call la45204620 ;------------------------------------- line0 call la42004300 call la44004500 call la46004700 call la40204120 call la42204320 call la44204520 call la46204720 ;-------------------------------------- call longdelay xx jp main ;--------------------------------------- longdelay ld d,40 long call delay dec d jr nz,long ret ;--------------------------------------- la41004200 ld hl,4100h ld de,4200h jp transfer ;--------------------------------------- la42004300 ld hl,4200h ld de,4300h jp transfer ;--------------------------------------- la43004400 ld hl,4300h ld de,4400h jp transfer ;--------------------------------------- la44004500 ld hl,4400h ld de,4500h jp transfer ;--------------------------------------- la45004600 ld hl,4500h ld de,4600h jp transfer ;--------------------------------------- la46004700 ld hl,4600h ld de,4700h jp transfer ;--------------------------------------- la47004020 ld hl,4700h ld de,4020h jp transfer ;--------------------------------------- la40204120 ld hl,4020h ld de,4120h jp transfer ;--------------------------------------- la41204220 ld hl,4120h ld de,4220h jp transfer ;--------------------------------------- la42204320 ld hl,4220h ld de,4320h jp transfer ;--------------------------------------- la43204420 ld hl,4320h ld de,4420h jp transfer ;--------------------------------------- la44204520 ld hl,4420h ld de,4520h jp transfer ;--------------------------------------- la45204620 ld hl,4520h ld de,4620h jp transfer ;--------------------------------------- la46204720 ld hl,4620h ld de,4720h jp transfer ;--------------------------------------- transfer ld b,20h loop1 ld a,(hl) ld (de),a xor a ld (hl),a inc hl inc de djnz loop1 ;-------------------------------------- delay ld bc,0020h delay1 djnz delay1 dec c jr nz,delay1 ret ;-------------------------------------- msg defb 16,7 ;INK 7 defb 17,0 ;PAPER 1 ; defb 18,1 ;FLASH 1 defb 19,1 ;BRIGHT 1 defb 22,0,0 ;AT 0,0 defm "*359 byte demo/28-12-2008/hades*" defm "this is my first demo for speccy" endmsg end eylemlerim sürecek. Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: ilkergorkem üzerinde Aralık 29, 2008, 01:29:42 ÖÖ Çok güzel olmuş koduna sağlık. Darısı benim başıma ::)
Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: joker_ üzerinde Aralık 29, 2008, 09:09:34 ÖÖ hades,
süpersin,abi sayende c64 assamblere bulaştım,şimdide z80 e bulaştırıcan bizi :) artık z80 içinde tutorialler bekleriz senden :) Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: hades üzerinde 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.) Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: joker_ üzerinde 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. Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde 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 (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 :D 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. Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: joker_ üzerinde Aralık 30, 2008, 16:11:42 ÖS grup kurulursa üye olurum,buluşmalara katılır sohbet ederim. :)
Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: hades üzerinde 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. Konu Başlığı: Ynt: ZX Spin'in yeni sürümü çıktı. Gönderen: Arda üzerinde 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 (http://www.myquest.nl/z80undocumented/z80-documented-v0.91.pdf) bir de Rodney Zaks'ın sitesi vardı biryerlerde bulamadım... |