Πίνακας περιεχομένων:

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 Βήματα
Βίντεο: CS50 2013 - Week 8, continued 2024, Ιούλιος
Anonim
Retro CP/M Stand Alone Emulator
Retro CP/M Stand Alone Emulator

Αυτό το έργο χρησιμοποιεί τη μονάδα VGA32 ESP v1.4 για την εκτέλεση ενός συνδυασμού ή το RunCPM και το FabGL για την παροχή ενός αυτόνομου υπολογιστή που λειτουργεί ισοδύναμο σύστημα CP/M 2.2. Δημοφιλές κατά τη δεκαετία του 1980 ως λειτουργικό σύστημα για μικρούς υπολογιστές. Μπορείτε να επιστρέψετε στο χρόνο και να ξαναεπισκεφτείτε παλιό λογισμικό όπως το Wordstar, το Supercalc, το Adventure και το Zork.

Είναι αυτόνομη ευγενική προσφορά του έργου FabGL που παρείχε το λογισμικό για την εκτέλεση μιας τυπικής οθόνης VGA και πληκτρολογίου PS/2.

Το κύριο λειτουργικό σύστημα είναι μια τροποποιημένη έκδοση του RunCPM, έχει απομακρυνθεί από την αρχική εργασία στο Github και έχω προσθέσει τη βιβλιοθήκη FabGL για να μπορέσει να χρησιμοποιηθεί σε οθόνη αντί σε σειριακή κονσόλα.

Θα ήθελα απλώς να πω ένα μεγάλο ευχαριστώ και στα δύο έργα. Συνέχισε την καλή δουλειά!

Το λογισμικό έχει δοκιμαστεί σε τουλάχιστον δύο εκδόσεις υλικού. Ένα το VGA32 ESP v1.4 (όπως πωλείται έτοιμο). Δεύτερον, η παλιά μου έκδοση, έχτισα από μια μονάδα Wroom ESP32 και αφαιρώ κομμάτια από παλιούς υπολογιστές.

Ο παρακάτω ιστότοπος 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 Boards Manager ========================================== ================

Σταθερός σύνδεσμος έκδοσης:

Εγκαταστήστε το τρέχον upduream Arduino IDE στο επίπεδο 1.8 ή μεταγενέστερο. Η τρέχουσα έκδοση βρίσκεται στον ιστότοπο του Arduino.

Ξεκινήστε το Arduino και ανοίξτε το παράθυρο Προτιμήσεις.

Εισαγάγετε έναν από τους παραπάνω συνδέσμους κυκλοφορίας στο πεδίο Πρόσθετες διευθύνσεις URL διευθυντή πίνακα. Μπορείτε να προσθέσετε πολλά URL, διαχωρίζοντάς τα με κόμματα.

Ανοίξτε τον Διαχειριστή πινάκων από το Εργαλεία> Μενού Πίνακας και εγκαταστήστε την πλατφόρμα 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 του Bill Greiman

2, SdFat - Πιρούνι Adafruit

Έχω δοκιμάσει και τα δύο, και τα δύο φαίνεται να λειτουργούν εντάξει. Αλλά το έργο RunCPM πρότεινε τη δεύτερη επιλογή "Πιρούνι Adafruit", ωστόσο στις τελευταίες σημειώσεις λέει τώρα:

Όλοι οι πίνακες χρησιμοποιούν τώρα τη βιβλιοθήκη SdFat, από εδώ:

Έτσι, τώρα επιλέγω την πρώτη επιλογή για αυτό το έργο.

πεπερασμένος

Βήμα 4: Κάντε λήψη του τροποποιημένου έργου RunCPM

Κάντε λήψη του τροποποιημένου έργου RunCPM
Κάντε λήψη του τροποποιημένου έργου RunCPM
Κάντε λήψη του τροποποιημένου έργου RunCPM
Κάντε λήψη του τροποποιημένου έργου RunCPM

Επισκεφτείτε τον ιστότοπο Github, Κάντε κλικ στο κουμπί ΚΩΔΙΚΟΣ και κάντε λήψη ως αρχείο 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, Από το φάκελο έργου που έχετε κατεβάσει στον κατάλογο arduino, βρείτε το φάκελο που ονομάζεται CCP. Αυτό περιέχει διάφορες εκδόσεις του Διαχειριστή κονσόλας εντολών CP/M. Αντιγράψτε αυτό που ονομάζεται CCP-DR.60K στη ρίζα της κάρτας SD.

5, Τώρα βρείτε το φάκελο στον κατάλογο έργου που ονομάζεται DISK, Περιέχει ένα αρχείο A. ZIP, πρέπει να αποσυμπιέσετε αυτό το αρχείο στον κατάλογο που ονομάζεται A/ 0/ στην κάρτα SD σας. (επίσης δείτε το αρχείο 1streadme για περισσότερες πληροφορίες). Δυστυχώς, δεν έχει το "0" στη λίστα φακέλων, οπότε πρέπει πρώτα να αποσυμπιέσετε σε έναν προσωρινό φάκελο και, στη συνέχεια, να αντιγράψετε τα περιεχόμενα του φακέλου A στο A/ 0/ στην κάρτα SD.

6, Όταν κάνετε τα παραπάνω βήματα, θα έχετε μια κάρτα SD με μια δομή όπως αυτή:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. και τα λοιπά

/Β/0

/C/0

και τα λοιπά

Εάν λάβετε σφάλματα σχετικά με τη φόρτωση του CCP κλπ όταν προσπαθείτε να ξεκινήσετε από την κάρτα SD, ελέγξτε ξανά ότι έχετε τα πάντα στο σωστό ρυθμό!

Σε μια προσπάθεια να κάνω αυτό το στάδιο λίγο πιο εύκολο, ανέβασα μια έτοιμη έκδοση του παραπάνω, με πρόσθετο λογισμικό cp/m, καθώς και να το κατεβάσω από εδώ https://github.com/coopzone-dc/RunCPM/blob /master/… και απλά αποσυμπιέστε το στη ρίζα μιας μορφοποιημένης κάρτας SD. Θα πρέπει να ξεκινήσετε και στη συνέχεια να δημιουργήσετε τη δική σας αργότερα.

Σας συνιστώ επίσης να διαβάσετε τον οδηγό εγκατάστασης στο Github Repo, έχει μια περιγραφή των φακέλων που χρειάζεστε.

Βήμα 7: Συνδέστε μια οθόνη VGA και ένα πληκτρολόγιο

Συνδέστε μια οθόνη VGA και ένα πληκτρολόγιο
Συνδέστε μια οθόνη VGA και ένα πληκτρολόγιο

Αποσυνδέστε την τροφοδοσία από την κάρτα VGA32 ESP.

Συνδέστε την οθόνη VGA

Συνδέστε ένα πληκτρολόγιο PS/2 Επανασυνδέστε την τροφοδοσία στην κάρτα VGA32 ESP, θα πρέπει να δείτε τις λυχνίες του πληκτρολογίου να αναβοσβήνουν και περίπου 10 δευτερόλεπτα αργότερα θα εμφανιστεί μια εικόνα στην οθόνη με προτροπή CP/M!

Σημαντικό: Το VGA32 παρουσιάζει πρόβλημα κατά τη χρήση της κάρτας SD και της μαλακής επαναφοράς, γι 'αυτό είναι σημαντικό να απενεργοποιήσετε το POWER OFF ως το πρώτο βήμα παραπάνω. Δείτε το τελευταίο βήμα για περισσότερες πληροφορίες.

Φύγε μακριά…

Βήμα 8: Πρόβλημα με την κάρτα SD στη μονάδα VGA32

Πρόβλημα με την κάρτα SD στη μονάδα VGA32
Πρόβλημα με την κάρτα SD στη μονάδα VGA32
Πρόβλημα με την κάρτα SD στη μονάδα VGA32
Πρόβλημα με την κάρτα SD στη μονάδα VGA32

Η παραπάνω φωτογραφία δείχνει τη δεύτερη κάρτα μου ESP32 (σπιτική), λειτουργεί καλά και δεν έχει το παρακάτω πρόβλημα. Γνωρίζω λοιπόν ότι δεν είναι θέμα λογισμικού, διαβάστε παρακάτω για την έκδοση VGA32.

Στη μονάδα VG32 ESP (v1.4), η κάρτα SD χρησιμοποιεί GPIO12. Αυτό δεν συνιστάται από την Espressif Systems, καθώς αυτός ο πείρος χρησιμοποιείται κατά την ενεργοποίηση για την ανίχνευση της τάσης λειτουργίας της εσωτερικής μνήμης. Μακάρι κάποιος να το είχε πει στον τύπο που έφτιαξε αυτήν την κάρτα VGA32! Maybeσως να είναι διαφορετικό για εσάς, οπότε ελπίζουμε ότι δεν θα έχετε αυτό το ζήτημα.

Τα προβλήματα είναι:

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 ΠΡΟΕΙΔΟΠΟΙΗΣΗ !! Καλό για ESP32 με τάση 3,3V (ESP-WROOM-32). Αυτό θα BRICK το ESP32 σας εάν το φλας δεν είναι 3.3V NOTE1: αντικαταστήστε το "/dev/cu. SLAB_USBtoUART" με τη σειριακή σας θύρα NOTE2: το espefuse.py είναι διαθέσιμο για λήψη από τη διεύθυνση

Αυτό σημειώνει περαιτέρω ότι το GPIO12 πρέπει να αποφεύγεται, κάτι που δεν είπε κανείς στον κατασκευαστή της κάρτας VGA32 ESP!

ΔΙΟΡΘΩΘΗΚΕ: Δοκίμασα την επιλογή ρύθμισης της τάσης φλας για να παρακάμψω τη χρήση του GPIO12 και μπορώ να επιβεβαιώσω στο vga32 ESP μου, λειτουργεί! Το πρόβλημα δεν επιλύθηκε πλέον με την κάρτα SD. Σας προτρέπω να ελέγξετε, να ελέγξετε ξανά και να σκεφτείτε προσεκτικά τη δημιουργία ενός ΤΟΥΒΑΚΙ αν αποφασίσετε να το δοκιμάσετε επίσης. Δεν το συνιστώ ως δράση, αλλά για μένα λειτούργησε.

Συνιστάται: