جدول المحتويات:

Retro CP / M Stand Alone Emulator: 8 خطوات
Retro CP / M Stand Alone Emulator: 8 خطوات

فيديو: Retro CP / M Stand Alone Emulator: 8 خطوات

فيديو: Retro CP / M Stand Alone Emulator: 8 خطوات
فيديو: Building a Standalone Z80 CP/M Computer (part 1) 2024, يمكن
Anonim
Retro CP / M Stand Alone Emulator
Retro CP / M Stand Alone Emulator

يستخدم هذا المشروع وحدة VGA32 ESP v1.4 لتشغيل مجموعة أو RunCPM و FabGL لتوفير جهاز كمبيوتر مستقل يعمل بنظام مكافئ لـ CP / M 2.2. شائع خلال الثمانينيات كنظام تشغيل لأجهزة الكمبيوتر الصغيرة. يمكنك العودة بالزمن إلى الوراء وإعادة زيارة البرامج القديمة مثل Wordstar و Supercalc و Adventure و Zork.

إنها مجاملة مستقلة لمشروع FabGL الذي قدم البرنامج لتشغيل شاشة VGA قياسية ولوحة مفاتيح PS / 2.

نظام التشغيل الرئيسي هو إصدار معدل من RunCPM ، وقد تم تشعبه من العمل الأصلي على Github وقد أضفت مكتبة FabGL لتمكينها من استخدامها على الشاشة بدلاً من وحدة التحكم التسلسلية.

أود فقط أن أتقدم بالشكر الجزيل لكلا المشروعين. ثابر على العمل الجيد!

تم اختبار البرنامج على نسختين على الأقل من الأجهزة. واحد VGA32 ESP v1.4 (كما يباع جاهزًا). ثانيًا ، نسختي القديمة ، لقد بنيت من وحدة Wroom ESP32 وأجزاء من أجهزة الكمبيوتر القديمة.

يحتوي موقع Github أدناه على معلومات مهمة حول هذه الإعدادات بالإضافة إلى البرنامج المعدّل الجاهز للتثبيت.

يتعلق هذا المشروع بتثبيت البرنامج ، وليس حول الأجهزة.

اللوازم:

وحدة VGA32 ESP V1.4 (مختبرة). وجدت على موقع ئي باي / أليكسبريس / أمازون إلخ

تم تثبيت Arduino IDE على جهاز كمبيوتر ، أفترض أنه إذا كنت تقرأ هذا لديك بالفعل.

قم بتثبيت حزمة دعم ESP32 لـ Arduino IDE. https://github.com/espressif/arduino-esp32 راجع الخطوة 1

مكتبة FabGL https://www.fabglib.org/ لا تحتاج إلى تنزيل أي شيء ، يمكن لـ arduino IDE القيام بذلك لنا ، راجع الخطوة 2.

قم بتنزيل نسخة من RunCPM المعدلة من

الخطوة 1: تثبيت دعم ESP32 لـ Arduino (اختياري)

تثبيت دعم ESP32 لـ Arduino (اختياري)
تثبيت دعم ESP32 لـ Arduino (اختياري)

ربما تكون قد فعلت ذلك بالفعل ، إذا كنت تستطيع تخطي هذه الخطوة.

قم بزيارة https://github.com/espressif/arduino-esp32 واتبع التعليمات الخاصة بالتثبيت باستخدام مدير اللوحات ، مثل هذا:

تعليمات التثبيت باستخدام Arduino IDE Boards Manager ============================================ ===============

رابط الإصدار المستقر:

قم بتثبيت Arduino IDE الحالي عند مستوى 1.8 أو أحدث. الإصدار الحالي موجود على موقع Arduino الإلكتروني.

ابدأ Arduino وافتح نافذة التفضيلات.

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

افتح Boards Manager من Tools> Board menu وقم بتثبيت النظام الأساسي esp32 (ولا تنس تحديد لوحة ESP32 من أدوات> قائمة اللوحة بعد التثبيت).

الخطوة 2: إضافة مكتبة FabGL إلى IDE

إضافة مكتبة FabGL إلى IDE
إضافة مكتبة FabGL إلى IDE
إضافة مكتبة FabGL إلى IDE
إضافة مكتبة FabGL إلى IDE

باستخدام رسم فارغ في Arduino IDE ، تأكد من تحديد لوحة ESP من قائمة الأدوات ، اللوحات. (في وقت كتابة هذا التقرير ، لم يكن VGA32 ESP مدرجًا ، اخترت لوحة Dev Kit عامة).

من قائمة Sketch ، اختر Include Library ، ثم اختر Library manager.

في مربع حوار البحث ، اكتب FabGL وانتظر حتى يظهر في القائمة أدناه ، انقر الآن على زر التثبيت.

تم الانتهاء من

الخطوة 3: إضافة مكتبة بطاقة SD إضافية يستخدمها RunCPM

إضافة مكتبة بطاقة SD إضافية مستخدمة بواسطة RunCPM
إضافة مكتبة بطاقة SD إضافية مستخدمة بواسطة RunCPM

هذا يشبه الخطوة السابقة تقريبًا ولكن بدلاً من البحث عن FabGL عن SDFat

من قائمة Sketch ، اختر Include Library ، ثم اختر Library manager. في مربع حوار البحث ، اكتب SDFat وانتظر ظهوره في القائمة أدناه ، فربما يتعين عليك التمرير لأسفل في القائمة.

يمكنك اختيار نسختين:

1 ، SdFat بقلم بيل جريمان

2 ، سدفات - شوكة أدافروت

لقد جربت كليهما ، يبدو أنهما يعملان بشكل جيد. لكن مشروع RunCPM أوصى بالخيار الثاني "Adafruit Fork" ، ولكن في الملاحظات الأخيرة فإنه يقول الآن:

تستخدم جميع اللوحات الآن مكتبة SdFat ، من هنا:

والآن اخترت الخيار الأول لهذا المشروع.

تم الانتهاء من

الخطوة 4: قم بتنزيل مشروع RunCPM المعدل

قم بتنزيل مشروع RunCPM المعدل
قم بتنزيل مشروع RunCPM المعدل
قم بتنزيل مشروع RunCPM المعدل
قم بتنزيل مشروع RunCPM المعدل

قم بزيارة موقع Github ،

انقر فوق الزر CODE وقم بالتنزيل كملف ZIP

احفظ هذا الملف في مكان ما (عادةً في دليل يسمى Arduino.

قم بفك ضغط الملف إلى نفس الموقع ، وسوف ينتج مجلد يسمى RunCPM-master

تم الانتهاء من

الخطوة 5: فتح ومراجعة برنامج RunCPM وترجمة

فتح ومراجعة برنامج RunCPM وترجمة
فتح ومراجعة برنامج RunCPM وترجمة

يمكنك الآن استخدام Arduino IDE File ، Open menu. انتقل إلى المجلد الذي قمت بضغطه بالأعلى.

يوجد داخل هذا المجلد ملف آخر يسمى RunCPM. افتح المجلد.

داخل هذا المجلد يوجد ملف.ino يسمى RunCPM.ino. هذا هو ملف المشروع الرئيسي - افتحه.

يمكنك الآن عرض المشروع وقراءة التعليقات وما إلى ذلك. قم بإجراء التغييرات إذا كنت بحاجة إلى مطابقة إصدار VGA32 -ESP الخاص بك. يجب تكوينه مسبقًا لـ V1.4 من اللوحة.

يمكنك الآن النقر فوق الترجمة والتحميل ، بافتراض أنك قمت بتوصيل VGA32 ESP ، فسوف يقوم بتحميل المحاكي على جهازك.

هام: يمكن أن يواجه VGA32 مشكلة في بطاقة SD في هذه المرحلة ، لذلك لا تقم بتوصيله لمعرفة ذلك. انظر الخطوة الأخيرة أدناه لمزيد من المعلومات.

الخطوة 6: إنشاء بطاقة SD جاهزة للتمهيد من برنامج RunCPM

ربما تكون هذه هي أكثر الخطوات خدعة. أقترح عليك قراءة ملف README.md الخاص بموقع Github حول كيفية القيام بذلك. فيما يلي قائمة بما يجب القيام به:

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

1 ، قم بتهيئة بطاقة SD كـ FAT-32

2 ، قم بإنشاء بعض المجلدات تسمى A ، B ، C D إلخ (حتى P ستكون هذه هي محركات الأقراص عند تشغيل CP / M). لاحظ أنها عواصم.

3 ، في كل مجلد تقوم بإنشاء مجلد آخر باسم 0 (وهذا هو صفر) واختياريا 1 ، 2 ، 3 وما إلى ذلك (حتى 15) ثم المجلدات هي مناطق المستخدمين في محاكاة CP / M. ما عليك سوى المجلد 0 لبدء التشغيل.

4 ، من مجلد المشروع الذي تم تنزيله في دليل اردوينو ، ابحث عن المجلد المسمى CCP. هذا يحتوي على إصدارات مختلفة من CP / M Command Console Proccessor. انسخ الملف المسمى CCP-DR.60K إلى جذر بطاقة SD الخاصة بك.

5 ، الآن ابحث عن المجلد في دليل المشروع المسمى DISK ، وهو يحتوي على ملف A. ZIP ، تحتاج إلى فك ضغط هذا الملف إلى الدليل المسمى A / 0 / على بطاقة SD الخاصة بك. (انظر أيضًا ملف 1streadme لمزيد من المعلومات). لسوء الحظ ، لا يحتوي على "0" في قائمة المجلدات ، لذا تحتاج إلى فك الضغط إلى مجلد مؤقت أولاً ، ثم نسخ محتويات المجلد A إلى A / 0 / على بطاقة SD.

6 ، عند الانتهاء من الخطوات المذكورة أعلاه ، سيكون لديك بطاقة SD بهيكل مثل هذا:

F: CCP-DR.60K

/ أ / 0

/1STREAD. ME

/ ASM. COM

/…. إلخ

/ ب / 0

/ ج / 0

إلخ

إذا حصلت على أخطاء تتعلق بعدم إمكانية تحميل CCP وما إلى ذلك عند محاولة التمهيد من بطاقة SD ، فتحقق مرة أخرى من أن لديك كل شيء في الوتيرة الصحيحة!

في محاولة لجعل هذه المرحلة أسهل قليلاً ، قمت بتحميل إصدار جاهز من أعلاه ، مع إضافة برنامج cp / m عليه وكذلك تنزيله من هنا https://github.com/coopzone-dc/RunCPM/blob / رئيسي / … وفك ضغطه فقط إلى جذر بطاقة SD المهيأة. يجب أن تبدأ ثم يمكنك إنشاء الخاصة بك لاحقًا.

أوصي أيضًا بقراءة دليل الإعداد في Github Repo ، فهو يحتوي على وصف للمجلدات التي تحتاجها.

الخطوة 7: قم بتوصيل شاشة VGA ولوحة المفاتيح

قم بتوصيل شاشة VGA ولوحة المفاتيح
قم بتوصيل شاشة VGA ولوحة المفاتيح

افصل الطاقة عن بطاقة VGA32 ESP.

قم بتوصيل شاشة VGA الخاصة بك

قم بتوصيل لوحة مفاتيح PS / 2 أعد توصيل الطاقة ببطاقة VGA32 ESP ، يجب أن ترى أضواء لوحة المفاتيح تومض وبعد حوالي 10 ثوانٍ ستظهر صورة على الشاشة مع موجه CP / M!

هام: يواجه VGA32 مشكلة عند استخدام بطاقة SD وإعادة الضبط الناعم ، ولهذا السبب من المهم إيقاف تشغيل الطاقة كخطوة أولى أعلاه ، انظر الخطوة الأخيرة للحصول على مزيد من المعلومات.

بعيدا تذهب …

الخطوة 8: مشكلة في بطاقة SD على وحدة VGA32

مشكلة مع بطاقة SD على وحدة VGA32
مشكلة مع بطاقة SD على وحدة VGA32
مشكلة مع بطاقة SD على وحدة VGA32
مشكلة مع بطاقة SD على وحدة VGA32

تُظهر الصورة أعلاه بطاقة ESP32 الثانية الخاصة بي (مصنوعة منزليًا) ، وهذا يعمل بشكل جيد ولا يحتوي على المشكلة أدناه. لذا أعلم أنها ليست مشكلة في البرامج ، يرجى قراءة ما يلي حول إصدار VGA32.

في وحدة VG32 ESP الخاصة بي (الإصدار 1.4) ، تستخدم بطاقة SD GPIO12 ، ولا توصي أنظمة Espressif بهذا ، حيث يتم استخدام هذا الدبوس في الطاقة لاكتشاف جهد العمل للذاكرة الداخلية. أتمنى لو قال أحدهم للرجل الذي صنع بطاقة VGA32 هذه! قد يكون الأمر مختلفًا عنك ، لذلك آمل ألا تواجه هذه المشكلة.

المشاكل هي:

1 ، غير قادر على تحميل رسم عند توصيل البطاقة.

2 ، بعد الضغط على زر إعادة الضبط ، يتم قفله حتى تتم إزالة بطاقة SD. ثم يتم تشغيله على شاشة خطأ تفيد بعدم وجود بطاقة SD! يمكنك إدخال البطاقة وإعادة تعيينها مرة أخرى وستعمل في المرة الثانية.

هذه المشكلة قابلة للإصلاح (لكن تنطوي على مخاطر) راجع README.md على

أو يمكنك دائمًا تشغيل / إيقاف تشغيل الطاقة الصلبة لبدء اللوحة. لسبب ما يبدو أن هذا يعمل بشكل جيد. أيضًا إذا كنت بحاجة إلى إعادة تحميل برنامج RunCPM ، فيجب عليك إزالة بطاقة SD أولاً.

هذا مقتطف من README. MD يشرح المشكلة. لقد استخدمت الإصلاح وهو يعمل بشكل جيد ، ولكن نظرًا لطبيعته ، فإن المخاطرة تقع على عاتقك ، تابع القراءة …

ومع ذلك ، يبدو أن إعدادات VGA32 ESP بها تعارض في إعدادات GPIO لبطاقة SD.

إنه يعمل ولكن للتحميل يجب عليك إزالة بطاقة SD وبعد إعادة الضبط الناعمة ، يجب عليك إزالة بطاقة SD ثم استبدالها متبوعًا بإعادة تعيين أخرى. إنه يعمل بشكل جيد من الطاقة أو إعادة التعيين الثابت. إذا كان بإمكانك المساعدة في إصلاح هذا ، فيرجى إخبارنا بذلك. تحديث 11 أكتوبر 2020: يستخدم VGA32 ESP v1.4 GPIO12 (MTDI ، قراءة عند التشغيل / إعادة التعيين). يحدد هذا الدبوس جهد ذاكرة الوصول العشوائي ، جهد LDO الداخلي (VDD_SDIO). عندما تكون بطاقة SD موجودة ، فإنها تسحب هذا الدبوس عالياً ويعتقد ESP32 أن جهد ذاكرة الوصول العشوائي يجب أن يكون 1.8 فولت ، وبدون بطاقة SD يكون لهذا الدبوس سحب داخلي لضبط جهد ذاكرة الوصول العشوائي على 3.3 فولت. هذا مذكور بالفعل في الملاحظات من الأمثلة المقدمة في مشروع FABGL ، على سبيل الاقتباس: ملاحظات حول GPIO 2 و 12 - GPIO2: قد يسبب مشكلة في البرمجة. يجب أيضًا ترك GPIO2 إما غير متصل / عائم ، أو مدفوعًا منخفضًا ، من أجل الدخول إلى أداة تحميل التشغيل التسلسلي. في وضع التمهيد العادي (ارتفاع GPIO0) ، يتم تجاهل GPIO2. - GPIO12: يجب تجنبه. يختار جهد الفلاش. لاستخدامه ، قم بتعطيل إعدادات الكشف عن GPIO12 مع: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! جيد لـ ESP32 بجهد 3.3 فولت (ESP-WROOM-32). سيؤدي هذا إلى طمس ESP32 إذا لم يكن الفلاش 3.3 فولت NOTE1: استبدل "/dev/cu. SLAB_USBtoUART" بمنفذك التسلسلي NOTE2: يمكن تنزيل espefuse.py من

يشير هذا أيضًا إلى أنه يجب تجنب GPIO12 ، وهو أمر مثير للشفقة لم يخبر أحد صانعي بطاقة VGA32 ESP!

تم الإصلاح: لقد جربت خيار ضبط جهد الفلاش للإفراط في استخدام GPIO12 ويمكنني التأكيد على vga32 ESP الخاص بي ، إنه يعمل! لم يتم إصلاح المشكلة بعد الآن مع بطاقة SD. أحثك على التحقق والتحقق مرة أخرى والتفكير مليًا في إنشاء وحدة طوب إذا قررت تجربتها أيضًا. أنا لا أوصي به كإجراء ، لكنه نجح بالنسبة لي.

موصى به: