Innholdsfortegnelse:
- Trinn 1: Installer ESP32 -støtte for Arduino (valgfritt)
- Trinn 2: Legge til FabGL -biblioteket i IDE
- Trinn 3: Legge til ekstra SD-kortbibliotek som brukes av RunCPM
- Trinn 4: Last ned det modifiserte RunCPM -prosjektet
- Trinn 5: Åpne og gjennomgå RunCPM -programmet og kompiler
- Trinn 6: Lag et SD-kort som er klart til å starte RunCPM fra
- Trinn 7: Koble til en VGA -skjerm og et tastatur
- Trinn 8: Problem med SD-kort på VGA32-modulen
Video: Retro CP/M Stand Alone Emulator: 8 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
Dette prosjektet bruker VGA32 ESP v1.4 -modulen til å kjøre en kombinasjon eller RunCPM og FabGL for å gi en frittstående datamaskin som kjører et ekvivalent system til CP/M 2.2. Populær på 1980 -tallet som et operativsystem for små datamaskiner. Du kan gå tilbake i tid og gå tilbake til gammel programvare som Wordstar, Supercalc, Adventure og Zork.
Det er frittstående høflighet av FabGL -prosjektet som ga programvaren til å kjøre en standard VGA -skjerm og PS/2 -tastatur.
Hoved -operativsystemet er en modifisert versjon av RunCPM, det er blitt fjernet fra det opprinnelige verket på Github, og jeg har lagt til FabGL -biblioteket slik at det kan brukes på en skjerm i stedet for på en seriell konsoll.
Jeg vil bare si en stor takk til begge prosjektene. Fortsett det gode arbeidet!
Programvaren er testet på minst to versjoner av maskinvare. En VGA32 ESP v1.4 (som solgt ferdig). For det andre min gamle versjon, bygde jeg fra en Wroom ESP32 -modul og skrapbiter fra gamle datamaskiner.
Github-nettstedet nedenfor inneholder viktig informasjon om disse oppsettene, så vel som den endrede klar-til-installering-programvaren.
Dette prosjektet handler om å installere programvaren, ikke om maskinvaren.
Rekvisita:
En VGA32 ESP -modul V1.4 (testet). Funnet på eBay / aliexpress / amazon etc.
Arduino IDE installert på en datamaskin, jeg antar at hvis du leser dette, har du dette allerede.
Installer ESP32 -støttepakken for Arduino IDE. https://github.com/espressif/arduino-esp32 Se trinn 1
FabGL -biblioteket https://www.fabglib.org/ du trenger ikke laste ned noe, arduino IDE kan gjøre dette for oss, se trinn 2.
Last ned en kopi av den endrede RunCPM fra
Trinn 1: Installer ESP32 -støtte for Arduino (valgfritt)
Du kan godt ha allerede gjort dette, hvis du har det kan du hoppe over dette trinnet.
besøk https://github.com/espressif/arduino-esp32 og følg instruksjonene for å installere ved hjelp av boards manager, slik:
Installasjonsinstruksjoner ved bruk av Arduino IDE Boards Manager ============================================= =================
Link til stabil utgivelse:
Installer den nåværende oppstrøms Arduino IDE på 1.8 -nivå eller nyere. Den nåværende versjonen er på Arduino -nettstedet.
Start Arduino og åpne Preferanser -vinduet.
Skriv inn en av utgivelseskoblingene ovenfor i feltet Ytterligere styringsadresser. Du kan legge til flere nettadresser og skille dem med kommaer.
Åpne Boards Manager fra Tools> Board -menyen og installer esp32 -plattformen (og ikke glem å velge ESP32 -kortet fra Tools> Board -menyen etter installasjon).
Trinn 2: Legge til FabGL -biblioteket i IDE
Ved å bruke en tom skisse i Arduino IDE, må du kontrollere at du har valgt ESP -kortet fra Verktøy -menyen, Boards. (I skrivende stund ble ikke VGA32 ESP oppført, jeg velger et generisk Dev Kit -kort).
Velg Inkluder bibliotek på Sketch -menyen, og velg deretter Library manager.
Skriv FabGL i søkedialogen og vent på at den skal vises i listen nedenfor, klikk nå på Installer -knappen.
ferdig
Trinn 3: Legge til ekstra SD-kortbibliotek som brukes av RunCPM
Dette er nesten det samme som forrige trinn, men i stedet for FabGL -søk etter SDFat
Velg Inkluder bibliotek på Sketch -menyen, og velg deretter Library manager. I søkedialogen skriver du inn SDFat og venter på at den skal vises i listen nedenfor. Du må sannsynligvis rulle nedover listen.
Du kan velge mellom to versjoner:
1, SdFat av Bill Greiman
2, SdFat - Adafruit Fork
Jeg har prøvd begge deler, de ser ut til å fungere ok. Men RunCPM -prosjektet anbefalte det andre alternativet "Adafruit Fork", men på de siste notatene står det nå:
Alle tavler bruker nå SdFat -biblioteket, herfra:
Så nå velger jeg det første alternativet for dette prosjektet.
ferdig
Trinn 4: Last ned det modifiserte RunCPM -prosjektet
Besøk Github-nettstedet, Klikk på KODE -knappen og last ned som en ZIP -fil
Lagre denne filen et sted (vanligvis i en katalog som heter Arduino.
Pakk ut filen til samme sted, vil den produsere en mappe som heter RunCPM-master
ferdig
Trinn 5: Åpne og gjennomgå RunCPM -programmet og kompiler
Du kan nå bruke Arduino IDE File, Open -menyen. Naviger til mappen du pakket opp ovenfor.
Inne i denne mappen er en annen som heter RunCPM. Åpne mappen.
Inne i mappen er en.ino -fil kalt RunCPM.ino. Dette er hovedprosjektfilen - åpne den.
Du kan nå se prosjektet, lese kommentarene osv. Gjør endringer hvis du trenger å matche din versjon av VGA32 -ESP. Den bør forhåndskonfigureres for V1.4 på brettet.
Du kan nå klikke kompilere og laste opp, forutsatt at du har VGA32 ESP tilkoblet, laster den opp emulatoren til enheten din.
VIKTIG: VGA32 har kan ha et problem med SD-kortet på dette tidspunktet, så ikke koble det til for å vite. Se siste trinn nedenfor for mer informasjon.
Trinn 6: Lag et SD-kort som er klart til å starte RunCPM fra
Dette er kanskje det mest triks av trinn. Jeg foreslår at du leser README.md på Github -nettstedet om hvordan du gjør dette. Her er min liste over hva jeg skal gjøre:
Jeg antar at du har et tomt SD-kort eller ikke er interessert i å beholde noen filer på den du har, dette vil slette det.
1, formater SD-kortet som FAT-32
2, Lag noen mapper kalt A, B, C D etc (opptil P vil dette være diskstasjonene når du kjører CP/M). Legg merke til at de er hovedsteder.
3, I hver mappe oppretter du Opprett en ny mappe med navnet 0 (det er null) og eventuelt 1, 2, 3 osv. (Opptil 15) Deretter er mapper brukerområder i CP/M -emuleringen. Du trenger bare 0 -mappen for å starte.
4, Fra den nedlastede prosjektmappen i arduino -katalogen, finn mappen kalt CCP. Denne inneholder forskjellige versjoner av CP/M Command Console Proccessor. Kopier den som heter CCP-DR.60K til roten til SD-kortet.
5, Finn nå mappen i prosjektkatalogen kalt DISK, Den inneholder en A. ZIP-fil, du må pakke ut denne filen til katalogen A/ 0/ på SD-kortet. (se også 1.readme -filen for mer informasjon). Dessverre har den ikke "0" i mappelisten, så du må pakke ut til en midlertidig mappe først, og deretter kopiere innholdet for A -mappen til A/ 0/ på SD -kortet.
6, Når du har utført trinnene ovenfor, vil du ha et SD-kort med en struktur som denne:
F: CCP-DR.60K
/A/0
/1STREAD. ME
/ASM. COM
/…. etc
/B/0
/C/0
etc
Hvis du får feil om ikke kan laste inn CCP osv. Når du prøver å starte fra SD-kortet, må du dobbeltsjekke at alt er i riktig tempo!
I et forsøk på å gjøre dette stadiet litt enklere, har jeg lastet opp en ferdig versjon av ovennevnte, med tilleggs-cp/m-programvare på den, så vel som å laste den ned her https://github.com/coopzone-dc/RunCPM/blob /master/… og pakker den ut til roten til et formatert SD-kort. Det burde komme i gang, så kan du lage din egen senere.
Jeg anbefaler deg også å lese installasjonsguiden på Github Repo, den har en beskrivelse av mappene du trenger.
Trinn 7: Koble til en VGA -skjerm og et tastatur
Koble fra strømmen til VGA32 ESP -kortet.
Koble til VGA -skjermen
Koble til et PS/2-tastatur Koble strømmen til VGA32 ESP-kortet på nytt. Du bør se tastaturlampene blinke og omtrent 10 sekunder senere vil et bilde vises på skjermen med en CP/M-melding!
Viktig: VGA32 har et problem når du bruker SD-kortet og myk tilbakestilling. Derfor er det viktig å SLÅ AV STRØMMEN som det første trinnet ovenfor. Se siste trinn for mer informasjon.
Borte du går …
Trinn 8: Problem med SD-kort på VGA32-modulen
Bildet ovenfor viser mitt andre ESP32 -kort (hjemmelaget), dette fungerer fint og har ikke problemet nedenfor. Så jeg vet at det ikke er et programvareproblem, vennligst les nedenfor om VGA32 -versjonen.
På min VG32 ESP-modul (v1.4) bruker SD-kortet GPIO12. Dette er ikke anbefalt av Espressif Systems, da denne pinnen brukes ved oppstart for å oppdage arbeidsspenningen for det interne minnet. Jeg skulle ønske noen hadde fortalt fyren som lager dette VGA32 -kortet! Det kan være annerledes for deg, så forhåpentligvis vil du ikke ha dette problemet.
Problemene er:
1, Kan ikke laste opp en skisse når kortet er plugget inn.
2, Etter at du har trykket på tilbakestillingsknappen, låses den til SD-kortet er fjernet. Deretter starter den til en feilskjerm som sier at det ikke er noe SD-kort! Du kan sette inn kortet og tilbakestille det igjen, så fungerer det andre gang.
Dette problemet kan løses (men har en risiko) se README.md på
eller du kan alltid slå av/på hardt for å starte brettet. Av en eller annen grunn ser dette ut til å fungere fint. Også hvis du trenger å laste opp RunCPM-programvaren på nytt må du først fjerne SD-kortet.
Dette er et utdrag fra README. MD som forklarer problemet. Jeg har brukt reparasjonen, og den fungerer bra, men på grunn av naturen er risikoen din, les videre …
Innstillingene for VGA32 ESP ser imidlertid ut til å være i konflikt med GPIO -innstillingene for SD -kortet.
Det fungerer, men for å laste opp må du fjerne SD -kortet, og etter en myk tilbakestilling må du fjerne SD -kortet og deretter erstatte det etterfulgt av en annen tilbakestilling. Det fungerer ok fra en på eller hard tilbakestilling. Gi meg beskjed hvis du kan hjelpe med å fikse dette. OPPDATERING 11.okt.2020: VGA32 ESP v1.4 bruker GPIO12 (MTDI, les ved oppstart/tilbakestilling). Denne pinnen bestemmer spenningen for RAM, Voltage of Internal LDO (VDD_SDIO). Når SD-kortet er tilstede, trekker den denne pinnen høyt, og ESP32 tror at RAM-spenningen skal være 1,8V, uten SD-kortet har denne pinnen intern nedtrekk for å sette RAM-spenningen til 3,3V. Dette er faktisk nevnt i notatene fra eksempler på FABGL -prosjektet, for å sitere: notater om GPIO 2 og 12 - GPIO2: kan forårsake problemer med programmering. GPIO2 må også enten være tilkoblet/flytende eller kjørt lavt for å gå inn i den serielle oppstartslasteren. I normal oppstartsmodus (GPIO0 høy) ignoreres GPIO2. - GPIO12: bør unngås. Den velger blitspenning. For å bruke den, deaktiver GPIO12 gjenkjenningsinnstilling efuses med: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Bra for ESP32 med 3,3V spenning (ESP-WROOM-32). Dette vil BRICKE ESP32 hvis blitsen ikke er 3.3V NOTE1: erstatt "/dev/cu. SLAB_USBtoUART" med din serielle port NOTE2: espefuse.py kan lastes ned fra
Dette bemerker videre at GPIO12 bør unngås, en synd ingen sa til produsenten av VGA32 ESP -kortet!
FIKSET: Jeg har prøvd muligheten til å sette blitspenningen til å overskride bruken av GPIO12 og kan bekrefte på min vga32 ESP, det fungerer! Problemet løste ikke flere problemer med SD -kortet. Jeg oppfordrer deg til å sjekke, dobbeltsjekke og tenke nøye på å lage en BRICK hvis du bestemmer deg for å prøve den også. Jeg anbefaler det ikke som en handling, men for meg fungerte det.
Anbefalt:
2-spiller Stand-Up Retro Arcade av Micro Center: 20 trinn
2-spiller Stand-Up Retro Arcade av Micro Center: Ditt lokale Micro Center har nå alt du trenger for å lage ditt eget Raspberry Pi-baserte Retro Arcade-skap. Kittene kan fullstendig tilpasses, inkludert skap, Raspberry Pi, knapper, joysticks, lyd- og videotilbehør og mer. Den
Stand Alone Arduino ATmega328p: 7 trinn (med bilder)
Stand Alone Arduino ATmega328p: Det hele startet da jeg har sett det instruerbare " Binary Game " av Keebie81https: //www.instructables.com/id/Binary-Game/ Men jeg har trodd at en frittstående versjon i stedet for et Arduino-brett, ville vært bedre for å få gratis
Gjør X-box Rock Band-trommer til en Midi Stand Alone elektroniske trommer: 4 trinn (med bilder)
Slå X-box Rock Band Drums til en Midi Stand Alone Electronic Drums .: Jeg var heldig som fikk et brukt x-box trommesett, det er litt grovt og uten padle, men ingenting som ikke kan fikses. gjør den til et frittstående elektrisk trommesett. Leser den analoge verdien fra piezosensoren og gjør den til MIDI -kommando
Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en trinnmotor og en servo: 5 trinn
Home Alone' innbruddstyv avskrekkende/ bruk Attiny13 til å kjøre en steppermotor og en servo: Dette kan være et av mine rareste prosjekter ennå :-) Men selv om du ikke er interessert i å holde innbruddstyver borte, kan dette prosjektet brukes til alt du kan trenger å kjøre en trinnmotor eller servomotor, eller til og med flere likestrømsmotorer med en Attiny13.Mo
Raspberry Pi 3: Retro Arcade Emulator: 7 trinn
Raspberry Pi 3: Retro Arcade Emulator: Min motivasjon for å gjøre dette er mangelen på teknologisk leseferdighet i dagens verden. Selv med overflod av datamaskiner og små enheter er folk fortsatt veldig uvitende om de grunnleggende funksjonene til tingene de bruker til daglig. Jeg tror at dette vil