תוכן עניינים:

רטרו CP/M אמולטור לבד: 8 שלבים
רטרו CP/M אמולטור לבד: 8 שלבים

וִידֵאוֹ: רטרו CP/M אמולטור לבד: 8 שלבים

וִידֵאוֹ: רטרו CP/M אמולטור לבד: 8 שלבים
וִידֵאוֹ: Поиск Ваз 2101 под проект: ТУРБО 4WD 500л.с 2024, נוֹבֶמבֶּר
Anonim
אמולטור CP/M רטרו לבד
אמולטור CP/M רטרו לבד

פרויקט זה משתמש במודול 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 (אופציונלי)

התקן את תמיכת ESP32 עבור Arduino (אופציונלי)
התקן את תמיכת ESP32 עבור Arduino (אופציונלי)

יתכן שכבר עשית זאת, אם יש לך תוכל לדלג על שלב זה.

בקר בכתובת https://github.com/espressif/arduino-esp32 ופעל לפי ההנחיות להתקנה באמצעות מנהל לוחות, כך:

הוראות התקנה באמצעות מנהל לוחות Arduino IDE =========================================== =================

קישור לשחרור יציב:

התקן את ה- Arduino IDE הנוכחי במעלה הזרם ברמת 1.8 ואילך. הגרסה הנוכחית נמצאת באתר Arduino.

הפעל את Arduino ופתח את חלון העדפות.

הזן אחד מקישורי המהדורה למעלה בשדה כתובות אתרים נוספות של מנהל הלוח. אתה יכול להוסיף מספר כתובות אתרים ולהפריד אותן באמצעות פסיקים.

פתח את מנהל הלוחות מתוך כלים> תפריט לוח והתקן את פלטפורמת esp32 (ואל תשכח לבחור את לוח ESP32 שלך מתוך כלים> תפריט לוח לאחר ההתקנה).

שלב 2: הוספת ספריית FabGL ל- IDE

הוספת ספריית FabGL ל- IDE
הוספת ספריית FabGL ל- IDE
הוספת ספריית FabGL ל- IDE
הוספת ספריית FabGL ל- IDE

באמצעות סקיצה ריקה ב- Arduino IDE, וודא שבחרת את לוח ה- ESP שלך מתפריט כלים, לוחות. (בזמן כתיבת ה- VGA32 ESP לא היה רשום, אני בוחר בלוח Dev Kit כללי).

בתפריט סקיצה, בחר כלול ספרייה ולאחר מכן בחר מנהל ספריות.

בתיבת הדו -שיח לחיפוש הקלד FabGL והמתן עד שיופיע ברשימה להלן, לחץ כעת על כפתור ההתקנה.

גָמוּר

שלב 3: הוספת ספריית כרטיסי SD נוספת המשמשת את RunCPM

הוספת ספריית כרטיסי SD נוספת המשמשת את RunCPM
הוספת ספריית כרטיסי SD נוספת המשמשת את RunCPM

זה כמעט זהה לשלב הקודם אבל במקום חיפוש FabGL אחר SDFat

בתפריט סקיצה, בחר כלול ספרייה ולאחר מכן בחר מנהל ספריות. בתיבת הדו -שיח לחיפוש הקלד SDFat והמתן עד שיופיע ברשימה להלן, סביר להניח שתצטרך לגלול למטה מהרשימה.

אתה יכול לבחור בין שתי גרסאות:

1, SdFat מאת ביל גריימן

2, SdFat - מזלג Adafruit

ניסיתי את שניהם, נראה ששניהם עובדים בסדר. אבל פרויקט RunCPM אכן המליץ על האפשרות השנייה "מזלג Adafruit", אולם בהערות האחרונות הוא אומר כעת:

כל הלוחות משתמשים כעת בספריית SdFat, מכאן:

אז עכשיו אני בוחר באפשרות הראשונה לפרויקט הזה.

גָמוּר

שלב 4: הורד את פרויקט RunCPM ששונה

הורד את פרויקט RunCPM ששונה
הורד את פרויקט RunCPM ששונה
הורד את פרויקט RunCPM ששונה
הורד את פרויקט RunCPM ששונה

בקר באתר Github, לחץ על כפתור CODE והורד כקובץ ZIP

שמור את הקובץ הזה איפשהו (בדרך כלל בספרייה בשם Arduino.

לפתוח את הקובץ לאותו מיקום, הוא ייצור תיקיה בשם RunCPM-master

גָמוּר

שלב 5: פתח וסקור את תוכנית RunCPM והרכב

פתח וסקור את תוכנית RunCPM והרכיב
פתח וסקור את תוכנית 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

חבר צג ומקלדת VGA
חבר צג ומקלדת VGA

נתק את החשמל לכרטיס ה- ESP VGA32.

חבר את צג ה- VGA שלך

חבר מקלדת PS/2 חבר מחדש את החשמל לכרטיס ה- VGA32 ESP, אתה אמור לראות את נורות המקלדת מהבהבות וכעשר שניות לאחר מכן תופיע תמונה על המסך עם הודעת CP/M!

חשוב: ל- VGA32 יש בעיה בעת שימוש בכרטיס ה- SD ובאיפוס הרך, לכן חשוב לכבות את הכוח כשלב הראשון למעלה, ראה שלב אחרון למידע נוסף.

הרחק לך…

שלב 8: בעיה בכרטיס SD במודול VGA32

בעיה בכרטיס SD במודול VGA32
בעיה בכרטיס SD במודול VGA32
בעיה בכרטיס SD במודול VGA32
בעיה בכרטיס 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. אני קורא לך לבדוק, לבדוק שוב ולחשוב היטב על יצירת בריק אם תחליט לנסות גם אותו. אני לא ממליץ על זה כפעולה, אבל בשבילי זה עבד.

מוּמלָץ: