commodore.gen.tr

Diğer Nostaljik Bilgisayarlar => Sinclair - Emulasyon => Konuyu başlatan: Arda üzerinde Kasım 26, 2006, 17:15:23 ÖS



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