
Z80 REPL: Z80 assembly təlimatlarını birbaşa brauzerdə işlədin
ABA Games z80-repl alətini yayımlayıb: brauzerdə tək bir Z80 assembly təlimatını yazıb dərhal işlətmək və registrlər, bayraqlar və yaddaşdakı dəyişikliyi görmək mümkündür. MIT lisenziyalı layihə tamamilə müştəri tərəfində işləyir.
ABA Games Z80 prosessoru üçün kiçik brauzer mühiti olan z80-repl-i yayımlayıb. abagames.github.io/z80-repl ünvanında işləyən alət klassik səkkiz bitlik prosessoru interaktiv sorğu sətrinə çevirir: bir assembly təlimatı yazıb Enter basırsınız, təlimat həmin anda maşın koduna çevrilir və icra olunur, registrlər, bayraqlar və yaddaşdakı dəyişiklik isə ekranda görünür.
Emulyator pəncərəsi deyil, assembly sorğusu
Səhifə üç mətn panelinə bölünüb. Üst panel 64 KB-lıq ünvan məkanının ilk 256 baytını sağında ASCII sütunu olan 16×16 ölçülü onaltılıq cədvəl kimi göstərir; PC, SP, HL, BC, DE, IX və IY dəyərlərinə uyğun xanalar müxtəlif rənglərlə işarələnib. Altında registr paneli var: A, B, C, D, E, H, L, IX, IY, PC, SP, I və R registrləri, həmçinin S Z Y H X P N C bayraqları — hər biri qurulmuş və ya sıfırlanmış vəziyyətdə. Üçüncü panel REPL-in özüdür: xterm.js terminalı.
Kömək sətri iş modelini izah edir: “Input a Z80 instruction and press the [enter] to run it” — ld c,20h, add a,c və push bc kimi nümunələrlə. Təlimat proqram sayğacının göstərdiyi ünvanda yaddaşa yazılır, sonra emulyator nüvəsi onu icra edir və REPL yaranan opcode baytlarını tsikl sayı ilə birlikdə çap edir. Tab düyməsi yazdığınıza uyğun təlimatların siyahısını göstərir, yuxarı və aşağı oxlar isə əmrlər tarixçəsində hərəkət etməyə imkan verir.
Addım-addım icra, döngələr və məhdudiyyətlər
Boş sətirdə Enter basmaq artıq PC-də duran təlimatı icra edir; bu da aləti qısa rutinlər üçün sazlayıcı kimi istifadə etməyə imkan verir. Təlimat proqram sayğacını irəli aparmırsa — məsələn, HALT — REPL onu 64 dəfəyə qədər işlədir və sonra “Looping 64 times. Press the [enter] to continue.” mesajını verir. Tanınmayan mnemonika üçün isə səssizcə uğursuz olmaq əvəzinə sadə “unknown instruction” xəbərdarlığı çıxır.
Maşın modeli qəsdən minimaldır: yaddaş banklara bölünməyən düz 64 KB massivdir, giriş/çıxış funksiyaları isə boşdur — oxuma sıfır qaytarır, yazma nəzərə alınmır. Yəni burada port, video və ya səs avadanlığı yoxdur. Başlanğıcda PC 0x80, SP isə 0xF0 dəyərinə bərabərdir.
Nə üzərində qurulub
Layihə TypeScript ilə yazılıb və terminal göstərimi üçün xterm.js ilə birlikdə DrGoldfire-ın Z80.js emulyator nüvəsindən istifadə edir; hər şey tək skriptdə birləşdirilib və GitHub Pages-dən verilir, yəni serverdə heç bir kod işləmir. Repozitoriya MIT lisenziyası daşıyır və 2018-ci ilin sentyabrına aiddir.
Retro developerlər və tələbələr üçün əsas məqam elə bu birləşmədir. Z80 ZX Spectrum, MSX, Amstrad CPC və Sega Master System kimi maşınlarda olub; bir təlimatı işlədib bayraqların necə dəyişdiyini görmək arxitekturanı öyrənməyin sürətli yoludur.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.