العودة

"Wake up! 16b": 16 بايتًا من شيفرة x86 ترسم فركتالًا وتُسمعه
SiTech AI Team3 دقيقة قراءة

"Wake up! 16b": 16 بايتًا من شيفرة x86 ترسم فركتالًا وتُسمعه

نشر مطوّر مشاهد الديمو HellMood شرحًا مفصّلًا لمقدمة "wake up! 16b" التي عُرضت في مهرجان Outline. يرسم برنامج DOS من 16 بايت في ذاكرة النص فركتال سيربينسكي لا نهائيًا، وتُشغّل البايتات نفسها مكبّر صوت الحاسوب.

نشر مطوّر مشاهد الديمو HellMood شرحًا مفصّلًا لمقدمة "wake up! 16b" التي عُرضت في مهرجان Outline في بلدة أومن الهولندية في أيار/مايو 2026. يرسم هذا البرنامج الصغير لنظام DOS في الوضع الحقيقي فركتال سيربينسكي لا نهائيًا داخل ذاكرة النص، وتُشغّل البايتات نفسها مكبّر صوت الحاسوب.

ستة عشر بايتًا ولوحة مُهيّأة سلفًا

البرنامج كله بضع تعليمات: استدعاء لـBIOS يضبط نمط الفيديو 0، أي شبكة من 40×25 حرفًا؛ وأمر يوجّه مقطع البيانات إلى العنوان 0xb800، وهو مخزن النص في CGA/VGA؛ ثم حلقة تقرأ بايتًا وتُزيح فهرس المصدر 56 بايت إلى الخلف وتُجري عملية XOR بين ذلك البايت وذاكرة الفيديو وتكتبه إلى المنفذ 61h، منفذ مكبّر الصوت. البت الأول من القيمة يدفع غشاء المكبّر إلى الخارج أو إلى الداخل.

اللوحة ليست فارغة. عندما يُفرّغ الـBIOS الشاشة يملأ جميع خلايا الأحرف البالغ عددها 2000 بالقيمة 0x20 (مسافة) وبالقيمة 0x07 (رمادي فاتح على أسود)، لذلك تُجري الشيفرة عملية XOR مقابل نمط موحّد موجود مسبقًا لا مقابل أصفار.

سيربينسكي من مجاميع تراكمية

إذا اختصرنا الشيفرة إلى رياضيات خالصة، فإن الحلقة تحسب متتالية ذات حدّين مضروبة في اثنين: تصبح كل خلية مجموعًا تراكميًا لما قبلها. ولأن XOR جمع بلا ترحيل، فإن النظر إلى هذه المتتالية بمعامل اثنين يعطي مثلث باسكال بمعامل اثنين، أي بساط سيربينسكي. ويربط الكاتب هذا السلوك بالقاعدة 60 في الأوتوماتات الخلوية الأولية وبمبرهنة لوكاس التي تضمن هذا التكافؤ.

لماذا يبدو الصوت هكذا

الخطوة هي −56 بايت لا −16، لذا لا تلمس الشيفرة إلا المواضع التي هي مضاعفات للثمانية: 8192 خطوة تلتف حول المقطع البالغ 64 كيلوبايت سبع مرات. وهذا يضاعف طول الدورة ويخفض التردد الأساسي إلى النصف، أي يهبط الصوت أوكتافًا واحدًا. والقفزة نفسها تشقّ الصورة قطريًا: على شاشة من 80 عمودًا، التحرك 56 بايت إلى الخلف يعادل التحرك 24 إلى الأمام، لذلك لا تُكتب سوى عشرة أعمدة مختلفة، ويظهر الفركتال كعشرة أعمدة من الأحرف تصعد على الشاشة.

ليست كل البيانات المرسلة إلى المكبّر آتية من الفركتال. يضمّ المقطع أيضًا شيفرة ظلّية لـBIOS الفيديو، وإجراء XOR مقابل ما تركه الـfirmware في الذاكرة هو ما يمنح المقدمة نبرتها الخشنة المتغيرة من جهاز إلى جهاز. ويلاحظ HellMood أن النتيجة شديدة الحساسية لنسخة المحاكي والـBIOS، وأن تصفير الذاكرة مسبقًا كان سيمنح توحّدًا تامًا — لكن على حساب بايتات لا يملكها.

على عتاد حقيقي

سجّل مشاهد الديمو miragept المقدمة على عتاد من تلك الحقبة، بعد تغيير العنوان من 0xb800 إلى 0xb000 لتظهر على شاشة MDA/Hercules: حاسوب 286 ببطاقة EGA وشاشة IBM 5151. أما عمل HellMood السابق "M8trix" من 2014 فقد نثر أحرفًا شبه عشوائية على الشاشة بثمانية بايتات؛ وهذه المرة، بحسب كلامه، جاء الصوت أولًا.

SiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.