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)
commodore.gen.trDiğer Nostaljik BilgisayarlarSinclairSinclair - YazılımGünümüz imkanları ile Spectrum'a program yazabilmek
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: Günümüz imkanları ile Spectrum'a program yazabilmek  (Okunma Sayısı 8724 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« : Kasım 19, 2006, 03:35:06 ÖÖ »

Spectrum ile ilgilenenler ve retroprogramlama işine girişmek/geri dönmek isteyenler için birkaç başlangıç önerisi yapayım:

1) Basin: Paul Dunn'un BASIC editorü, windows üzerinde çalışıyor, kaset dosyaları üretebiliyor. Grafik editörü, ufak bir asm derleyici, onlarca debug yardımcı aracı ile Zx Spectrum için Windows tabanlı bir yazılım geliştirme seti.
http://ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/pc/windows/BASin_r13a.exe

2) z88dk: Açık kaynak koduyla source forge'dan çekebileceğiniz z8x işlemciler için bir C SDK. Artık zx spectrum için ansi C kod yazıp, programınızı native z80 halinde derleyebilirsiniz. Yanında çok faydalı sprite kütüphaneleri, kempston mouse sürücüsüde geliyor.
http://z88dk.sourceforge.net/

3) SinBAS: Eski bir program ama hala çalışıyor. Spectrum basic dilinde program yazıp MSDOS uygulamaları oluşturmak isterseniz sinbas ortaya çıkıyor. Yazdığınız programlar spectrumda çalışmıyor, Qbasic alternatifi gibi düşünün.
http://ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/pc/dos/sinbas13.zip

4) TORNADO assembler: Spectrum'cuların tercih ettiği asm derleyici/editör.
http://www.worldofspectrum.org/infoseek.cgi?regexp=^Tornado+Assembler$&pub=^Roelof+Koning$

5) ZX makine kodunu öğrenmek için Complete Machine Tutor faydalı:
http://www.worldofspectrum.org/infoseek.cgi?regexp=^Complete+Machine+Code+Tutor%2c+The$&pub=^New+Generation+Software$

6) Cross assembler: TommyGun (code/grafik editörü) ile kullanılan PASMO(Derleyici), PC üzerinde z80 binaryleri oluşturmak için.
http://ftp://ftp.worldofspectrum.org/pub/sinclair/tools/pc/TommyGun0.9.11.exe
http://www.arrakis.es/~ninsesabe/pasmo/

7) SPIN Assembler: ZX spin aslında bir emülatör, fakat içindeki assembleri birçok programcı kullanıyor. Herşeyden önce yazdığınızı anında görüyorsunuz. Güzel birşey
http://ftp://ftp.worldofspectrum.org/pub/sinclair/emulators/pc/windows/SPIN0504.zip

Karizmatik Grafik dönüştürmek için BMP2SCR exp, çizmek için ZX paintbrush öneriyorum.
http://ftp://ftp.worldofspectrum.org/pub/sinclair/tools/pc/BMP2SCR_EXP_2.11a.zip
http://home.arcor.de/clausjahn/spectrum/

9) Müzik yapmak için malesef çok fazla seçeneğimiz yok, Windowsta Vortex Tracker var. Spectrumda yaparım müziği diyorsanız bin tane seçenek var, ama böylesi daha kolay.
http://bulba.at.kz/vortex_e.htm
« Son Düzenleme: Kasım 19, 2006, 03:38:12 ÖÖ Gönderen: Arda » Logged

nightlord
Uzman
*****
Mesaj Sayısı: 558



Üyelik Bilgileri WWW
« Yanıtla #1 : Ocak 24, 2007, 00:56:02 ÖÖ »

Arda: Speccy'nin memory map'i I/O registerlari vs icin dokumantasyon onerebilir misin?
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #2 : Ocak 24, 2007, 16:36:51 ÖS »

Tüm dökümanlar burda:
http://www.worldofspectrum.org/documentation.html

Bu bellek haritası üzerine bilgi:
http://www.worldofspectrum.org/faq/reference/128kreference.htm#ZX128Memory

z80 işlemciler üzerine bir faq:
http://z80.info/

eğer rom rutinlerini kullanacaksanız, geoff'un tam açıklamalı rom disassembly'sini okumanızı tavsiye ederim, spectrum'un iç çalışması hakkında örnek de oluyor:
http://www.wearmouth.demon.co.uk/

Spectrum çok karmaşık bir makina değil, ULA dışında bir custom chip de yok, ULA da kendi halinde takılıyor zaten Dökümanlarda pek bulunmayan bazı register ve flag'ler hakkında bilgiler (eski biraz ama):

http://fms.komkon.org/stuff/spectrum.faq

Sanırım spectrum'la ilgili bilinmesi gereken en önemli trick Contended memory. Bu (çok kabaca) şu demek, ULA görüntüyü oluşturmak için belleğin ikinci bloğundan (16384'den itibaren 6912 byte) bilgiyi okuyor. Bu sırada memory bus'ı kullandığı için, spectrum'un 16K'lık bölümü diğer bellek alanlarına göre %30 civarında yavaş. Contended memory hakkında daha detaylı bilgi yukarıdaki dökümanlarda vardır sanırım. Fakat bu trick sayesinde spectrumda colour clash dediğimiz renk bloklaşmasını aşabiliyoruz.

Önerdiğim kitaplar:
http://ftp://ftp.worldofspectrum.org/pub/sinclair/books/SpectrumMachineLanguageForTheAbsoluteBeginner.pdf
http://ftp://ftp.worldofspectrum.org/pub/sinclair/books/AssemblyLanguageForArcadeGamesAndOtherFastSpectrumPrograms.pdf
http://ftp://ftp.worldofspectrum.org/pub/sinclair/books/ProgrammingTheZ80_2ndEdition.pdf
http://ftp://ftp.worldofspectrum.org/pub/sinclair/books/SuperChargeYourSpectrum.pdf
http://ftp://ftp.worldofspectrum.org/pub/sinclair/books/CompleteSpectrumROMDisassemblyThe.pdf
Logged

nightlord
Uzman
*****
Mesaj Sayısı: 558



Üyelik Bilgileri WWW
« Yanıtla #3 : Ocak 24, 2007, 22:22:03 ÖS »

selam arda,

demolarda rom rutinleri ne kadar kullaniliyor genelde. yani grafik efektler icin romdaki plot vs mi tercih ediliyor yoksa insanlar $4000den sonraki adreslere kendileri yazmayi mi tercih ediyor. baska bi deyisle rom rutinleri ne kadar efektif yazilmis. oturup ogrenmeye deger mi? yoksa z80 assembly ogreneyim yeter, nasilolsa kendim yazmam gerekecek demek mi lazim (mesela c64'teki basic rom rutinlerinin demo yaparken hicbir ise yaramamasi gibi mi)
Logged
hades
Üye
****
Mesaj Sayısı: 337



Üyelik Bilgileri
« Yanıtla #4 : Ocak 24, 2007, 23:38:15 ÖS »

merhabalar
mesajları okurken 1985-87 yılında kullandığım 48-k spectrumum ve z80 asm yazdığım günler aklıma geldi. elo elektronik dergisinden kendi kendime öğrendiğim z-80 asm ile ve spectrumun el kitabından spectrumun bellek haritasını iyice öğrenip asm programlar yapmıştım. kasetten oyunun headerini yükledikten sonra çıkan ekran resmini olduğu gibi başaşağı çevirmiştim. o zamanlar yok denecek kadar az olan kaynaklarla bu işi nasıl yaptığımı hatırladıkça gülümsüyorum. ne günlermiş o günler..
şimdi bile masanın altındaki kolide 1 adet 128K+2 duruyor. sadece bir adaptör yapmam yeterli. birde 1084'e uygun bir bağlantı yapabilsem acaba 20 sene öncesine dönebilirmiyim.
klavyede "K" "L" "E" modu falan tek tuşla basic komutları....
makina dilinde RST 0 komutu veya basicten PRINT USR 0 veya RANDOMIZE USR 0....
CLEAR 63999:LOAD""SCREEN$ bunlar kalmış aklımda...
Neyse tüm 8 bit sevdalılarına selamlar..

Unutmadan C64 SPECTRUM'u döver. Bir zamanların ünlü tartışmaları. Hangi bilgisayar daha iyi. Benimkinin hafızası şu kadar, şöyle hızlı, böyle özellikleri var......

Bir anda nostalji yaşadım....
Kalın sağlıcakla...
Logged
Alcofribas
Uzman
*****
Mesaj Sayısı: 986


Who Dares Wins!


Üyelik Bilgileri
« Yanıtla #5 : Ocak 25, 2007, 00:16:03 ÖÖ »

Arda sağolsun beni epey aydınlatmıştı Spectrum'u 1084'e nasıl bağlayacağım konusunda. Yaptım, her model de canavar gibi çalışıyor. İlgilenirseniz link aşağıda

http://www.commodore.gen.tr/forum/index.php?topic=238.0

Şu ELO'lar da ne mübarek dergidir, her işe yarar...Yadetmeden geçmeyelim...
Logged

Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #6 : Ocak 25, 2007, 01:19:22 ÖÖ »

demolarda rom rutinleri ne kadar kullaniliyor genelde. yani grafik efektler icin romdaki plot vs mi tercih ediliyor yoksa insanlar $4000den sonraki adreslere kendileri yazmayi mi tercih ediyor. baska bi deyisle rom rutinleri ne kadar efektif yazilmis. oturup ogrenmeye deger mi? yoksa z80 assembly ogreneyim yeter, nasilolsa kendim yazmam gerekecek demek mi lazim (mesela c64'teki basic rom rutinlerinin demo yaparken hicbir ise yaramamasi gibi mi)

aynen öyle, rom rutinleri genellikle bir işe yaramıyor. Size coding yaparken kullanılan bazı adresler var, örneğin ekrandaki pixelin hangi adrese denk geldiğini veren rutinler gibi.

Fakat makinenin işleyişini çözme aşamasında yardımcı olabilir diye verdim yanında.

@hades:
USR 0 komutu 128Basic editörünü bellekten çıkarıp 48K moduna düşüyor, ama hala 128K'yı kullanabiliyorsun. Amstrad'ın 128 basic editörünü rom'a eklemek için yaptığı hack'leri kimse sevmediğinden, 128K moduna geçip hemen USR 0 yazarak editörü hallediyorlar. Makine tamamen coder'in eline kalıyor Kahkaha
« Son Düzenleme: Ocak 25, 2007, 01:25:27 ÖÖ Gönderen: Arda » Logged

Skate
Uzman
*****
Mesaj Sayısı: 1.464


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #7 : Ocak 25, 2007, 01:33:06 ÖÖ »

@Arda: Ben daha çok Amstrad CPC 464 ile ilgilendim ancak şu Amstrad Sinclair ile ilişkisini bir türlü çözememişimdir. Şimdi 48K'lık Sinclair modelleriyle Amstrad CPC arasında ne tür bağlantılar var bana onu açıklayabilir misin? Yani ikisi de z80 işlemciye sahip ok (galiba CPC z80a idi ama sonuçta çok büyük fark olmasa gerek). Peki yapısal olarak alakasız aletler mi yoksa Amstrad'ın Sinclair serisi ile benzerlikler içeriyorlar mı?
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #8 : Ocak 25, 2007, 02:56:54 ÖÖ »

@skate:
spectrumlarda da z80A var zaten. Amstrad CPC ile Spectrum ilişkisi burda noktalanıyor aslında. CPC spectruma göre daha gelişkin bir alet ama fiyatı bunu karşılamıyor o dönemde. CPC'de daha fazla renk ve donanımdan scrolling var, ama problem şu ki spectrum ve CPC'nin işlemci hızı aynı. Bu durumda programcılar bir oyunu spectrum'dan port ettiklerinde eğer grafikleri geliştirmek isterlerse oyunun hızı ciddi şekilde düşüyordu. Bu sebeple genellikle amstrad oyunları spectrum'dan direk port oluyordu ve amstradcılar haklı olarak bundan bayağı şikayetçiydiler. Fakat okuduklarıma göre CPC'nin hedef kitlesi oyuncular değilmiş zaten. Sonuçta o dönemde spectrum'un oyun yelpazesi genellikle orjinal, benzersiz oyunlarla doluydu. Yani ordan burdan port edilmekten çok, önce spectrum'a yazılan oyunlar vardı piyasada. Fiyat da işin içine katılınca, oyuncular spectrum alma yolunu seçmiş olmalı. Amstrad'ın hakkını veren birkaç oyun var elbette, keşke hepsi öyle olsalardı. Sonuçta amstrad bazen abimiz, bazen küçük kardeşimizdir

Fakat zx spectrum 128k modeli çıktıktan sonra, amstrad zx spectrum markasını ve tüm haklarını satın alıyor. Hemen peşine +2 ve +3 modellerini çıkartıyor. +2 modeli çok tutuluyor, amstrad ile spectrum arasındaki bağ böylece iyice sıkılaşmış oluyor. Kanımca amstrad'ın çıkardığı spectrumlar gayet kaliteliydiler. Keşke ufak bir iki müdahale etselermiş diyorum. En azından renk paletini customize edebilseydik müthiş bişey olurdu.
Logged

Skate
Uzman
*****
Mesaj Sayısı: 1.464


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #9 : Ocak 25, 2007, 05:29:03 ÖÖ »

Öncelikle verdiğin bilgiler için teşekkürler Arda. Niye Amstrad CPC'yi sorduğuma gelince...

1) Bu güne kadar yakından uzaktan z80 işlemcisi olan bir aletle ilişkim olmasa da gereksiz ilgiden dolayı z80 assembler öğrendim. Yanılmıyorsam kapağında yalnızca "Assembler" yazan bir kitap dikkatimi çekmişti yıllar önce ve içeriğine bile bakmadan almıştım. Daha sonra z80 olduğunu görmüştüm

2) Amstrad CPC scene'ini Optimus isimli Yunanlı bir scener yüzünden takip ediyorum. Benim sevdiğim bir scenerdır ve genellikle onun yayınladığı şeyleri takip ederim. Amstrad'da da releaseler yapıyordu.

3) Bu arada Amstrad CPC üzerinde maksimum BOB basma rekoru diye bir olay başladı. Tipin teki çıktı "ben rekor kırdım" dedi. Bir sonraki "bak ben de senin rekorunu kırdım" v.s. bu iş bir süre devam etti. Sanırım en son rekor bu ( http://www.pouet.net/prod.php?which=26263 ). Ben de "aslında şunların bir eline vermek fena olmaz" diye düşünüp biraz incelemeye başladım Amstrad'ı.

4) Elimde bir Amiga 2000 vardı ama Amigacı olmadığım için benden daha çok hak eden birine hediye etmek istiyordum. Vigo da o sıralar Amiga 2000 arıyormuş şansa. Ben de O'na hediye ettim büyük bir zevkle. O sırada bir Amstrad CPC muhabbeti geçti ve Vigo elinde Amstrad CPC 464 olduğunu ve bana verebileceğini söyledi. Henüz elime geçmedi ama aslında bir Amstrad CPC 464'üm var yani

5) Justin isminde hastası olduğum bir yine sceneden çıkma Amstrad CPC oyunu var. ( http://www.pouet.net/prod.php?which=20588 )

Tüm bu sebepler beni Amstrad CPC'ye yöneltti. Yoksa hala çok birşey bilmiyorum hakkında.
Logged
vigo
Ziyaretçi
« Yanıtla #10 : Ocak 26, 2007, 01:19:43 ÖÖ »

@skate : var kardeşim var, haklısın... makine teyzemlerin tavan arasında, gündüz gözüyle bi gidip aliiim de verim onu sana kardeşim ya....
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.464


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #11 : Ocak 26, 2007, 02:07:15 ÖÖ »

Nightshift'de teslim alırım aleti. Hatta hatta party mekanında ilk kez elimi sürdüğüm bir makineyle on the fly birşeyler üretip yayınlamayı falan denerim (compoya sokmiicam tabii ki hehe).
Logged
Arda
Uzman
*****
Mesaj Sayısı: 2.326


I'm *the* guy from Argleton


Üyelik Bilgileri WWW
« Yanıtla #12 : Nisan 02, 2007, 00:30:00 ÖÖ »

5) Justin isminde hastası olduğum bir yine sceneden çıkma Amstrad CPC oyunu var. ( http://www.pouet.net/prod.php?which=20588 )


aynı oyunun speccy versionunu da yaptılar aynı adamlar:
http://cpce.emuunlim.com/cpc_zip.htm
Logged

witchdoktor
Uzman
*****
Mesaj Sayısı: 5.273



Üyelik Bilgileri
« Yanıtla #13 : Nisan 02, 2007, 11:13:07 ÖÖ »

Eskiden beri CPC'ye ilgim vardı, zaman zaman imrenme düzeyinde (C64'de olmayan bazı özellikleri için; 80 kolon, 640x200 çözünürlük, 320x200'de 4 renk kullanımı, 27 renklik palet, linear framebuffer (C64'ün charmap tabanlı salak bitmap bellek düzeni gibi değil yani), stereo ses, Z80A@4MHz, kaliteli ve interrupt'ları destekleyen basic), bu nedenle zaman zaman emülatörlerini denerim ama uzun zamandır bırakmıştım.

Bahsi geçen intro ve justin'i denemek için WinAPE'yi yükledim ama win32 için en iyi Amstrad emülatörü hangisi şu anda? WinAPE'de görüntü filtreleme vb özellikleri göremedim, destekleyenler var mı?

Bence CPC464'ün C64'e en büyük eksileri; çok renkli karakter modunun olmayışı (ki C64'de oyunların çoğu bu modu kullanır ve hires&multicolor karakterlerin bir arada kullanılabilmesine imkan tanır), hardware sprite'ların yokluğu, sunduğu kaliteli Basic nedeniyle kullanıcıların C64'de olduğu gibi doğrudan makine diline yönelmeyişi, C64'den yaklaşık 2 yıl kadar geç piyasaya sürülmesi, yüksek fiyatı ve daha çok profesyonel bir cihaz olarak lanse edilmesidir.

Her iki CPU'nun da artıları ve eksileri var. 6510 zamanının bir RISC çipi gibi az komutlu (56), pipelined ve komutları az cycle ile işleyebilen bir CPU idi, her bir opcode 1 byte olduğundan, basit ve yoğun math gerektirmeyen işlerde oldukça efektifti (MHz başına ve kod kısalığı açısından). Z80 ise clockrate olarak oldukça hızlı idi ve register'lar 16bit olarak eşli kullanılabildiğinden, math ve kompleks kodlarda avantajlı idi ancak basit rutinlerde 65XX ailesine göre kod uzunluğu ve MHz başına işleyebildiği komut sayısı daha azdı.

Hatalarım vardır muhtemelen, bu konuda sizin düşünceleriniz neler?

C64/CPC464 ve 6510/Z80 konusunda artılar ve eksiler nelerdir sizce?
Logged
Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: