Innholdsfortegnelse:

Retro CP/M Stand Alone Emulator: 8 trinn
Retro CP/M Stand Alone Emulator: 8 trinn

Video: Retro CP/M Stand Alone Emulator: 8 trinn

Video: Retro CP/M Stand Alone Emulator: 8 trinn
Video: MyZ80 CP/M Emulator running on AmigaOS 4.1 under DOSBox Emulator 2024, Juli
Anonim
Retro CP/M Stand Alone Emulator
Retro CP/M Stand Alone Emulator

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)

Installer ESP32 -støtte for Arduino (valgfritt)
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

Legger til FabGL -biblioteket i IDE
Legger til FabGL -biblioteket i IDE
Legger til FabGL -biblioteket i IDE
Legger 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

Legger til ekstra SD-kortbibliotek som brukes av RunCPM
Legger 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

Last ned det modifiserte RunCPM -prosjektet
Last ned det modifiserte RunCPM -prosjektet
Last ned det modifiserte RunCPM -prosjektet
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

Åpne og gjennomgå RunCPM -programmet og kompiler
Å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 til en VGA -skjerm og et tastatur
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

Problem med SD-kort på VGA32-modulen
Problem med SD-kort på VGA32-modulen
Problem med SD-kort på VGA32-modulen
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: