بناء خرطوشة Commodore 64

هل فكرت من قبل “IEEE Spectrum رائع ، لكنني أتمنى لو كان لدي طريقة لتجربة المزيد منها ، ربما في متحف العلوم والتكنولوجيا المحلية؟ ” حسنًا ، يسرني أن أقول إن رغبتك المحددة قد تم منحها! نطاقتم تكييف قاعة مشاهير Chip Hall في معرض متنقل بدأ للتو في طريقه حول متاحف الولايات المتحدة ، ونأمل أن يكون العالم.
تحتفل قاعة مشاهير الرقائق الخاصة بنا بالرقوف الصغيرة التي كان لها تأثير كبير. تم اختيار ستة من الرقائق من القاعة لتكون جزءًا من معرض “الرقائق التي هزت العالم” ، إلى جانب القطع الأثرية التي تجسد كيفية استخدام كل منها. كان أحد المعالج الذي تم اختياره 8 بت 6502 ، لذلك بطبيعة الحال ، اعتقدنا أن الكمبيوتر المنزلي 64 ، الذي استخدم البديل 6502 ، يجب أن يكون أحد القطع الأثرية. مما أدى إلى تفكير آخر: لماذا لا يتم تشغيل برنامج C64 يوضح وحدة المعالجة المركزية 8 بت في العمل؟
هكذا انتهى بي الأمر ، بعد 35 عامًا من آخر برمجة C64 ، جالسًا في مكتب مكتبي إنشاء خرطوشة مكون من نوع جديد.
تدعم C64 خراطيش المكونات الإضافية كوسيلة لتوزيع البرمجيات ، ويجب وضع برنامج العرض التجريبي الخاص بنا على واحد. كل صباح ، يمكن للمنسق المتحف تشغيل المعرض والمعزوفة! يبدأ البرنامج التجريبي على الفور. كانت البدائل تتطلب من المنسق كتابة الأوامر لتحميل العرض التجريبي يدويًا.
لكن هذه الراحة تأتي مع اثنين من التحذيرات الكبيرة: واحد ، يجب أن يتناسب العرض التوضيحي مع 16 كيلو بايت فقط ، وهو الحد الأقصى لحجم الخرطوشة. حتى وفقًا لمعايير الثمانينيات ، هذا صغير ، حيث امتدت بعض عناوين C64 على مئات الكيلوغرامات عن طريق تحميل البيانات في أجزاء من القرص أو الشريط. ثانياً ، يجب كتابة العرض التوضيحي في 6502 تجميع والتحكم في أجهزة الفيديو C64 مباشرة.
لا تتطلب الخراطيش سوى عدد قليل من المكونات: لوحة دائرة مطبوعة [bottom right]، شريحة الذاكرة القابلة للبرمجة [bottom middle]وبعض المقاومات والثنائيات والمكثف [top middle]. يتم تركيبها في قذيفة ثلاثية الأبعاد [top left and right]. لجعل إخراج الفيديو متوافقًا مع الشاشات الحديثة ، استخدمنا محول RetroTink-2x Pro [bottom left].جيمس بروفوست
لحسن الحظ ، من حضور أحداث اتحاد الكمبيوتر القديمة على مر السنين ، كنت أعلم أن هناك الكثير من الموارد الحرة أو غير المكلفة التي من شأنها أن تجعل الأمر أسهل من أي وقت مضى القيام بهذا النوع من الأشياء.
كانت الخطوة الأولى هي معرفة مقدار ما يمكنني فعله في 16 كيلو بايت. كانت أجهزة رسومات C64 رائدة في يومها ، وقادر على عرض صور تصل إلى 320 × 200 بكسل مع لوحة من 16 لونًا. يمكن أن يعرض أيضا ثمانية العفاريت في وقت واحد ؛ كل Sprite عبارة عن صورة نقطية أحادية اللون 24 إلى 21 بكسل. كان سعر هذه القوة التعقيد. سجلات التحكم في رقاقة الفيديو ، ونقطة الشاشة ، وبيانات الشاشة النصية ، ومجموعات الأحرف الافتراضية والمخصصة ، والعفاريت ، ومعلومات الألوان ، جميعها تعيش في مواقع مختلفة منتشرة عبر الذاكرة ، مع بعض البيانات التي تعيش فعليًا في رقائق RAM و ROM منفصلة.
لذلك جلست مع خرائط الذاكرة التفصيلية وأدلة برمجة أجهزة الفيديو المتاحة لـ C64. (تتناقض وفرة المعلومات هذه في الثمانينات من القرن الماضي ، عندما كانت الوثائق ضئيلة ، حتى من كومودور نفسها). لقد عملت على أنه يمكنني حشر تسع شاشات من النصوص التفسيرية والرسومات المتحركة والعفاريت. تم إنشاء هذه الشاشات ، بما في ذلك مجموعات الأحرف المخصصة والعفاريت التي تعتمد عليها ، بشكل مبسط بفضل محرر الرسومات C64 عبر الإنترنت في PetScii.krissz.hu. يمكن للمحرر أن يخرج بعض النتائج كبرامج تجميع مستقلة ، والتي تكيفت عليها كعمليات فرعية في الرمز التجريبي الخاص بي.
كان لدي مساحة كافية ما تبقى لاكتشاف محظوظ. كنت أرغب في عرض صورة صورة نقطية واحدة على الأقل على شاشة واحدة على الأقل ، لكن الصورة المسبقة كانت ستتطلب 8 كيلو بايت من البيانات ، نصف سعة الخرطوشة. بدلاً من ذلك قررت استخدام اختراق كلاسيكي للمبرمجين منذ أيام الألعاب مثل روغ و نخبة: سحب البيانات الحرة من بنية الرياضيات عن طريق التوليد الإجرائي.
إليكم المكان الذي أصبحت محظوظًا: صادفت عمل Marcello M. ، الذي نشر المصدر لبرنامج تجميع C64 الذي أنشأت بسرعة مجموعة Mandelbrot متعددة الألوان باستخدام 3.3 كيلو بايت فقط من التعليمات البرمجية. مع نعمة مارسيلو ، قمت بدمج رمزه كقوطري آخر.
الأدوات الحديثة لكتابة برنامج C64
تم إجراء الترميز باستخدام برنامج سطح المكتب المجاني IDE 65xx و Kick Assembler. تمكنت من اختبار الكود باستخدام C64 Vice Emulator الشهير ، مما سمح لي بالقيام بأشياء مفيدة مثل فحص محتويات الذاكرة الحية للعثور على أخطاء وقت التشغيل.
تم تعيين مناطق ذاكرة الوصول العشوائي من Commodore 64 إلى أشياء مثل ROMS System ، وذاكرة ألوان الفيديو ، ونقطة النقطات ، التي تم تعيين الأخير بالفعل إلى مواقع متعددة في ذاكرة الوصول العشوائي عند الوصول إليها بواسطة أجهزة الفيديو. تداخلت بعض هذه التعيينات: إدخال خرطوشة 16 كيلو بايت تلقائيًا تعطيل ROM لتخزين المترجم الأساسي. جيمس بروفوست
كانت الخطوة التالية هي صنع خرطوشة مادية. مرة أخرى ، هناك مساعدة حديثة ، هذه المرة في شكل لوحات دوائر مطبوعة بقيمة 5 دولارات تحتاج فقط إلى عدد قليل من المكونات التي تم لحامها لصنع خرطوشة. تتضمن هذه المكونات رقاقة ROM قابلة للبرمجة التقطتها 3 دولارات على موقع ئي باي. لقد أحرقت الرمز الخاص بي إلى شريحة الذاكرة مع موثوقي مبرمج TL866 وشنته إلى ثنائي الفينيل متعدد الكلور ، والذي بدوره تم تركيبه في قضية خرطوشة ثلاثية الأبعاد.
ثم جاءت لحظة الحقيقة. ربما لن يكون مفاجأة للقراء العاديين أنني أملك بالفعل C64 الأصلي ، والذي أتصل به بشاشات الشاشة الحديثة عبر محول RetroTink-2x Pro. لذلك دفعت بعناية الخرطوشة إلى فتحتها وقمت بتشغيل الجهاز.
وبطبيعة الحال ، جمدت C64 على الفور. لقد نسيت إزالة القليل من رمز إدارة الذاكرة الذي جعل العمل التجريبي في نائب المحاكي عن طريق تعطيل ROM الذي يخزن المترجم الأساسي لـ C64. على الأجهزة الحقيقية ، انتهى هذا المقتطف بتعطيل نصف ذاكرة الخرطوشة. تحرير سريع ورحلة العودة إلى TL866 وكنت مستعدًا للمحاولة مرة أخرى. نجاح! كنت أخيرًا مستعدًا حرفيًا لشحن بعض البرامج ، وصولاً إلى معارض المرتفعات ، والأشخاص الذين يقومون ببناء عرض السفر الخاص بنا.
آمل أن تحصل على فرصة لرؤية العرض التوضيحي الصغير الخاص بي ومعرض “رقائقنا التي غيرت العالم” شخصيًا: سنقوم بنشر المواقع الحالية والقادمة على صفحة قاعة الرقائق. ولكن في غضون ذلك ، سواء كنت قد استخدمت C64 مرة أخرى في اليوم ، أو كنت تبحث فقط عن تحدي ترميز ممتع ، أوصي بتجربة يدك في برمجة هذه الكلاسيكية ذات 8 بت ، والآن تم تقليل الكثير من نقاط الألم الأصلية!
من مقالات موقعك
المقالات ذات الصلة حول الويب