Inhoudsopgave:

Retro CP/M stand-alone emulator - Ajarnpa
Retro CP/M stand-alone emulator - Ajarnpa

Video: Retro CP/M stand-alone emulator - Ajarnpa

Video: Retro CP/M stand-alone emulator - Ajarnpa
Video: Building a Standalone Z80 CP/M Computer (part 1) 2024, November
Anonim
Retro CP/M stand-alone emulator
Retro CP/M stand-alone emulator

Dit project gebruikt de VGA32 ESP v1.4-module om een combinatie uit te voeren of RunCPM en FabGL om een stand-alone computer te bieden met een systeem dat gelijkwaardig is aan CP/M 2.2. Populair in de jaren 80 als besturingssysteem voor kleine computers. U kunt teruggaan in de tijd en oude software zoals Wordstar, Supercalc, Adventure en Zork opnieuw bekijken.

Het is op zichzelf staand dankzij het FabGL-project dat de software leverde om een standaard VGA-monitor en PS/2-toetsenbord te gebruiken.

Het belangrijkste besturingssysteem is een aangepaste versie van RunCPM, het is afgeleid van het oorspronkelijke werk op Github en ik heb de FabGL-bibliotheek toegevoegd zodat het op een scherm kan worden gebruikt in plaats van op een seriële console.

Ik wil beide projecten heel erg bedanken. Ga zo door!

De software is getest op ten minste twee versies van hardware. Een van de VGA32 ESP v1.4 (zoals verkocht kant en klaar). Ten tweede, mijn oude versie, ik heb gebouwd van een Wroom ESP32-module en stukjes van oude computers.

De onderstaande Github-site bevat belangrijke informatie over deze instellingen en over de gewijzigde kant-en-klare software.

Dit project gaat over het installeren van de software, niet over de hardware.

Benodigdheden:

Een VGA32 ESP-module V1.4 (getest). Gevonden op eBay / aliexpress / amazon enz

De Arduino IDE is geïnstalleerd op een computer, ik neem aan dat als je dit leest, je dit al hebt.

Installeer het ESP32-ondersteuningspakket voor Arduino IDE. https://github.com/espressif/arduino-esp32 Zie stap 1

De FabGL bibliotheek https://www.fabglib.org/ je hoeft niets te downloaden, de arduino IDE kan dit voor ons doen, zie stap 2.

Download een kopie van de gewijzigde RunCPM van

Stap 1: Installeer ESP32-ondersteuning voor Arduino (optioneel)

Installeer ESP32-ondersteuning voor Arduino (optioneel)
Installeer ESP32-ondersteuning voor Arduino (optioneel)

Misschien heb je dit al gedaan, als je dat hebt gedaan, kun je deze stap overslaan.

bezoek https://github.com/espressif/arduino-esp32 en volg de instructies voor het installeren met Board Manager, zoals deze:

Installatie-instructies met Arduino IDE Boards Manager=========================================== ===============

Stabiele releaselink:

Installeer de huidige upstream Arduino IDE op het 1.8-niveau of hoger. De huidige versie staat op de Arduino-website.

Start Arduino en open het voorkeurenvenster.

Voer een van de bovenstaande release-links in het veld Extra Board Manager-URL's in. U kunt meerdere URL's toevoegen, gescheiden door komma's.

Open Boards Manager vanuit Tools > Board menu en installeer esp32 platform (en vergeet niet om je ESP32 board te selecteren via Tools > Board menu na installatie).

Stap 2: De FabGL-bibliotheek toevoegen aan de IDE

De FabGL-bibliotheek toevoegen aan de IDE
De FabGL-bibliotheek toevoegen aan de IDE
De FabGL-bibliotheek toevoegen aan de IDE
De FabGL-bibliotheek toevoegen aan de IDE

Gebruik een blanco schets in de Arduino IDE en zorg ervoor dat je je ESP-bord hebt geselecteerd in het menu Extra, Borden. (Op het moment van schrijven stond de VGA32 ESP niet in de lijst, ik heb gekozen voor een generiek Dev Kit-bord).

Kies in het menu Schets de optie Bibliotheek opnemen en kies vervolgens Bibliotheekbeheer.

Typ FabGL in het zoekdialoogvenster en wacht tot het in de onderstaande lijst verschijnt, klik nu op de knop Installeren.

afgewerkt

Stap 3: Extra SD-kaartbibliotheek toevoegen die door RunCPM wordt gebruikt

Extra SD-kaartbibliotheek toevoegen die door RunCPM wordt gebruikt
Extra SD-kaartbibliotheek toevoegen die door RunCPM wordt gebruikt

Dit is bijna hetzelfde als de vorige stap, maar zoek in plaats van FabGL naar SDFat

Kies in het menu Schets de optie Bibliotheek opnemen en kies vervolgens Bibliotheekbeheer. Typ in het zoekdialoogvenster SDFat en wacht tot het in de onderstaande lijst verschijnt, u zult waarschijnlijk door de lijst moeten scrollen.

U heeft de keuze uit twee uitvoeringen:

1, SdFat door Bill Greiman

2, SdFat - Adafruit-vork

Ik heb beide geprobeerd, ze lijken allebei goed te werken. Maar het RunCPM-project heeft de tweede optie "Adafruit Fork" aanbevolen, maar in de laatste opmerkingen staat nu:

Alle boards gebruiken nu de SdFat-bibliotheek, vanaf hier:

Dus nu kies ik de eerste optie voor dit project.

afgewerkt

Stap 4: Download het aangepaste RunCPM-project

Download het gewijzigde RunCPM-project
Download het gewijzigde RunCPM-project
Download het gewijzigde RunCPM-project
Download het gewijzigde RunCPM-project

Bezoek de Github-site, Klik op de CODE-knop en download als ZIP-bestand

Sla dit bestand ergens op (normaal gesproken in een map met de naam Arduino.

Pak het bestand uit naar dezelfde locatie, het zal een map produceren met de naam RunCPM-master

afgewerkt

Stap 5: Open en bekijk het RunCPM-programma en compileer

Open en bekijk het RunCPM-programma en compileer
Open en bekijk het RunCPM-programma en compileer

U kunt nu het Arduino IDE-bestand, menu Openen gebruiken. Navigeer naar de map die u hierboven hebt gezipt.

In deze map bevindt zich een andere genaamd RunCPM. Open de map.

In die map bevindt zich een.ino-bestand met de naam RunCPM.ino. Dit is het hoofdprojectbestand - open het.

U kunt nu het project bekijken, de opmerkingen lezen enz. Breng wijzigingen aan als u uw versie van VGA32 -ESP wilt aanpassen. Het moet vooraf worden geconfigureerd voor V1.4 van het bord.

U kunt nu op compileren en uploaden klikken, ervan uitgaande dat u VGA32 ESP hebt aangesloten, zal de emulator naar uw apparaat worden geüpload.

BELANGRIJK: De VGA32 kan op dit moment een probleem hebben met de SD-kaart, dus sluit hem niet aan voor de zekerheid. Zie de laatste stap hieronder voor meer informatie.

Stap 6: Maak een SD-kaart klaar om uw RunCPM op te starten vanaf

Dit is misschien wel de meest truc van stappen. Ik raad je aan om de README.md van de Github-site te lezen over hoe je dit kunt doen. Hier is mijn lijst van wat te doen:

Ik neem aan dat je een lege SD-kaart hebt of niet geïnteresseerd bent in het bewaren van bestanden op degene die je hebt, dit zal het wissen.

1, formatteer de SD-kaart als FAT-32

2, maak enkele mappen aan met de namen A, B, C D enz (tot P zullen dit de schijfstations zijn wanneer CP/M wordt uitgevoerd). Let op het zijn hoofdletters.

3. In elke map die u maakt. Maak een andere map met de naam 0 (dat is een nul) en optioneel 1, 2, 3 enz. (maximaal 15) Dan zijn mappen gebruikersgebieden in de CP/M-emulatie. Je hebt alleen de 0-map nodig om te beginnen.

4, Zoek in uw gedownloade projectmap in de arduino-map de map met de naam CCP. Deze bevat verschillende versies van de CP/M Command Console Processor. Kopieer degene met de naam CCP-DR.60K naar de root van je SD-kaart.

5, Zoek nu de map in de projectmap genaamd DISK. Het bevat een A. ZIP-bestand, u moet dit bestand uitpakken naar de map met de naam A/0/ op uw SD-kaart. (zie ook het 1streadme-bestand voor meer info). Helaas heeft het de "0" niet in de mappenlijst, dus u moet eerst uitpakken naar een tijdelijke map en vervolgens de inhoud van de A-map naar A/0/ op de SD-kaart kopiëren.

6, Als u de bovenstaande stappen heeft uitgevoerd, heeft u een SD-kaart met een structuur als deze:

F: CCP-DR.60K

/A/0

/1STREEAD. ME

/ASM. COM

/…. enzovoort

/B/0

/C/0

enzovoort

Als je foutmeldingen krijgt over het niet laden van CCP enz. wanneer je probeert op te starten vanaf de SD-kaart, controleer dan of je alles in het juiste tempo hebt gedaan!

In een poging om deze fase een beetje gemakkelijker te maken, heb ik een kant-en-klare versie van hierboven geüpload, met toevoeging cp/m-software erop en download deze ook hier https://github.com/coopzone-dc/RunCPM/blob /master/… en pak het uit naar de root van een geformatteerde SD-kaart. Het zou je op weg moeten helpen, dan kun je er later zelf een maken.

Ik raad je ook aan de installatiehandleiding op de Github Repo te lezen, deze bevat een beschrijving van de mappen die je nodig hebt.

Stap 7: Sluit een VGA-monitor en toetsenbord aan

Sluit een VGA-monitor en toetsenbord aan
Sluit een VGA-monitor en toetsenbord aan

Koppel de stroom naar de VGA32 ESP-kaart los.

Sluit uw VGA-monitor aan

Sluit een PS/2-toetsenbord aan Sluit de voeding weer aan op de VGA32 ESP-kaart, u zou de toetsenbordlampjes moeten zien knipperen en ongeveer 10 seconden later verschijnt er een afbeelding op het scherm met een CP/M-prompt!

Belangrijk: De VGA32 heeft een probleem bij het gebruik van de SD-kaart en zachte reset, daarom is het belangrijk om DE STROOM UIT te schakelen als de eerste stap hierboven, zie de laatste stap voor meer informatie.

Daar ga je…

Stap 8: Probleem met SD-kaart op VGA32-module

Probleem met SD-kaart op VGA32-module
Probleem met SD-kaart op VGA32-module
Probleem met SD-kaart op VGA32-module
Probleem met SD-kaart op VGA32-module

De foto hierboven toont mijn tweede ESP32-kaart (zelfgemaakt), deze werkt prima en heeft het onderstaande probleem niet. Dus ik weet dat het geen softwareprobleem is, lees hieronder over de VGA32-versie.

Op mijn VG32 ESP-module (v1.4) gebruikt de SD-kaart GPIO12, dit wordt niet aanbevolen door Espressif Systems omdat deze pin wordt gebruikt bij het opstarten om de werkspanning voor het interne geheugen te detecteren. Ik wou dat iemand het had verteld aan de man die deze VGA32-kaart heeft gemaakt! Het kan bij jou anders zijn, dus hopelijk heb je dit probleem niet.

De problemen zijn:

1, kan geen schets uploaden wanneer de kaart is aangesloten.

2, Na het indrukken van de resetknop, wordt deze vergrendeld totdat de SD-kaart wordt verwijderd. Dan start het op naar een foutscherm met de mededeling dat er geen SD-kaart is! U kunt de kaart erin steken en opnieuw instellen en het zal de tweede keer werken.

Dit probleem is op te lossen (maar heeft een risico) zie de README.md op

of je kunt altijd een harde aan-/uitschakeling doen om het bord te starten. Om de een of andere reden lijkt dit goed te werken. Ook als u de RunCPM-software opnieuw moet uploaden, moet u eerst de SD-kaart verwijderen.

Dit is een uittreksel uit de README. MD waarin het probleem wordt uitgelegd. Ik heb de fix gebruikt en het werkt prima, MAAR vanwege de aard is het risico voor jou, lees verder …

De instellingen voor de VGA32 ESP lijken echter een conflict te hebben met de GPIO-instellingen voor de SD-kaart.

Het werkt wel, maar om te uploaden moet je de SD-kaart verwijderen en na een zachte reset moet je de SD-kaart verwijderen en vervolgens vervangen, gevolgd door een nieuwe reset. Het werkt goed vanaf een stroom aan of een harde reset. Als je dit kunt oplossen, laat het me dan weten. UPDATE 11okt2020: De VGA32 ESP v1.4 gebruikt GPIO12 (MTDI, lezen bij opstarten/reset). Deze pin bepaalt de spanning voor het RAM, spanning van interne LDO (VDD_SDIO). Wanneer de SD-kaart aanwezig is, trekt deze pin hoog en de ESP32 denkt dat de RAM-spanning 1.8V moet zijn, zonder de SD-kaart heeft deze pin interne pull-down om de RAM-spanning in te stellen op 3,3V. Dit wordt zelfs vermeld in de aantekeningen van voorbeelden die zijn verstrekt over het FABGL-project, om te citeren: opmerkingen over GPIO 2 en 12 - GPIO2: kan problemen veroorzaken bij het programmeren. GPIO2 moet ook ofwel niet aangesloten/zwevend blijven, ofwel laag worden aangestuurd om de seriële bootloader te kunnen openen. In de normale opstartmodus (GPIO0 hoog) wordt GPIO2 genegeerd. - GPIO12: moet worden vermeden. Het selecteert de flitsspanning. Om het te gebruiken, schakelt u de GPIO12-detectie-instelling uit met: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN!! Goed voor ESP32 met een spanning van 3,3 V (ESP-WROOM-32). Dit zal je ESP32 BAKKEN als de flitser geen 3,3V is. OPMERKING1: vervang "/dev/cu. SLAB_USBtoUART" door uw seriële poort OPMERKING2: espefuse.py kan worden gedownload van

Dit wijst er verder op dat GPIO12 moet worden vermeden, jammer dat niemand de maker van de VGA32 ESP-kaart heeft verteld!

OPGELOST: ik heb de optie geprobeerd om de flitsspanning in te stellen om het gebruik van GPIO12 te negeren en kan bevestigen op mijn vga32 ESP, het werkt! Probleem opgelost geen problemen meer met de SD-kaart. Ik dring er bij je op aan om te controleren, dubbel te controleren en goed na te denken over het maken van een BAKSTEEN als je besluit het ook te proberen. Ik raad het niet aan als een actie, maar voor mij werkte het.

Aanbevolen: