09.03.2014 edit: ilgili paketin hazır hali şu başlıkta paylaşılmıştır: http://retrojen.org/pano/index.php?topic=539.msg4197#msg4197 Download
Crimson editörün admin olmayan kullanıcılarda bazı kullanım zorlukları bulunduğundan dolayı context ile değiştirilmiştir.
Zx Spectrum'a Assembler ile girişmek istiyorsanız ben kendi kullandığım yöntemi buraya yazıyorum, daha iyisini bulan varsa lütfen eklesin:
Benim kullandığım toolchain pasmo+crimson editör+specemu'dan oluşuyor. Yıllardır spectrum coderları ile konuşuyorum, üzerinde uzlaşılmış ideal bir ortam yok. Neden bu üçlüyü tercih ettiğimi şöyle açıklayayım:
Pasmo, özellikle zx spectrum düşünülerek geliştirilmiş bir derleyici. İşini de çok iyi yapıyor, derleyiciyi yazan arkadaş wos forumlarının en aktif kullanıcılarından biri.
Specemu, bugünlerde 3.0 sürümü çıktı. Gerçek makine davranışına en yakın emülatör. Çok sade, multiface ve çeşitli disk emülasyonu dışında hiçbir aksesuarı desteklemiyor, hatta joystick desteği bile yok. Fakat, eğer yazdığınız program specemu üzerinde çalışıyorsa, gerçek bir spectrumda da aynı şekilde çalışacaktır. Ayrıca Specemu'da eşsiz bir Debugger mevcut. Çok acaip noktalara çok acaip şekillerde breakpoint koyabiliyorsunuz. Örneğin ekran çizilmeden önceki son frame'de, rom'dan ayrılırken, belli bir yere yazma ya da okuma yapıldığında, interrupt başında vs. Specemu'ya bu konudaki tek alternatif WinFuse gibi görünüyor, ama o da çok karmaşık bir emülatör, yani seçim specemu.
Crimson Editor ise güzel bir editör, elbette başka bir editör kullanabilirsiniz, bundan önce Context kullanıyordum, windows7 ile birlikte pencere boyutlarında tuhaflıklar çıkmaya başladı ve kod penceresini ikiye bölme gibi bir özellik yok, bundan dolayı crimson editör'e geçtim.
BAŞLANGIÇDownload ve Kurulum:Pasmo 0.53 400kb
Specemu 3.0 900kb
Crimson Editor 2.86 1.4MB
Crimson Editörü setupından kuruyoruz, Pasmo ile Specemu'yu path'i kısa olan bir klasöre (örn: D:\dev\z80\ altına) açıyoruz, aynı klasördeymiş gibi anlatacağım, siz ayarlarsınız.
AYARLARCrimson editör'ü çalıştırıyoruz.
Önce ASM tipi olarak z80'i öncelikli yapalım. Yoksa intel 8080'i seçiyor crimson.
* Üstteki menülerden Document > Syntax Type > Customize... seçiyoruz.
* Açılan pencerede sol taraftaki Syntax Type liste kutusunda aşağılara kayarak "-Empty-" soketi bulup seçiyoruz.
*Kutucukları şöyle dolduruyoruz (aşağıdan direkt copy-paste yapabilirsiniz, ya da browse edip dosyaları gösterebilirsiniz):
Description : Z80 Asm
Lang. Spec: Z80-ASM.SPC
Keywords: Z80-ASM.Key
* Oluşturduğumuz yeni z80 asm slotunu YUKARI OK butonuna basarak en üste taşıyoruz.
OK butonuna basarak pencereyi kapatıyoruz.
Menüde üstteki gibi görebilmemiz gerek. Artık Autodetect olarak bırakabiliriz buradaki ayarı, asm dosyalarını z80 olarak görecektir, görmezse de gidip kolayca elle seçebiliriz.
Sırada PASMO'yu eklemek var:Şimdi yine üst menüden TOOLS > "Conf. User Tools" seçeneğini seçiyoruz.
Aşağıdaki preferences penceresi görünecek:
* Resimde 1 numara ile işaretlenmiş "user tool | hot key" şeklinde gösterilen liste kutusunda "-EMPTY-" yazan bir soket buluyoruz ve onu seçiyoruz.
* 4 numaralı "Menu Text" kısmına "Compile with Pasmo" yazıyoruz.
* Command kısmının yanında 3 ile gösterilen butona basıyoruz ve PASMO.exe'yi koyduğumuz klasörde bulup seçiyoruz. O kutucukta örneğimize göre şöyle yazmalı:
D:\dev\z80\pasmo.exe* Hemen altında 5 ile işaretli "ARGUMENT" kutusuna aynen şunu yazıyoruz:
-v --tapbas $(FilePath) $(FileDir)\$(FileTitle)_out.tap
* bir altındaki 6 ile işaretli "INITIAL DIR" kısmına $(FileDir) yazıyoruz.
* Hotkey kutusuna klikleyip, kutucuk aktif iken ctrl+1 tuşlarına basarak bu görevi ctrl+1 kombinasyonuna atıyoruz.
* Capture Output (8) ve Save before execute(9) seçiyoruz.
* Resimde 2 ile işaretli yukarı butonuna basarak bu aracımızı listenin üstüne taşıyoruz (eğer altta kaldıysa).
* Save Tools diyoruz (bazen kaybolabiliyor toollar) ve bu ayarımızı bir isim altında kaydediyoruz.
* Pencereyi KAPATMIYORUZ.
Şu anda pasmo hazır olmalı. Ama listeye pasmo'nun çıktısını hızla test etmemize yardımcı olacak olan
specemu'yu da ekleyelim.* Resimde 1 numara ile işaretlenmiş "user tool | hot key" şeklinde gösterilen liste kutusunda "-EMPTY-" yazan yeni bir soket buluyoruz ve onu seçiyoruz.
* 4 numaralı "Menu Text" kısmına "Run with Specemu" yazıyoruz.
* Command kısmının yanında 3 ile gösterilen butona basıyoruz ve specemu.exe'yi koyduğumuz klasörde bulup seçiyoruz. O kutucukta örneğimize göre şöyle yazmalı:
D:\dev\z80\specemu.exe* Hemen altında 5 ile işaretli "ARGUMENT" kutusuna aynen şunu yazıyoruz:
$(FileDir)\$(FileTitle)_out.tap
* bir altındaki 6 ile işaretli "INITIAL DIR" kısmına $(FileDir) yazıyoruz.
* Hotkey kutusuna klikleyip, kutucuk aktif iken ctrl+2 tuşlarına basarak bu görevi ctrl+2 kombinasyonuna atıyoruz.
* Capture Output (8) ve Save before execute(9) seçiyoruz.
* Resimde 2 ile işaretli yukarı butonuna basarak bu aracımızı listenin üstüne taşıyoruz (eğer altta kaldıysa).
* Bu sefer son olarak Save Tools diyoruz ve bu ayarımızı bir isim altında kaydediyoruz.
* OK ile bu pencereyi kapatıp çıkıyoruz.
Artık ctrl 1 ve 2 tuşlarına pasmo ve specemu'yu eklemiş olduk. Aynı şekilde TOOLS menüsünü açarsanız artık iki ayrı menü göreceksiniz.
Fakat daha bitmedi.
Şimdi specemu'yu uygun şekilde ayarlayalım:Options > Options (f8) menüsüne giriyoruz şu seçenekleri ayarlıyoruz:
Display:ULA Snow effect
Enable Vsync
Show Tape Disk icons in the border
Bu üç kutucuk seçili olsun, diğerlerini temizleyin.
Sound:Output: Mono
High Quality AY emulation
None
22khz
diğer kutucuklar boş
Hardware:ZX Spectrum 48k ve 128k için ZX Spectrum +2 dışında bir model kullanmayın.
Use late timings for this model
Diğer tüm kutucuklar boş
Tape:Burası önemli, BOOST opsiyonları dışındaki tüm kutucukları işaretleyin.
Advanced:En alttaki Ask before exiting specemu kutucuğunu tercihen temizleyin.
Ok diyerek çıkın ve emülatörü kapatın. Ayarlarınızı otomatik olarak kaydedecektir.
Artık çalışmaya hazırız.
Hemen şu test programını deneyelim:org 40000 ;Başlangıç adresi
Call $0D6B ;Ekranı temizler (Basic CLS)
ld de,16384 ;Ekran belleğinin adresi
ld hl,3000 ;Rom'daki rastgele bir nokta, veri kopyalayacağız
ld bc,2048 ;Kopyalanacak veri uzunluğu
ldir ;LoaD with Increment and Repeat (bu kopyalamayı yapan komut)
end 40000 ;Bu pasmo'ya otomatik bir loader eklemesini söyleyen komut. 40000 ise başlangıç adresi oluyor.
Yukarıdaki kodu crimson editörde boş bir sayfa oluşturup içine yapıştırıyoruz, hemen dosyayı kaydediyoruz, örneğin "karmasa.asm" olarak.
Daha sonra CTRL+1 tuşuna basarsanız şöyle bir metin görünecek editörün altında:
Terminated with exit code 0 gördüyseniz hatasız derlenmiş demektir. Pasmo bizim için bir TAP dosyası yarattı bile. Dosyayı asm dosyasını kaydettiğiniz klasörde bulabilirsiniz. Ama bununla uğraşmayalım diye specemu'yu ayarlamıştık:
Şimdi CTRL+2 tuşuna basıp biraz bekliyoruz, specemu açılıyor, açıldığı gibi dosyamızı otomatik olarak yükleyip kodu da otomatik olarak çalıştırması lazım. Ekranda karmaşık bir görüntü göreceksiniz, rom datasını ekrana kopyaladığımız için parazitten başka birşey yok:
Bitti.
Son olarak win7 kullanıcıları için Crimson Editör her açılışta admin onayı istiyor. Bunu kapatmak mümkün ama bunun için Microsoft Compatibility Administrator isimli programı indirip kurmanız gerek. Bununla uğraşmak istemeyenler için Context ayarlarını da çok kısa geçeceğim:Context kullanıyorsanız, aynı ayarları şöyle yapıyoruz:Options > Environment Options > Execute Keys >
ADD butonuna bas, "
asm" (küçük harfle) ekle.
Listede asm kategorisi görünecek, onun altındaki F9'u seç:
Execute: pasmo.exe
Start in: D:\dev\z80\
parameters: -v --tapbas %n %p\%F_out.tap
Window: normal
Hint: boş
Save: Current file before execution
Use short dos names seçili
Capture Console Output seçili
Compiler output parsel rule boş
Scroll Console seçili
Idle Priority boş
[APPLY] butonuna bas,
Sonra .asm altındaki F10'u seç:
Execute: Specemu.exe
Start in: D:\dev\z80\
parameters: %p\%F_out.tap
diğerleri üstteki gibi.
Burada F9 ile asm dosyalarını derliyor, F10 ile specemu'ya atıyoruz.
Benden bu kadar.
Daha pratik yöntemler vardır mutlaka, fakat ben çok yoğun bir asm kullanıcısı olmadığım için bukadar bulabildim. Kolay gelsin.
Bu metne aksesuar olarak şunları iliştirmek istiyorum, aslında konu ile alakaları pek yok:
Z80 için sprite geliştrmek için 7up kullanabilirsiniz.
ftp://ftp.worldofspectrum.org/pub/sinclair/tools/pc/SevenuP-v1.20-win.zipGrafik çizmek için ZX Paintbrush:
http://www.zxmodules.de/zxpaintbrush/download.htmlMüzik için PC üzerinde Vortex Tracker II var, genel olarak Sound Tracker gibi spectrum tabanlı programlar kullanılır.
ftp://ftp.worldofspectrum.org/pub/sinclair/music/players-pc/VT1.0beta14.zip