विषयसूची:

रेट्रो सीपी/एम स्टैंड अलोन एम्यूलेटर: 8 कदम
रेट्रो सीपी/एम स्टैंड अलोन एम्यूलेटर: 8 कदम

वीडियो: रेट्रो सीपी/एम स्टैंड अलोन एम्यूलेटर: 8 कदम

वीडियो: रेट्रो सीपी/एम स्टैंड अलोन एम्यूलेटर: 8 कदम
वीडियो: Берегись автомобиля (FullHD, комедия, реж. Эльдар Рязанов, 1966 г.) 2024, जुलाई
Anonim
रेट्रो सीपी/एम स्टैंड अलोन एमुलेटर
रेट्रो सीपी/एम स्टैंड अलोन एमुलेटर

यह प्रोजेक्ट VGA32 ESP v1.4 मॉड्यूल का उपयोग एक संयोजन या RunCPM और FabGL को चलाने के लिए करता है ताकि CP/M 2.2 के समकक्ष सिस्टम चलाने वाला एक स्टैंड अलोन कंप्यूटर प्रदान किया जा सके। 1980 के दौरान छोटे कंप्यूटरों के लिए एक ऑपरेटिंग सिस्टम के रूप में लोकप्रिय। आप समय पर वापस जा सकते हैं और पुराने सॉफ़्टवेयर जैसे वर्डस्टार, सुपरकैल्क, एडवेंचर और ज़ोर्क पर फिर से जा सकते हैं।

यह फैबजीएल प्रोजेक्ट का स्टैंडअलोन शिष्टाचार है जिसने एक मानक वीजीए मॉनिटर और पीएस/2 कीबोर्ड चलाने के लिए सॉफ्टवेयर प्रदान किया।

मुख्य ओएस रनसीपीएम का एक संशोधित संस्करण है, इसे जीथब पर मूल कार्य से फोर्क किया गया है और मैंने इसे सीरियल कंसोल के बजाय स्क्रीन पर उपयोग करने के लिए सक्षम करने के लिए FabGL लाइब्रेरी को जोड़ा है।

मैं दोनों परियोजनाओं के लिए एक बड़ा धन्यवाद कहना चाहता हूं। अच्छा काम करते रहें!

सॉफ्टवेयर का हार्डवेयर के कम से कम दो संस्करणों पर परीक्षण किया गया है। एक VGA32 ESP v1.4 (जैसा कि रेडीमेड बेचा गया)। दूसरा मेरा पुराना संस्करण, मैंने Wroom ESP32 मॉड्यूल और पुराने कंप्यूटरों से स्क्रैप बिट्स से बनाया है।

नीचे दी गई जीथब साइट में इन सेटअपों के साथ-साथ संशोधित रेडी-टू-इंस्टॉल सॉफ़्टवेयर के बारे में महत्वपूर्ण जानकारी है।

यह प्रोजेक्ट सॉफ़्टवेयर स्थापित करने के बारे में है, हार्डवेयर के बारे में नहीं।

आपूर्ति:

एक VGA32 ESP मॉड्यूल V1.4 (परीक्षण किया गया)। ईबे/एलीएक्सप्रेस/अमेज़ॅन आदि पर मिला

Arduino IDE एक कंप्यूटर पर स्थापित है, मुझे लगता है कि यदि आप इसे पढ़ रहे हैं तो आपके पास यह पहले से ही है।

Arduino IDE के लिए ESP32 सपोर्ट पैक इंस्टॉल करें। https://github.com/espressif/arduino-esp32 चरण 1 देखें

FabGL लाइब्रेरी https://www.fabglib.org/ आपको कुछ भी डाउनलोड करने की आवश्यकता नहीं है, arduino IDE हमारे लिए यह कर सकता है, चरण 2 देखें।

github.com/coopzone-dc/RunCPM. से संशोधित रनसीपीएम की एक प्रति डाउनलोड करें

चरण 1: Arduino के लिए ESP32 समर्थन स्थापित करें (वैकल्पिक)

Arduino के लिए ESP32 समर्थन स्थापित करें (वैकल्पिक)
Arduino के लिए ESP32 समर्थन स्थापित करें (वैकल्पिक)

हो सकता है कि आप पहले ही ऐसा कर चुके हों, यदि आपके पास है तो आप इस चरण को छोड़ सकते हैं।

github.com/espressif/arduino-esp32 पर जाएं और बोर्ड मैनेजर का उपयोग करके इंस्टॉल करने के निर्देशों का पालन करें, जैसे:

Arduino IDE बोर्ड्स मैनेजर का उपयोग करते हुए इंस्टॉलेशन निर्देश ====================================== ===============

स्थिर रिलीज लिंक:

वर्तमान अपस्ट्रीम Arduino IDE को 1.8 स्तर या बाद के स्तर पर स्थापित करें। वर्तमान संस्करण Arduino वेबसाइट पर है।

Arduino प्रारंभ करें और प्राथमिकताएँ विंडो खोलें।

अतिरिक्त बोर्ड प्रबंधक URL फ़ील्ड में ऊपर दिए गए रिलीज़ लिंक में से एक दर्ज करें। आप कई URL जोड़ सकते हैं, उन्हें अल्पविराम से अलग कर सकते हैं।

टूल्स> बोर्ड मेनू से बोर्ड मैनेजर खोलें और एस्प 32 प्लेटफॉर्म इंस्टॉल करें (और इंस्टॉलेशन के बाद टूल्स> बोर्ड मेनू से अपना ईएसपी 32 बोर्ड चुनना न भूलें)।

चरण 2: FabGL लाइब्रेरी को IDE में जोड़ना

FabGL लाइब्रेरी को IDE में जोड़ना
FabGL लाइब्रेरी को IDE में जोड़ना
FabGL लाइब्रेरी को IDE में जोड़ना
FabGL लाइब्रेरी को IDE में जोड़ना

Arduino IDE में एक खाली स्केच का उपयोग करके, सुनिश्चित करें कि आपने अपने ESP बोर्ड को टूल्स मेनू, बोर्ड्स से चुना है। (लिखते समय VGA32 ESP सूचीबद्ध नहीं था, मैं एक सामान्य देव किट बोर्ड चुनता हूं)।

स्केच मेनू से, लाइब्रेरी शामिल करें चुनें, फिर लाइब्रेरी मैनेजर चुनें।

खोज संवाद में FabGL टाइप करें और नीचे दी गई सूची में इसके प्रकट होने की प्रतीक्षा करें, अब इंस्टॉल बटन पर क्लिक करें।

ख़त्म होना

चरण 3: रनसीपीएम द्वारा प्रयुक्त अतिरिक्त एसडी-कार्ड लाइब्रेरी जोड़ना

RunCPM द्वारा प्रयुक्त अतिरिक्त एसडी-कार्ड लाइब्रेरी जोड़ना
RunCPM द्वारा प्रयुक्त अतिरिक्त एसडी-कार्ड लाइब्रेरी जोड़ना

यह लगभग पिछले चरण जैसा ही है लेकिन FabGL के बजाय SDFat की खोज करें

स्केच मेनू से, लाइब्रेरी शामिल करें चुनें, फिर लाइब्रेरी मैनेजर चुनें। खोज संवाद में SDFat टाइप करें और नीचे दी गई सूची में इसके प्रकट होने की प्रतीक्षा करें, आपको संभवतः सूची को नीचे स्क्रॉल करना होगा।

आपको दो संस्करणों का विकल्प मिलता है:

1, बिल ग्रीमैन द्वारा एसडीफैट

2, एसडीफैट - एडफ्रूट फोर्क

मैंने दोनों की कोशिश की है, वे दोनों ठीक काम करने लगते हैं। लेकिन रनसीपीएम परियोजना ने दूसरे विकल्प "एडफ्रूट फोर्क" की सिफारिश की, हालांकि नवीनतम नोट्स पर अब यह कहता है:

सभी बोर्ड अब यहाँ से SdFat लाइब्रेरी का उपयोग करते हैं:

इसलिए अब मैं इस प्रोजेक्ट के लिए पहला विकल्प चुनता हूं।

ख़त्म होना

चरण 4: संशोधित रनसीपीएम परियोजना डाउनलोड करें

संशोधित रनसीपीएम परियोजना डाउनलोड करें
संशोधित रनसीपीएम परियोजना डाउनलोड करें
संशोधित रनसीपीएम परियोजना डाउनलोड करें
संशोधित रनसीपीएम परियोजना डाउनलोड करें

Github साइट पर जाएँ, कोड बटन पर क्लिक करें और ज़िप फ़ाइल के रूप में डाउनलोड करें

इस फ़ाइल को कहीं सेव करें (आमतौर पर Arduino नामक निर्देशिका में।

फ़ाइल को उसी स्थान पर अनज़िप करें, यह रनसीपीएम-मास्टर नामक एक फ़ोल्डर का उत्पादन करेगा

ख़त्म होना

चरण 5: रनसीपीएम प्रोग्राम खोलें और समीक्षा करें और संकलित करें

RunCPM प्रोग्राम को खोलें और उसकी समीक्षा करें और संकलित करें
RunCPM प्रोग्राम को खोलें और उसकी समीक्षा करें और संकलित करें

अब आप Arduino IDE File, Open मेनू का उपयोग कर सकते हैं। उस फ़ोल्डर पर नेविगेट करें जिसे आपने ऊपर uzip किया था।

इस फ़ोल्डर के अंदर एक और है जिसे रनसीपीएम कहा जाता है। फ़ोल्डर खोलें।

उस फोल्डर के अंदर एक.ino फाइल होती है जिसे RunCPM.ino कहा जाता है। यह मुख्य प्रोजेक्ट फ़ाइल है - इसे खोलें।

अब आप परियोजना को देख सकते हैं, टिप्पणियों को पढ़ सकते हैं आदि। यदि आपको VGA32 -ESP के अपने संस्करण से मिलान करने की आवश्यकता है तो परिवर्तन करें। इसे बोर्ड के V1.4 के लिए पूर्व-कॉन्फ़िगर किया जाना चाहिए।

अब आप संकलन और अपलोड पर क्लिक कर सकते हैं, यह मानते हुए कि आपके पास VGA32 ESP जुड़ा हुआ है, यह आपके डिवाइस पर एमुलेटर अपलोड करेगा।

महत्वपूर्ण: इस समय VGA32 में SD-कार्ड की समस्या हो सकती है, इसलिए इसे जानने के लिए इसे प्लग इन न करें। अधिक जानकारी के लिए नीचे दिया गया अंतिम चरण देखें।

चरण 6: अपने रनसीपीएम से बूट करने के लिए एक एसडी-कार्ड तैयार करें

यह शायद कदमों की सबसे चाल है। मेरा सुझाव है कि आप इसे करने के लिए जीथब साइट के README.md को पढ़ें। यहाँ क्या करना है की मेरी सूची है:

मुझे लगता है कि आपके पास एक खाली एसडी-कार्ड है या आपके पास कोई भी फाइल रखने में कोई दिलचस्पी नहीं है, यह इसे मिटा देगा।

1, एसडी-कार्ड को FAT-32. के रूप में प्रारूपित करें

2, ए, बी, सीडी आदि नामक कुछ फोल्डर बनाएं (सीपी/एम चलाते समय पी तक ये डिस्क ड्राइव होंगे)। ध्यान दें कि वे राजधानियाँ हैं।

3, प्रत्येक फोल्डर में आप 0 नाम का एक और फोल्डर बनाएं (जो कि एक शून्य है) और वैकल्पिक रूप से 1, 2, 3 आदि (15 तक) फिर सीपी/एम एमुलेशन में फोल्डर यूजर एरिया होते हैं। प्रारंभ करने के लिए आपको केवल 0 फ़ोल्डर की आवश्यकता है।

4, arduino निर्देशिका में अपने डाउनलोड किए गए प्रोजेक्ट फ़ोल्डर से, CCP नामक फ़ोल्डर ढूंढें। इसमें सीपी/एम कमांड कंसोल प्रोसेसर के विभिन्न संस्करण शामिल हैं। CCP-DR.60K नामक एक को अपने SD कार्ड के मूल में कॉपी करें।

5, अब डिस्क नामक प्रोजेक्ट डायरेक्टरी में फोल्डर ढूंढें, इसमें A. ZIP फाइल है, आपको इस फाइल को अपने एसडी-कार्ड पर A/0/ नामक डायरेक्टरी में अनज़िप करना होगा। (अधिक जानकारी के लिए 1streadme फ़ाइल भी देखें)। दुर्भाग्य से इसमें फ़ोल्डर सूची में "0" नहीं है, इसलिए आपको पहले एक अस्थायी फ़ोल्डर को अनज़िप करने की आवश्यकता है, फिर एसडी कार्ड पर ए फ़ोल्डर के लिए सामग्री को ए/0/में कॉपी करें।

6, जब आपने उपरोक्त चरणों को पूरा कर लिया है, तो आपके पास इस तरह की संरचना वाला एक एसडी-कार्ड होगा:

एफ: सीसीपी-DR.60K

/ए/0

/1STREAD. ME

/एएसएम.कॉम

/…. आदि

/बी/0

/सी/0

आदि

यदि आपको एसडी-कार्ड से बूट करने का प्रयास करते समय सीसीपी लोड नहीं कर सकते आदि के बारे में त्रुटियां मिलती हैं, तो दोबारा जांच लें कि आपके पास सब कुछ सही गति से है!

इस चरण को थोड़ा आसान बनाने के प्रयास में, मैंने ऊपर का एक तैयार संस्करण अपलोड किया है, जिसमें अतिरिक्त सीपी/एम सॉफ्टवेयर भी है और इसे यहां से डाउनलोड करें https://github.com/coopzone-dc/RunCPM/blob /मास्टर/… और बस इसे एक प्रारूपित एसडी-कार्ड की जड़ में खोल दें। यह आपको शुरू करना चाहिए फिर आप बाद में अपना खुद का बना सकते हैं।

मैं आपको जीथब रेपो पर सेटअप गाइड पढ़ने की भी सलाह देता हूं, इसमें आपके लिए आवश्यक फ़ोल्डरों का विवरण है।

चरण 7: वीजीए मॉनिटर और कीबोर्ड कनेक्ट करें

वीजीए मॉनिटर और कीबोर्ड कनेक्ट करें
वीजीए मॉनिटर और कीबोर्ड कनेक्ट करें

VGA32 ESP कार्ड से पावर डिस्कनेक्ट करें।

अपना वीजीए मॉनिटर कनेक्ट करें

एक PS/2 कीबोर्ड कनेक्ट करें VGA32 ESP कार्ड के लिए पावर को फिर से कनेक्ट करें, आपको कीबोर्ड की रोशनी फ्लैश होती दिखाई देगी और लगभग 10 सेकंड बाद CP/M प्रॉम्प्ट के साथ स्क्रीन पर एक तस्वीर दिखाई देगी!

महत्वपूर्ण: एसडी-कार्ड और सॉफ्ट रीसेट का उपयोग करते समय वीजीए 32 में एक समस्या है, इसलिए ऊपर दिए गए पहले चरण के रूप में बिजली बंद करना महत्वपूर्ण है, अधिक जानकारी के लिए अंतिम चरण देखें।

दूर तुम जाओ…

चरण 8: वीजीए 32 मॉड्यूल पर एसडी-कार्ड के साथ समस्या

VGA32 मॉड्यूल पर एसडी-कार्ड के साथ समस्या
VGA32 मॉड्यूल पर एसडी-कार्ड के साथ समस्या
VGA32 मॉड्यूल पर एसडी-कार्ड के साथ समस्या
VGA32 मॉड्यूल पर एसडी-कार्ड के साथ समस्या

ऊपर दिया गया फोटो मेरा दूसरा ESP32 कार्ड (घर का बना) दिखाता है, यह ठीक काम करता है और इसमें कोई समस्या नहीं है। इसलिए मुझे पता है कि यह कोई सॉफ़्टवेयर समस्या नहीं है, कृपया VGA32 संस्करण के बारे में नीचे पढ़ें।

मेरे VG32 ESP मॉड्यूल (v1.4) पर SD-कार्ड GPIO12 का उपयोग करता है, यह एस्प्रेसिफ सिस्टम द्वारा अनुशंसित नहीं है क्योंकि यह पिन आंतरिक मेमोरी के लिए कार्यशील वोल्टेज का पता लगाने के लिए पावर अप पर उपयोग किया जाता है। काश किसी ने उस आदमी को बताया होता जो इस VGA32 कार्ड को बनाता है! यह आप पर अलग हो सकता है, इसलिए उम्मीद है कि आपको यह समस्या नहीं होगी।

समस्याएं हैं:

1, कार्ड प्लग इन होने पर स्केच अपलोड करने में असमर्थ।

2, रीसेट बटन दबाने के बाद, यह तब तक लॉक रहता है जब तक कि एसडी-कार्ड हटा नहीं दिया जाता। फिर यह एक त्रुटि स्क्रीन पर बूट करता है जो कहता है कि कोई एसडी-कार्ड नहीं है! आप कार्ड डाल सकते हैं और फिर से रीसेट कर सकते हैं और यह दूसरी बार काम करेगा।

यह समस्या ठीक करने योग्य है (लेकिन इसमें जोखिम है) README.md को https://github.com/coopzone-dc/RunCPM/blob/master/… पर देखें।

या आप बोर्ड को चालू करने के लिए हमेशा एक हार्ड पावर ऑफ/ऑन कर सकते हैं। किसी कारण से यह ठीक काम करने लगता है। इसके अलावा, यदि आपको रनसीपीएम सॉफ़्टवेयर को फिर से अपलोड करने की आवश्यकता है, तो आपको पहले एसडी-कार्ड को हटाना होगा।

यह README. MD का एक अंश है जो समस्या की व्याख्या करता है। मैंने फिक्स का उपयोग किया है और यह ठीक काम करता है, लेकिन इसकी प्रकृति के कारण जोखिम आपका है, पढ़ें…

हालाँकि, VGA32 ESP के लिए सेटिंग्स SD कार्ड के लिए GPIO सेटिंग्स पर विरोध करती हैं।

यह काम करता है लेकिन अपलोड करने के लिए आपको एसडी कार्ड को हटाना होगा और एक सॉफ्ट रीसेट के बाद आपको एसडी कार्ड को हटाना होगा और फिर इसे दूसरे रीसेट के बाद बदलना होगा। यह पावर ऑन या हार्ड रीसेट से ठीक काम करता है। अगर आप इसे ठीक करने में मदद कर सकते हैं तो कृपया मुझे बताएं। अद्यतन 11Oct2020: VGA32 ESP v1.4 GPIO12 (MTDI, पॉवरअप/रीसेट पर पढ़ें) का उपयोग करता है। यह पिन RAM के लिए वोल्टेज, आंतरिक LDO का वोल्टेज (VDD_SDIO) निर्धारित करता है। जब एसडी कार्ड मौजूद होता है तो यह इस पिन को ऊंचा खींचता है और ईएसपी 32 सोचता है कि रैम वोल्टेज 1.8V होना चाहिए, एसडी कार्ड के बिना इस पिन में रैम वोल्टेज को 3.3V पर सेट करने के लिए आंतरिक पुल-डाउन है। यह वास्तव में FABGL प्रोजेक्ट पर दिए गए उदाहरणों के नोट्स में उल्लेख किया गया है, उद्धृत करने के लिए: GPIO 2 और 12 के बारे में नोट्स - GPIO2: प्रोग्रामिंग पर समस्या पैदा कर सकता है। सीरियल बूटलोडर में प्रवेश करने के लिए GPIO2 को या तो असंबद्ध/फ्लोटिंग, या कम संचालित होना चाहिए। सामान्य बूट मोड (GPIO0 उच्च) में, GPIO2 को अनदेखा किया जाता है। - GPIO12: से बचना चाहिए। यह फ्लैश वोल्टेज का चयन करता है। इसका उपयोग करने के लिए GPIO12 डिटेक्शन सेटिंग को अक्षम करें: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! 3.3V वोल्टेज (ESP-WROOM-32) के साथ ESP32 के लिए अच्छा है। यदि फ्लैश 3.3V नहीं है तो यह आपके ESP32 को ब्रिक कर देगा नोट1: "/dev/cu. SLAB_USBtoUART" को अपने सीरियल पोर्ट से बदलें Note2: espefuse.py https://github.com/espressif/esptool से डाउनलोड करने योग्य है

यह आगे नोट करता है कि GPIO12 से बचा जाना चाहिए, किसी ने भी VGA32 ESP कार्ड के निर्माता को नहीं बताया!

फिक्स्ड: मैंने GPIO12 के उपयोग को ओवरराइड करने के लिए फ्लैश वोल्टेज सेट करने के विकल्प की कोशिश की है और अपने vga32 ESP पर पुष्टि कर सकता हूं, यह काम करता है! समस्या का समाधान एसडी कार्ड के साथ कोई और समस्या नहीं है। मैं आपसे आग्रह करता हूं कि यदि आप इसे भी आजमाने का निर्णय लेते हैं, तो आप इसकी जांच करें, दोबारा जांच करें और एक ब्रिक बनाने के बारे में ध्यान से सोचें। मैं इसे एक क्रिया के रूप में अनुशंसित नहीं कर रहा हूं, लेकिन मेरे लिए यह काम कर गया।

सिफारिश की: