Sadržaj:

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

Video: Retro CP/M samostalni emulator: 8 koraka

Video: Retro CP/M samostalni emulator: 8 koraka
Video: ZX Spectrum: Как устроен дебагер 3 2024, Studeni
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čunala koje radi s sustavom ekvivalentnim CP/M 2.2. Popularno 1980 -ih kao operativni sustav za mala računala. Možete se vratiti u prošlost i ponovno posjetiti stari softver kao što su Wordstar, Supercalc, Adventure i Zork.

To je samostalna ljubaznost projekta FabGL koji je osigurao softver za pokretanje standardnog VGA monitora i PS/2 tipkovnice.

Glavni OS je izmijenjena verzija RunCPM -a, izdvojena je iz izvornog 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. Nastavi s dobrim radom!

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čunala.

Github web mjesto u nastavku 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.

Pribor:

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

Arduino IDE instaliran na računalu, 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

Knjižnica 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 s

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

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

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 Managera =========================================== ===============

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 ploče. Možete dodati više URL -ova, odvajajući ih zarezima.

Otvorite Upravitelj ploča na izborniku Alati> Izbornik ploče i instalirajte esp32 platformu (i ne zaboravite odabrati svoju ESP32 ploču iz Alati> Izbornik ploče nakon instalacije).

Korak 2: Dodavanje biblioteke FabGL u IDE

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

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

Na izborniku Skica odaberite Uključi knjižnicu, a zatim Upravitelj knjižnice.

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

završeno

Korak 3: Dodavanje dodatne knjižnice SD kartica koju koristi RunCPM

Dodavanje dodatne knjižnice SD kartica koju koristi RunCPM
Dodavanje dodatne knjižnice 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 knjižnicu, a zatim Upravitelj knjižnice. U dijalog za pretraživanje upišite SDFat i pričekajte da se pojavi na donjem popisu, vjerojatno ćete se morati pomaknuti prema dolje.

Možete birati između dvije verzije:

1, SdFat, Bill Greiman

2, SdFat - Adafruit vilica

Probao sam oboje, čini se da oba rade ok. No, projekt RunCPM preporučio je 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 izmijenjeni RunCPM projekt

Preuzmite izmijenjeni RunCPM projekt
Preuzmite izmijenjeni RunCPM projekt
Preuzmite izmijenjeni RunCPM projekt
Preuzmite izmijenjeni RunCPM projekt

Posjetite web mjesto Github, Pritisnite gumb KOD i preuzmite kao ZIP datoteku

Spremite ovu datoteku negdje (obično u direktorij pod nazivom Arduino.

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

završeno

Korak 5: Otvorite i pregledajte program RunCPM i kompajlirajte

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

Sada možete koristiti Arduino IDE datoteku, izbornik Otvori. Idite do mape koju ste prethodno iskoristili.

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

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. Trebao bi biti unaprijed konfiguriran za V1.4 ploče.

Sada možete kliknuti na kompajliraj i učitaj, pod pretpostavkom da ste povezali 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 spajati radi znanja. Za više informacija pogledajte posljednji korak ispod.

Korak 6: Izradite SD karticu spremnu za pokretanje vašeg RunCPM-a s

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

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, Izradite neke mape zvane A, B, C D itd. (Do P to će biti pogoni diska pri pokretanju CP/M). Imajte na umu da su glavni gradovi.

3, U svakoj mapi koju kreirate Izradite novu mapu s imenom 0 (to je nula) i po izboru 1, 2, 3 itd. (Do 15) Zatim su mape korisnička područja u emulaciji CP/M. Za početak vam je potrebna samo mapa 0.

4, U preuzetoj mapi projekta u direktoriju arduino pronađite mapu pod nazivom CCP. Ovo sadrži različite inačice 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. (također pogledajte datoteku 1streadme za više informacija). Nažalost, na popisu mapa nema "0" pa se morate 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 pogrešku o nemogućnosti učitavanja CCP-a itd. Prilikom pokušaja pokretanja 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, a preuzeo je i odavde https://github.com/coopzone-dc/RunCPM/blob /master/… i raspakirajte ga u korijen formatirane SD kartice. Trebali biste započeti, a kasnije možete stvoriti vlastiti.

Također vam preporučujem da pročitate vodič za postavljanje na Github Repo, on sadrži opis mapa koje su vam potrebne.

Korak 7: Spojite VGA monitor i tipkovnicu

Spojite VGA monitor i tipkovnicu
Spojite VGA monitor i tipkovnicu

Isključite napajanje VGA32 ESP kartice.

Priključite svoj VGA monitor

Priključite PS/2 tipkovnicu Ponovno spojite napajanje na VGA32 ESP karticu, trebali biste vidjeti kako svjetla tipkovnice trepere i otprilike 10 sekundi kasnije slika će se pojaviti na ekranu s 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

Na gornjoj fotografiji je moja druga ESP32 kartica (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 unutarnje memorije. Volio bih da je netko 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 što pritisnete gumb za resetiranje, zaključava se sve dok se SD kartica ne ukloni. Zatim se pokreće na zaslonu s pogreškom koji kaže da nema SD-kartice! Možete umetnuti karticu i ponovno je postaviti, a radit će drugi put.

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

ili uvijek možete isključiti/uključiti napajanje da biste pokrenuli ploču. Čini se da iz nekog razloga ovo dobro funkcionira. Također, ako trebate ponovno učitati softver RunCPM, najprije morate ukloniti SD-karticu.

Ovo je izvadak iz datoteke 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 postavkama GPIO -a za SD karticu.

To 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 ok nakon uključivanja ili hard reset -a. Ako možete pomoći riješiti ovo, 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 unutarnjeg 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. To 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. Za njegovu upotrebu onemogućite postavku otkrivanja GPIO12 efuses sa: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V UPOZORENJE !! Dobro za ESP32 s naponom od 3,3 V (ESP-WROOM-32). Ovo će ZAPRINITI vaš ESP32 ako bljeskalica nije 3.3V NAPOMENA1: zamijenite "/dev/cu. SLAB_USBtoUART" sa svojim serijskim portom NAPOMENA2: espefuse.py možete preuzeti s

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

ISPRAVLJENO: Isprobao sam opciju postavljanja napona bljeskalice 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 isprobati i nju. Ne preporučujem to kao radnju, ali meni je uspjelo.

Preporučeni: