Geri Dön
Z80 REPL: Z80 assembly komutlarını tarayıcıda çalıştırın
SiTech AI Team2 წთ. საკითხავი

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.

Z80 REPL demosu: kaydedici paneli, bellek görünümü ve komut satırı

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.

SSiTech

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.