תוכן עניינים:
- שלב 1: התקן את תמיכת ESP32 עבור Arduino (אופציונלי)
- שלב 2: הוספת ספריית FabGL ל- IDE
- שלב 3: הוספת ספריית כרטיסי SD נוספת המשמשת את RunCPM
- שלב 4: הורד את פרויקט RunCPM ששונה
- שלב 5: פתח וסקור את תוכנית RunCPM והרכב
- שלב 6: צור כרטיס SD מוכן לאתחול ה- RunCPM שלך
- שלב 7: חבר צג ומקלדת VGA
- שלב 8: בעיה בכרטיס SD במודול VGA32
וִידֵאוֹ: רטרו CP/M אמולטור לבד: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
פרויקט זה משתמש במודול 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 (כפי שנמכר מוכן). שנית בגירסה הישנה שלי, בניתי ממודול ESP32 של Wroom וגרדתי פיסות ממחשבים ישנים.
אתר Github להלן מכיל מידע חשוב על הגדרות אלה, כמו גם על התוכנה שהוכנה להתקנה.
פרויקט זה עוסק בהתקנת התוכנה, לא בחומרה.
אספקה:
מודול VGA32 ESP V1.4 (נבדק). נמצא ב- eBay / aliexpress / amazon וכו '
ה- Arduino IDE מותקן במחשב, אני מניח שאם אתה קורא את זה כבר יש לך את זה.
התקן את חבילת התמיכה ESP32 עבור Arduino IDE. https://github.com/espressif/arduino-esp32 ראה שלב 1
ספריית FabGL https://www.fabglib.org/ אין צורך להוריד כלום, ה- arduino IDE יכול לעשות זאת עבורנו, ראה שלב 2.
הורד עותק של RunCPM שהשתנה מ
שלב 1: התקן את תמיכת ESP32 עבור Arduino (אופציונלי)
יתכן שכבר עשית זאת, אם יש לך תוכל לדלג על שלב זה.
בקר בכתובת https://github.com/espressif/arduino-esp32 ופעל לפי ההנחיות להתקנה באמצעות מנהל לוחות, כך:
הוראות התקנה באמצעות מנהל לוחות Arduino IDE =========================================== =================
קישור לשחרור יציב:
התקן את ה- Arduino IDE הנוכחי במעלה הזרם ברמת 1.8 ואילך. הגרסה הנוכחית נמצאת באתר Arduino.
הפעל את Arduino ופתח את חלון העדפות.
הזן אחד מקישורי המהדורה למעלה בשדה כתובות אתרים נוספות של מנהל הלוח. אתה יכול להוסיף מספר כתובות אתרים ולהפריד אותן באמצעות פסיקים.
פתח את מנהל הלוחות מתוך כלים> תפריט לוח והתקן את פלטפורמת esp32 (ואל תשכח לבחור את לוח ESP32 שלך מתוך כלים> תפריט לוח לאחר ההתקנה).
שלב 2: הוספת ספריית FabGL ל- IDE
באמצעות סקיצה ריקה ב- Arduino IDE, וודא שבחרת את לוח ה- ESP שלך מתפריט כלים, לוחות. (בזמן כתיבת ה- VGA32 ESP לא היה רשום, אני בוחר בלוח Dev Kit כללי).
בתפריט סקיצה, בחר כלול ספרייה ולאחר מכן בחר מנהל ספריות.
בתיבת הדו -שיח לחיפוש הקלד FabGL והמתן עד שיופיע ברשימה להלן, לחץ כעת על כפתור ההתקנה.
גָמוּר
שלב 3: הוספת ספריית כרטיסי SD נוספת המשמשת את RunCPM
זה כמעט זהה לשלב הקודם אבל במקום חיפוש FabGL אחר SDFat
בתפריט סקיצה, בחר כלול ספרייה ולאחר מכן בחר מנהל ספריות. בתיבת הדו -שיח לחיפוש הקלד SDFat והמתן עד שיופיע ברשימה להלן, סביר להניח שתצטרך לגלול למטה מהרשימה.
אתה יכול לבחור בין שתי גרסאות:
1, SdFat מאת ביל גריימן
2, SdFat - מזלג Adafruit
ניסיתי את שניהם, נראה ששניהם עובדים בסדר. אבל פרויקט RunCPM אכן המליץ על האפשרות השנייה "מזלג Adafruit", אולם בהערות האחרונות הוא אומר כעת:
כל הלוחות משתמשים כעת בספריית SdFat, מכאן:
אז עכשיו אני בוחר באפשרות הראשונה לפרויקט הזה.
גָמוּר
שלב 4: הורד את פרויקט RunCPM ששונה
בקר באתר Github, לחץ על כפתור CODE והורד כקובץ ZIP
שמור את הקובץ הזה איפשהו (בדרך כלל בספרייה בשם Arduino.
לפתוח את הקובץ לאותו מיקום, הוא ייצור תיקיה בשם RunCPM-master
גָמוּר
שלב 5: פתח וסקור את תוכנית RunCPM והרכב
כעת תוכל להשתמש בתפריט Open, קובץ Arduino IDE. נווט לתיקייה שהעלית למעלה.
בתוך תיקיה זו ישנה נוספת שנקראת 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) ואז תיקיות הן אזורי משתמשים בהדמיית המחיר/מ'. אתה צריך רק את התיקייה 0 כדי להתחיל.
4, מתיקיית הפרוייקט שהורדת בספריית arduino, מצא את התיקיה בשם CCP. זה מכיל גרסאות שונות של מעבד מסוף הפקודה CP/M. העתק את זה שנקרא CCP-DR.60K לשורש כרטיס ה- SD שלך.
5, כעת מצא את התיקיה בספריית הפרויקטים הנקראת DISK, היא מכילה קובץ A. ZIP, עליך לפתוח קובץ זה לספרייה הנקראת A/ 0/ בכרטיס ה- SD שלך. (עיין גם בקובץ ההדרכה הראשונה למידע נוסף). לרוע המזל אין את "0" ברשימת התיקיות, לכן עליך לפתוח תחילה את התיקייה לתיקיה זמנית ולאחר מכן להעתיק את התוכן של תיקיית A ל- A/ 0/ בכרטיס ה- SD.
6, לאחר שתבצע את השלבים שלעיל יהיה לך כרטיס SD בעל מבנה כזה:
F: CCP-DR.60K
/A/0
/1STREAD. ME
/ASM. COM
/…. וכו
/B/0
/C/0
וכו
אם אתה מקבל שגיאות לגבי לא ניתן לטעון CCP וכו 'כאשר אתה מנסה לאתחל מכרטיס ה- SD, בדוק שוב שהכל נמצא בקצב הנכון!
בניסיון להפוך את השלב הזה לקל יותר, העליתי גרסה מוכנה של למעלה, עם תוכנת cp/m נוספת עליה וגם הורד אותה מכאן https://github.com/coopzone-dc/RunCPM/blob /master/… ופשוט את רצונו לשורש כרטיס SD המעוצב. זה אמור להתחיל אותך ואז תוכל ליצור משלך מאוחר יותר.
אני ממליץ לך גם לקרוא את מדריך ההתקנה ב- Github Repo, יש בו תיאור של התיקיות שאתה צריך.
שלב 7: חבר צג ומקלדת VGA
נתק את החשמל לכרטיס ה- ESP VGA32.
חבר את צג ה- VGA שלך
חבר מקלדת PS/2 חבר מחדש את החשמל לכרטיס ה- VGA32 ESP, אתה אמור לראות את נורות המקלדת מהבהבות וכעשר שניות לאחר מכן תופיע תמונה על המסך עם הודעת CP/M!
חשוב: ל- VGA32 יש בעיה בעת שימוש בכרטיס ה- SD ובאיפוס הרך, לכן חשוב לכבות את הכוח כשלב הראשון למעלה, ראה שלב אחרון למידע נוסף.
הרחק לך…
שלב 8: בעיה בכרטיס SD במודול VGA32
התמונה למעלה מציגה את כרטיס ה- ESP32 השני שלי (תוצרת בית), זה עובד מצוין ואין את הבעיה להלן. אז אני יודע שזו לא בעיית תוכנה, אנא קרא להלן על גירסת VGA32.
במודול ESP VG32 שלי (v1.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, קריאה בהפעלה/איפוס). סיכה זו קובעת את המתח עבור ה- RAM, מתח של LDO פנימי (VDD_SDIO). כאשר כרטיס ה- SD קיים הוא מושך את הסיכה הזו גבוה ו- ESP32 חושב שמתח ה- RAM צריך להיות 1.8V, ללא כרטיס ה- SD יש סיכה פנימית זו כדי להגדיר את מתח ה- RAM ל- 3.3V. זה מוזכר למעשה בהערות מדוגמאות שניתנו בפרויקט FABGL, אם לצטט: הערות על GPIO 2 ו- 12 - GPIO2: עלולות לגרום לבעיה בתכנות. GPIO2 חייב להיות גם מחובר/צף או מונע נמוך, כדי להיכנס למטען האתחול הטורי. במצב אתחול רגיל (GPIO0 גבוה), התעלמות מ- GPIO2. - GPIO12: יש להימנע. הוא בוחר מתח פלאש. כדי להשתמש בו השבת את הגדרות זיהוי GPIO12 efuses עם: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! טוב ל- ESP32 עם מתח 3.3V (ESP-WROOM-32). פעולה זו תבריק את ה- ESP32 שלך אם הפלאש אינו 3.3V NOTE1: החלף את "/dev/cu. SLAB_USBtoUART" ביציאה הטורית שלך NOTE2: ניתן להוריד את espefuse.py מ-
זה מציין עוד כי יש להימנע מ- GPIO12, חבל שאף אחד לא אמר ליצרנית כרטיס ה- VGA32 ESP!
תוקן: ניסיתי את האפשרות להגדיר את מתח הבזק כדי לעלות על השימוש ב- GPIO12 ויכול לאשר ב- vga32 ESP שלי, זה עובד! הבעיה לא תוקנה יותר בעיות בכרטיס ה- SD. אני קורא לך לבדוק, לבדוק שוב ולחשוב היטב על יצירת בריק אם תחליט לנסות גם אותו. אני לא ממליץ על זה כפעולה, אבל בשבילי זה עבד.
מוּמלָץ:
הוראות אמולטור משחקי Raspberry Pi: 7 שלבים
הוראות אמולטור משחקי Raspberry Pi: כולם אוהבים לשחק. גם כשאנחנו עושים עבודה רצינית. וזה טבעי כי לכולם מגיע לנוח, פנאי או זמן פנוי. וכמובן, אנחנו בקושי יכולים לסרב לעצמנו לשחק את המשחק האהוב עלינו. אני זוכר את הזמן שבו סוג כלשהו
אמולטור ויניל סוניפטי Spotify: 26 שלבים
אמולטור ויניל סוניפטי Spotify: שים לב שזוהי לא קבוצת ההוראות העדכנית ביותר לפרויקט זה: בקר בכתובת https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d עבור הסט האחרון של הוראות ותמיכה האזנה למוזיקה בויניל נהדרת. שֶׁלָה
פורץ 'פורץ בית' לבד/ השתמש ב- Attiny13 כדי להניע מנוע צעד וסרוו: 5 שלבים
פורץ 'פורץ' לבד '/ השתמש ב- Attiny13 כדי להניע מנוע צעד וסרוו: זה עשוי להיות אחד הפרויקטים המוזרים ביותר שלי עד כה :-) אבל גם אם אינך מעוניין להרחיק פורצים, ניתן להשתמש בפרויקט זה לכל דבר בו אתה נמצא צריך להניע מנוע צעד או מנוע סרוו, או אפילו כמה מנועי DC עם Attiny13.Mo
Raspberry Pi 3: אמולטור ארקייד רטרו: 7 שלבים
Raspberry Pi 3: אמולטור ארקייד רטרו: המוטיבציה שלי לעשות זאת היא היעדר אוריינות טכנולוגית בעולם היום. אפילו עם שפע המחשבים והמכשירים הקטנים אנשים עדיין בורים מאוד לגבי הפונקציות הבסיסיות של הדברים שהם משתמשים בהם מדי יום. אני חושב שזה יהיה
מחצלת מגש שיא של רך לבד: 4 שלבים
מחצלת מגש שיא של רך לבד: אני אוהב להאזין לוויניל בסטריאו "מסה-פי" של קונסולת Sanyo שלי. זה באמת לא כזה סטריאו, הרבה תכונות, אבל פטיפון, כמו זולות אחרות, חסר. במקום שיהיה לך CLUNK מוצק נחמד כשאתה מקיש עליו, הפלטה הדקה והפלסטית