
Z80 REPL: Z80 assembly komutlarını tarayıcıda çalıştırın
ABA Games, tek bir Z80 assembly komutunu yazıp anında çalıştırmanıza ve kaydediciler, bayraklar ile bellekteki değişimi görmenize olanak tanıyan z80-repl'i yayımladı. MIT lisanslı proje tamamen tarayıcıda çalışıyor.
ABA Games, Z80 işlemcisi için küçük bir tarayıcı ortamı olan z80-repl'i yayımladı. abagames.github.io/z80-repl adresinde çalışan araç, klasik sekiz bitlik işlemciyi etkileşimli bir isteme dönüştürüyor: tek bir assembly komutu yazıp Enter'a basıyorsunuz; komut anında makine koduna çevrilip çalıştırılıyor ve kaydediciler, bayraklar ile bellekteki değişim ekranda görünüyor.
Emülatör penceresi değil, assembly istemi
Sayfa üç metin paneline ayrılmış. Üstteki panel 64 KB'lık adres uzayının ilk 256 baytını, sağında ASCII sütunu bulunan 16×16'lık onaltılık bir tablo olarak gösteriyor; PC, SP, HL, BC, DE, IX ve IY değerlerine karşılık gelen hücreler farklı renklerle işaretleniyor. Altında kaydedici paneli var: A, B, C, D, E, H, L, IX, IY, PC, SP, I ve R kaydedicileri ile S Z Y H X P N C bayrakları, her biri kurulu ya da temiz durumuyla. Üçüncü panel ise REPL'in kendisi: bir xterm.js terminali.
Yardım satırı çalışma modelini açıklıyor: “Input a Z80 instruction and press the [enter] to run it”, örnek olarak ld c,20h, add a,c ve push bc veriliyor. Komut, program sayacının gösterdiği adreste belleğe yazılıyor, ardından emülatör çekirdeği tarafından yürütülüyor; REPL de ortaya çıkan opcode baytlarını çevrim sayısıyla birlikte yazdırıyor. Tab tuşu yazdığınız metne uyan komutları listeliyor, yukarı ve aşağı oklar komut geçmişinde gezinmenizi sağlıyor.
Adım adım çalıştırma, döngüler ve sınırlar
Boş satırda Enter'a basmak, PC'de duran komutu çalıştırıyor; bu da aracı kısa rutinler için hata ayıklayıcı olarak kullanmayı mümkün kılıyor. Komut program sayacını ilerletmiyorsa — örneğin HALT — REPL onu 64 kez çalıştırıp “Looping 64 times. Press the [enter] to continue.” mesajını veriyor. Tanınmayan bir anımsatıcı için sessizce başarısız olmak yerine “unknown instruction” uyarısı çıkıyor.
Makine modeli bilinçli olarak yalın: bellek, banka olmadan düz 64 KB'lık bir dizi, giriş/çıkış geri çağrıları ise okumada sıfır döndüren ve yazmayı yok sayan boş fonksiyonlar. Yani burada port, görüntü ya da ses donanımı yok. Başlangıçta PC 0x80, SP ise 0xF0 değerine ayarlanıyor.
Neyin üzerine kurulu
Proje TypeScript ile yazılmış; terminal görüntüleme için xterm.js ile birlikte DrGoldfire'ın Z80.js emülatör çekirdeğini kullanıyor. Her şey tek bir betikte paketlenip GitHub Pages üzerinden sunuluyor, yani sunucuda hiçbir kod çalışmıyor. Depo MIT lisansı taşıyor ve Eylül 2018 tarihli.
Retro geliştiriciler ve öğrenciler için önemli olan tam da bu bileşim. Z80; ZX Spectrum, MSX, Amstrad CPC ve Sega Master System gibi makinelerde kullanıldı ve tek bir komutu çalıştırıp bayrakların nasıl değiştiğini görmek, mimariyi öğrenmenin hızlı bir yolu.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.