Retro CP/M samostalni emulator: 8 koraka
Retro CP/M samostalni emulator: 8 koraka
Anonim
Retro CP/M samostalni emulator
Retro CP/M samostalni emulator

Ovaj projekt koristi VGA32 ESP v1.4 modul za pokretanje kombinacije ili RunCPM i FabGL za osiguravanje samostalnog računara koji radi sa sistemom ekvivalentnim CP/M 2.2. Popularan tokom 1980 -ih kao operativni sistem za male računare. Možete se vratiti u prošlost i ponovno posjetiti stari softver poput Wordstar, Supercalc, Adventure i Zork.

To je samostalno zahvaljujući projektu FabGL koji je obezbedio softver za pokretanje standardnog VGA monitora i PS/2 tastature.

Glavni OS je izmijenjena verzija RunCPM -a, izdvojena je iz originalnog rada na Githubu i dodao sam biblioteku FabGL kako bih je omogućio da se koristi na ekranu umjesto na serijskoj konzoli.

Htio bih samo zahvaliti oba projekta. Samo tako nastavite!

Softver je testiran na najmanje dvije verzije hardvera. Jedan VGA32 ESP v1.4 (prodaje se gotov). Druga moja stara verzija, izgrađena sam od Wroom ESP32 modula i dijelova od starih računara.

Github web stranica ispod sadrži važne informacije o ovim postavkama, kao i izmijenjeni softver spreman za instalaciju.

Ovaj projekt govori o instaliranju softvera, a ne o hardveru.

Potrošni materijal:

VGA32 ESP modul V1.4 (testirano). Nađeno na eBayu / aliexpressu / amazonu itd

Arduino IDE instaliran na računaru, pretpostavljam da ako ovo čitate ovo već imate.

Instalirajte paket podrške ESP32 za Arduino IDE. https://github.com/espressif/arduino-esp32 Pogledajte korak 1

Biblioteka FabGL https://www.fabglib.org/ ne morate ništa preuzimati, arduino IDE to može učiniti umjesto nas, pogledajte korak 2.

Preuzmite kopiju izmijenjenog RunCPM-a sa

Korak 1: Instalirajte ESP32 podršku za Arduino (opcionalno)

Instalirajte ESP32 podršku za Arduino (opcionalno)
Instalirajte ESP32 podršku za Arduino (opcionalno)

Možda ste to već učinili, ako jeste, možete preskočiti ovaj korak.

posjetite https://github.com/espressif/arduino-esp32 i slijedite upute za instalaciju pomoću upravitelja ploča, ovako:

Upute za instalaciju pomoću Arduino IDE Boards Manager =========================================== ===============

Veza za stabilno izdanje:

Instalirajte trenutni uzvodni Arduino IDE na razini 1.8 ili novijoj. Trenutna verzija nalazi se na web stranici Arduino.

Pokrenite Arduino i otvorite prozor Postavke.

Unesite jednu od gornjih veza za izdanje u polje Dodatni URL -ovi upravitelja odbora. Možete dodati više URL -ova, odvajajući ih zarezima.

Otvorite Boards Manager iz Tools> Board menu i instalirajte esp32 platformu (i ne zaboravite odabrati svoju ESP32 ploču iz Tools> Board menu nakon instalacije).

Korak 2: Dodavanje FabGL biblioteke u IDE

Dodavanje FabGL biblioteke u IDE
Dodavanje FabGL biblioteke u IDE
Dodavanje FabGL biblioteke u IDE
Dodavanje FabGL biblioteke u IDE

Koristeći praznu skicu u Arduino IDE -u, provjerite jeste li odabrali svoju ESP ploču iz izbornika Alati, Ploče. (U vrijeme pisanja VGA32 ESP nije bio na popisu, biram generičku ploču Dev Kit -a).

Na izborniku Skica odaberite Uključi biblioteku, a zatim Upravitelj biblioteke.

U dijalogu za pretraživanje unesite FabGL i pričekajte da se pojavi na donjoj listi, a zatim kliknite gumb Instaliraj.

završeno

Korak 3: Dodavanje dodatne biblioteke SD kartica koju koristi RunCPM

Dodavanje dodatne biblioteke SD kartica koju koristi RunCPM
Dodavanje dodatne biblioteke SD kartica koju koristi RunCPM

Ovo je gotovo isto kao i prethodni korak, ali umjesto FabGL potražite SDFat

Na izborniku Skica odaberite Uključi biblioteku, a zatim Upravitelj biblioteke. U dijalogu za pretraživanje unesite SDFat i pričekajte da se pojavi na donjoj listi, vjerojatno ćete se morati pomaknuti prema dolje.

Možete birati između dvije verzije:

1, SdFat, Bill Greiman

2, SdFat - Adafruit Fork

Probao sam oboje, čini se da oboje rade dobro. No, projekt RunCPM je ipak preporučio drugu opciju "Adafruit Fork", međutim u najnovijim bilješkama sada stoji:

Sve ploče sada koriste biblioteku SdFat, odavde:

Zato sada biram prvu opciju za ovaj projekt.

završeno

Korak 4: Preuzmite modifikovani RunCPM projekat

Preuzmite Modified RunCPM Project
Preuzmite Modified RunCPM Project
Preuzmite Modified RunCPM Project
Preuzmite Modified RunCPM Project

Posjetite web lokaciju Github, Pritisnite dugme KOD i preuzmite kao ZIP datoteku

Sačuvajte ovu datoteku negdje (obično u direktoriju koji se zove Arduino.

Raspakirajte datoteku na isto mjesto, ona će proizvesti mapu pod nazivom RunCPM-master

završeno

Korak 5: Otvorite i pregledajte RunCPM program i kompajlirajte

Otvorite i pregledajte RunCPM program i kompajlirajte
Otvorite i pregledajte RunCPM program i kompajlirajte

Sada možete koristiti Arduino IDE datoteku, meni Otvori. Idite do mape koju ste prethodno zakopčali.

Unutar ove mape nalazi se još jedna pod nazivom RunCPM. Otvorite fasciklu.

Unutar te mape nalazi se.ino datoteka pod nazivom RunCPM.ino. Ovo je glavna datoteka projekta - otvorite je.

Sada možete pregledati projekt, pročitati komentare itd. Učinite promjene ako trebate odgovarati vašoj verziji VGA32 -ESP. Trebalo bi ga prethodno konfigurirati za V1.4 ploče.

Sada možete kliknuti na kompajliraj i otpremi, pod pretpostavkom da imate povezan VGA32 ESP, on će prenijeti emulator na vaš uređaj.

VAŽNO: VGA32 u ovom trenutku može imati problema sa SD-karticom, stoga je nemojte priključivati radi saznanja. Za više informacija pogledajte posljednji korak ispod.

Korak 6: Kreirajte SD karticu sa koje ste spremni za pokretanje RunCPM-a

Ovo je možda najkorisniji korak. Predlažem da pročitate README.md web stranice Github o tome kako to učiniti. Evo moje liste šta da radim:

Pretpostavljam da imate praznu SD karticu ili niste zainteresirani za čuvanje datoteka na onoj koju imate, to će je izbrisati.

1, formatirajte SD karticu kao FAT-32

2, Napravite neke fascikle pod nazivom A, B, C D itd. (Do P to će biti pogoni diskova pri pokretanju CP/M). Imajte na umu da su glavni gradovi.

3, U svakoj mapi koju kreirate Kreirajte novu fasciklu pod nazivom 0 (to je nula) i opcionalno 1, 2, 3 itd (do 15) Zatim su mape korisnička područja u CP/M emulaciji. Potrebna vam je samo mapa 0 za početak.

4, U preuzetoj mapi projekta u arduino direktoriju pronađite mapu koja se zove CCP. Ovo sadrži različite verzije CP/M naredbene konzole. Kopirajte onaj koji se zove CCP-DR.60K u korijen SD kartice.

5, Sada pronađite mapu u direktoriju projekta pod nazivom DISK, Sadrži A. ZIP datoteku, morate je otpakirati u direktorij pod nazivom A/ 0/ na SD kartici. (za više informacija pogledajte datoteku 1streadme). Nažalost, na popisu mapa nema "0" pa je potrebno prvo otpakirati u privremenu mapu, a zatim kopirati sadržaj mape A u A/ 0/ na SD kartici.

6, Kada obavite gore navedene korake, imat ćete SD karticu sa strukturom poput ove:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. itd

/B/0

/C/0

itd

Ako dobijete grešku o nemogućnosti učitavanja CCP-a itd. Kada pokušate pokrenuti sistem sa SD-kartice, još jednom provjerite imate li sve u pravom ritmu!

U pokušaju da olakšam ovu fazu, učitao sam gotovu verziju gore, s dodatnim softverom cp/m, te je preuzeo odavde https://github.com/coopzone-dc/RunCPM/blob /master/… i raspakirajte ga u korijen formatirane SD kartice. Trebalo bi da počnete, a kasnije možete stvoriti vlastiti.

Takođe vam preporučujem da pročitate vodič za podešavanje na Github Repo -u, on sadrži opis fascikli koje su vam potrebne.

Korak 7: Povežite VGA monitor i tastaturu

Povežite VGA monitor i tastaturu
Povežite VGA monitor i tastaturu

Isključite napajanje VGA32 ESP kartice.

Povežite svoj VGA monitor

Priključite PS/2 tastaturu Ponovo spojite napajanje na VGA32 ESP karticu, trebali biste vidjeti da lampice tastature trepere i otprilike 10 sekundi kasnije slika će se pojaviti na ekranu sa CP/M upitom!

Važno: VGA32 ima problem pri korištenju SD kartice i mekom resetiranju, zato je važno ISKLJUČITI NAPAJANJE kao prvi korak iznad. Više informacija potražite u posljednjem koraku.

Odlazi ti…

Korak 8: Problem sa SD karticom na VGA32 modulu

Problem sa SD-karticom na VGA32 modulu
Problem sa SD-karticom na VGA32 modulu
Problem sa SD-karticom na VGA32 modulu
Problem sa SD-karticom na VGA32 modulu

Gornja fotografija prikazuje moju drugu ESP32 karticu (domaće izrade), radi dobro i nema problema ispod. Tako da znam da nije problem u softveru, pročitajte dolje o verziji VGA32.

Na mom VG32 ESP modulu (v1.4) SD kartica koristi GPIO12, ovo ne preporučuje Espressif Systems jer se ovaj pin koristi za uključivanje radi otkrivanja radnog napona interne memorije. Voleo bih da je neko rekao momku koji pravi ovu VGA32 karticu! Možda je kod vas drugačije, pa se nadamo da nećete imati ovaj problem.

Problemi su:

1, Nije moguće učitati skicu kada je kartica priključena.

2, Nakon pritiska na tipku za poništavanje, zaključava se sve dok se SD kartica ne ukloni. Zatim se pokreće na ekranu s greškom koji kaže da nema SD-kartice! Možete umetnuti karticu i ponovo je postaviti, a radit će drugi put.

Ovaj problem se može popraviti (ali ima rizik), pogledajte README.md na

ili uvijek možete isključiti/uključiti napajanje da biste pokrenuli ploču. Iz nekog razloga ovo izgleda dobro. Takođe, ako trebate ponovo učitati softver RunCPM, prvo morate ukloniti SD karticu.

Ovo je izvadak iz README. MD koji objašnjava problem. Koristio sam popravak i radi dobro, ali zbog svoje prirode rizik je vaš, čitajte dalje …

Međutim, čini se da postavke za VGA32 ESP imaju sukob u GPIO postavkama za SD karticu.

Radi, ali za učitavanje morate ukloniti SD karticu, a nakon mekog resetiranja morate ukloniti SD karticu, a zatim je zamijeniti, nakon čega slijedi ponovno postavljanje. Radi u redu nakon uključivanja ili hard reset -a. Ako možete pomoći u rješavanju ovog problema, javite mi. UPDATE 11Oct2020: VGA32 ESP v1.4 koristi GPIO12 (MTDI, čita se pri uključivanju/resetiranju). Ovaj pin određuje napon RAM -a, napon internog LDO -a (VDD_SDIO). Kada je SD kartica prisutna, povlači ovaj pin visoko i ESP32 misli da bi napon RAM-a trebao biti 1,8 V, bez SD kartice ovaj pin ima unutarnje povlačenje za postavljanje napona RAM-a na 3,3 V. Ovo se zapravo spominje u bilješkama iz primjera danih na projektu FABGL, da citiram: napomene o GPIO 2 i 12 - GPIO2: mogu uzrokovati probleme pri programiranju. GPIO2 također mora biti ostavljen nepovezan/plutajući ili spušten, kako bi ušao u serijski bootloader. U normalnom načinu pokretanja (GPIO0 visok), GPIO2 se zanemaruje. - GPIO12: treba izbjegavati. Odabire napon bljeskalice. Da biste ga koristili, onemogućite postavku otkrivanja GPIO12 efuses sa: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V UPOZORENJE! Dobro za ESP32 sa naponom od 3,3 V (ESP-WROOM-32). Ovo će ZAPRINITI vaš ESP32 ako blic nije 3.3V NAPOMENA1: zamijenite "/dev/cu. SLAB_USBtoUART" sa svojim serijskim portom NAPOMENA2: espefuse.py se može preuzeti sa

Ovo dalje napominje da GPIO12 treba izbjegavati, što niko nije rekao proizvođaču VGA32 ESP kartice!

ISPRAVLJENO: Isprobao sam opciju postavljanja napona blica izvan upotrebe GPIO12 i mogu potvrditi na svom vga32 ESP -u, radi! Problem nije riješen Nema više problema sa SD karticom. Pozivam vas da provjerite, dvaput provjerite i dobro razmislite o stvaranju CIGLE ako odlučite i vi to isprobati. Ne preporučujem to kao akciju, ali meni je uspjelo.