تطبيقات MSX الخاصة بي

تعلمت البرمجة في Basic خلال نشاط خارج المناهج الدراسية في مدرستي الابتدائية (ARCE) على مدى العامين الماضيين مع خوان كارلوس ، المعلم الذي جاء من سلفادور باتل.

في وقت لاحق اشتريت جهاز كمبيوتر MSX (سوني هيت بت 501P (سوني HB-501P))، وجنبا إلى جنب مع صديق، استكشفنا إمكانيات الجهاز، وقضاء كامل بعد الظهر كتابة البرامج التي جاءت مكتوبة على الورق في بعض المجلات MSX من الوقت.

كانت الخطوة التالية ، بعد مواجهة التحدي من معلم الرياضيات الخاص بي ، هي تعلم البرمجة بلغة تجميع MSX (معالج Z-80).


على هذا الموقع ، أنوي مشاركة بعض من أفضل التطبيقات التي قمت ببرمجتها في ذلك الوقت بتنسيق.cas:

  • الناي: برنامج للمنافسة في مدرستي الثانوية (IB غابرييل فيراتر)، عندما كنت في السنة الأولى من BUP (في BASIC).
  • التصميم: مصمم جرافيك ، لتصميم الرسومات للألعاب التي كان سيبرمجها في المستقبل (في المجمع Z-80).
  • زوديا: لعبة سفينة الفضاء، مع التمرير العمودي وشملت (في تجميع Z-80).
  • Habla: تطبيق تحويل النص إلى كلام باللغة الإسبانية. (مزيج من Z-80 Assembler و BASIC).
  • Tetris: نسختي من لعبة Tetris الشهيرة. (في المجموعة Z-80).
  • Ristu: بذرة ما كان من المفترض أن تكون لعبة متاهة ، مستوحاة من متاهة كونامي في غاليوس. نفدت الذاكرة... (في المجموعة Z-80).
  • أشارك أيضًا الرموز المصدرية للتطبيقات في Assembler ، إلى جانب مجمع Hisoft الذي اشتريته مرة أخرى في اليوم ، والذي أشاركه بين ملفات.cas في التنزيل (وليس كلهم يعملون).


سأقوم أيضًا بمشاركة بعض التعديلات التي أجريتها على تطبيق واجهة سطر الأوامر wav2cas ، المبرمج بواسطة Vincent van Dam.

هناك الآن وظيفة اختيارية لتفريغ الإشارة المعالجة بواسطة wav2cas إلى csv ، من بين ميزات جديدة أخرى.

سأشارك أيضًا سلسلة من البرامج النصية التكميلية للعمل مع.cas ، أو مع.csv الجديد لعينات إشارة wav2cas:

  • histogram.py سيناريو للحصول على قيم الرسم البياني من العينات.
  • .....
  • تقسيم_msx_tapes_into_singular_files.py يقسم ملفات.cas إلى ملفات.cas تحتوي على ملفات فردية. يعالج أنواع ملفات casdir ، بالإضافة إلى ملفات مصدر asm (HiSoft Assembler).
  • .....
  • استخراج_msx_sources.py يسمح لك باستخراج ملف.txt مع كل ملف مصدر من ملف.cas (ascii و asm). لا يعمل بشكل جيد للغاية ، ولكن يمكن أن يكون بداية.
  • .....

الفلوت (1987)

مشاهدة vdeo

مصمم جرافيك (1989)

مشاهدة vdeo

زوديا (1987-1989)

مشاهدة vdeo

معلومات عن فيلم Synthesizer (1991)

مشاهدة vdeo

تيتريس (1992)

مشاهدة vdeo

معلومات عن فيلم Speak (1991)

مشاهدة vdeo

ريستو (1990-1992)

مشاهدة vdeo

جلسة مع المجمع

مشاهدة vdeo

وصف البرنامج

image
image

تم إنشاء برنامج Flauta للمشاركة في مسابقة برمجيات في مدرستي الثانوية (IB Gabriel Ferrater) ، عندما كنت في السنة الأولى من المدرسة الثانوية.

الغرض منه هو أن يكون تطبيقًا لمراجعة موضع الإصبع للعب كل ملاحظة على الفلوت.

البرنامج هو ذريعة لعرض واجهة المستخدم في الوضع الرسومي.

يمكنك مشاهدة مقطع فيديو للبرنامج الذي يعمل فيديو تجريبي

image
image

كانت فكرة مصمم الجرافيك (Disea) هي أن يكون لديه أداة ليكون قادرًا على تصميم الرسومات بشكل صحيح للألعاب التي سيبرمجها في المستقبل.

وهي مبرمجة في تجميع Z-80.

لقد انتهيت من البرمجة بعد شهرين مكثفين من التطوير.

إنه البرنامج الأكثر ربحية الذي قمت ببرمجته ، وذلك بفضل فائدته وعدد المرات التي استخدمته فيها.

مع ذلك ، يمكنك تصميم شاشات العرض التقديمي ، sprites ، وشخصيات اللعبة.

يمكنك مشاهدة مقطع فيديو للبرنامج الذي يعمل فيديو تجريبي


هناك أيضًا عرض توضيحي يعرض أفضل لقطات الشاشة والرسومات التي صممتها به: فيديو لأفضل الشاشات

image
image

برمجت لعبة سفينة الفضاء زوديا مستوحاة من ألعاب سفينة الفضاء التمرير كونامي.

وهي مبرمجة في تجميع Z-80.

وهي مكرسة لمدرس الرياضيات الخاص بي (J. R. M. - خوسيه رامون مولينا) ، لإعطائي فكرة تجميع التعلم.

اللعبة على الشاشة 1 ، مع رسومات أخف من الشاشة 2.


لإعطائك فكرة عن كيف كانت الأمور...

من الواضح أنه في مرحلة ما كان يجب طباعة النتيجة التي حققها اللاعب...

كانت الأرقام إما مكافئة ل uint8 أو uint16

بالنسبة للوحة النتائج ، اخترت نوع uint16 (لا يمكن أن يتجاوز 65535)

لطباعة الأرقام ، يجب تحويل الرقم إلى Base-10 ، وهو ما قمت به عن طريق القسمة على 10 n مرات ، مع أخذ المعامل والحسومات.

لكن... لم يكن لدى Z-80 أي تعليمات في التجميع للضرب أو القسمة!! وماذا الآن؟

حسناً، الأمر سهل... نقسم، نطرح المقسوم من قسمة N ضرباً، ونزيد حاصل القسمة طالما أن النتيجة لا تفيض...

كم هذا مبتذل!

حسناً، هكذا كانت الأمور...


هناك فيديو يعرض التمرير الكامل (مع بعض الأخطاء): كامل التمرير الفيديو


يمكنك مشاهدة مقطع فيديو للبرنامج الذي يعمل فيديو تجريبي

image

بعد الانتهاء من المدرسة الثانوية ، أردت تجربة مهاراتي البرمجية في لغة التجميع مرة أخرى.

كان الهدف من ذلك هو برمجة جهاز توليف يتكيف مع شريحة الصوت MSX (مع ثلاثة أصوات ، وتطبيق تأثيرات ترددية (تغيير سريع (يدويًا) للتردد المنبعث لكل ملاحظة مضغوطة) ، وإيقاف تشغيل الملاحظة عند إصدار المفتاح.

تم تذكر حالة مفاتيح المزج الثلاثة التي تم الضغط عليها في نفس الوقت (الأصوات الثلاثة للرقاقة).

أردت أيضًا الاستفادة من الترددات المرتبطة بكل ملاحظة ، والتي وجدتها مشفرة في منطقة من ذاكرة الوصول العشوائي MSX أثناء البحث.

لإجراء البحث ، تابعت ، ببساطة معرفة تردد الملاحظة A ((ضبط الشوكة) 400 هرتز ، وتطبيق عامل اثني عشر الجذر من 2 (2 (1/12)) (واحد أوكتاف ، اثني عشر نصف نغمات)).

ثم البحث عن العناصر المقابلة في ROM ، مع أرقام نوع uint16.


يمكنك مشاهدة مقطع فيديو للبرنامج الذي يعمل فيديو تجريبي

image

خلال فصل الصيف بين سنتي الأخيرة في المدرسة الثانوية وسنتي الأولى في Teleco (1991) ، عملت بشكل مكثف كنادل في Bar Argente's في سالو.

استقلت الحافلة ذهابًا وإيابًا ، وفي طريق العودة ، قبل العودة إلى المنزل ، كنت أتوقف عند ممر للعب بعض الألعاب الرائعة من تيتريس...

بعد أكثر من 60 لعبة من تلك اللعبة ، أصبحت خبيرًا ، وأحببت العثور على تلك اللعبة عندما أخذني القدر عن طريق الصدفة إلى مكان توجد فيه آلات الممرات.


في عام 1992 ، قررت برمجة نسختي من Tetris ، في المجموعة Z-80 وفي وقت قياسي من ثلاثة أيام.

في ذلك الوقت ، كنت قد تعاملت بالفعل مع رقمنة الأصوات (من شريط MSX) ، وعلى شاشة الاستعداد في اللعبة ، يتم تشغيل أغنية من خلال مكبر الصوت. (محاكي openMSX يحاكي تمامًا هذه التفاصيل).


يمكنك مشاهدة مقطع فيديو للبرنامج الذي يعمل فيديو تجريبي

image

لا أتذكر عندما صادفت لأول مرة إمكانية رقمنة الأصوات من شريط MSX.

لكنني أتذكر أنني لم أكن أعرف حتى التردد الذي كنت أخذ العينات في... أنا فقط وضعت حلقة تأخير بين عينات للرقمنة ، ونفس حلقة التأخير للتشغيل من خلال مكبر الصوت.

وجدت أنه عندما كان هذا التأخير كبيرًا جدًا ، لم يتكاثر الصوت جيدًا. في وقت لاحق ، تعلمت من خلال نظرية أخذ العينات أن هذا التأثير كان يعرف باسم الاسم المستعار.


من مسلسل تلفزيوني أعجبني ، حصلت على فكرة أن الكمبيوتر يمكن أن "ينطق" جملة يختارها المستخدم.

لذلك ، مع لعبة الرقمنة الجديدة ، شرعت في الحصول على جميع الصوتيات عن طريق رقمنة صوتي.

والخطوة التالية هي أن تذهب من خلال الحروف من جملة، وفصلها إلى فونيم، وتنبعث كل فونيم بدوره.

نعم، مبتذلة قليلاً لكنها لم تعطي المزيد

برمجت قواعد الصوتيات الإسبانية في تطبيق تجميع Z-80 ، مع التفاعل مع المستخدم عن طريق طلب الجملة في BASIC.


مع محاكي openMSX يمكنك محاكاة تماما تنفيذ هذا البرنامج الصغير.


يمكنك مشاهدة مقطع فيديو للبرنامج الذي يعمل فيديو تجريبي

image

حسنًا ، بعد قضاء ساعات لا تحصى في لعب متاهة غاليوس ، قررت إنشاء لعبة متاهة مستوحاة منها ، ومع مظهر بصري مشابه جدًا (مع حدودي).

كان البرنامج مرة أخرى في تجميع Z-80.

لقد قمت بإنشاء الشاشات (في مصفوفة شاشة 14 12) استنادًا إلى كتل أحرف 4x4 التي تم دمجها مثل اللغز.

لذلك ، احتلت الشاشة 5 8 40 بايت ، على الرغم من أنه كان لا بد من إضافة وظيفة ذاكرة ثابتة لتحديد الكتل 4 4.


لقد أنقذت العديد من التطبيقات لتحريك الشخصية في جميع أنحاء العالم ، على الرغم من أنها الأكثر اكتمالاً ("PERFEC") ، لم أتمكن من جعلها تعمل في المحاكي.

أعتقد أن الأمر يتعلق بحقيقة أن شفرة المصدر في التجميع أخذت مساحة كبيرة جدًا ، وتعارضت مع بيانات BASIC في المنطقة ، ورفض المجمع ، في ظل هذه الظروف ، تجميع البرنامج.

أتذكر أنه في يوم من الأيام اضطررت إلى القيام بخدعة تحريك منطقة الذاكرة الأساسية أعلى (مع بعض النكات الرائعة التي لم أعد أتذكرها).

وبدونها ، لا توجد طريقة لجعل هذا التنفيذ يعمل (على الرغم من أن شفرة المصدر تم استخراجها بشكل صحيح في.cas).


يمكنك مشاهدة مقطع فيديو للبرنامج الذي يعمل فيديو تجريبي

image

المجمع هو جزء أساسي من تطوير في تجميع Z-80.

اشتريت ديفباك من هيسوفت والاستفادة القصوى منه، مما يجعل الاستخدام المكثف منه.

كان هناك أيضا شاشة، ولكن لم أكن أعرف أبدا كيفية الحصول عليه للعمل...


في الفيديو ، يمكنك رؤية مثال على جلسة مع المجمع فيديو تجريبي

فيديوهات

التنزيلات