
Z80 REPL: تعليمات لغة التجميع لمعالج Z80 داخل المتصفح مباشرة
نشرت ABA Games أداة z80-repl، وهي بيئة تعمل في المتصفح تتيح كتابة تعليمة تجميع واحدة لمعالج Z80 وتشغيلها فورًا ومشاهدة أثرها على السجلات والأعلام والذاكرة. المشروع برخصة MIT ويعمل بالكامل على جهة العميل.
نشرت ABA Games أداة z80-repl، وهي بيئة صغيرة في المتصفح تعمل مع معالج Z80. الأداة المتاحة على العنوان abagames.github.io/z80-repl تحوّل المعالج الكلاسيكي ذا الثماني بتات إلى سطر أوامر تفاعلي: تكتب تعليمة تجميع واحدة، وتضغط Enter، فتُجمَّع التعليمة وتُنفَّذ على الفور، مع عرض أثرها على السجلات والأعلام والذاكرة على الشاشة.
سطر تجميع وليس نافذة محاكي
تنقسم الصفحة إلى ثلاث لوحات نصية. تعرض اللوحة العليا أول 256 بايت من فضاء العناوين البالغ 64 كيلوبايت على شكل شبكة 16×16 بالنظام الست عشري، مع عمود ASCII على اليمين؛ وتُبرز القيم المقابلة لـ PC وSP وHL وBC وDE وIX وIY بألوان مختلفة. وتحتها لوحة السجلات: A وB وC وD وE وH وL وIX وIY وPC وSP والسجلان I وR والأعلام S Z Y H X P N C، كل منها في حالة ضبط أو إلغاء. أما اللوحة الثالثة فهي الـ REPL نفسه، وهو طرفية xterm.js.
يوضح سطر المساعدة نموذج العمل: “Input a Z80 instruction and press the [enter] to run it”، مع أمثلة مثل ld c,20h وadd a,c وpush bc. تُكتب التعليمة في الذاكرة عند عنوان عدّاد البرنامج، ثم ينفذها نواة المحاكي، ويطبع الـ REPL بايتات الشيفرة الناتجة مع عدد الدورات. ويعرض مفتاح Tab قائمة بالتعليمات المطابقة لما كتبته، بينما تنقلك الأسهم لأعلى وأسفل في سجل الأوامر.
التنفيذ خطوة بخطوة والحلقات والحدود
الضغط على Enter في سطر فارغ ينفّذ التعليمة الموجودة أصلًا عند PC، ما يجعل الأداة صالحة كمنقّح للبرامج القصيرة. وإذا لم تغيّر التعليمة عدّاد البرنامج — مثل HALT — يشغّلها الـ REPL حتى 64 مرة ثم يعلن: “Looping 64 times. Press the [enter] to continue.”، أما التعليمات غير المعروفة فتظهر لها رسالة بسيطة: “unknown instruction”.
نموذج الآلة بسيط عن قصد: الذاكرة مصفوفة مسطّحة بحجم 64 كيلوبايت دون تقسيم إلى بنوك، ودوال الإدخال والإخراج فارغة — القراءة تعيد صفرًا والكتابة تُهمَل. أي لا توجد هنا منافذ ولا عتاد فيديو أو صوت. عند البدء يُضبط PC على 0x80 وSP على 0xF0.
على ماذا بُني
كُتب المشروع بلغة TypeScript ويستخدم نواة المحاكي Z80.js من DrGoldfire إلى جانب xterm.js لعرض الطرفية؛ وجُمع كل شيء في ملف واحد يُقدَّم من GitHub Pages، فلا يعمل أي كود على الخادم. المستودع يحمل رخصة MIT ويعود إلى سبتمبر 2018.
بالنسبة لمطوري الأنظمة القديمة والطلاب، هذا المزيج هو بيت القصيد. فقد شغّل Z80 أجهزة مثل ZX Spectrum وMSX وAmstrad CPC وSega Master System، وتشغيل تعليمة واحدة لمشاهدة تغيّر الأعلام طريقة أسرع لفهم المعمارية من قراءة دليل مرجعي.
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.