Kazalo:

Retro CP/M samostojni emulator: 8 korakov
Retro CP/M samostojni emulator: 8 korakov

Video: Retro CP/M samostojni emulator: 8 korakov

Video: Retro CP/M samostojni emulator: 8 korakov
Video: CS50 2013 - Week 8, continued 2024, November
Anonim
Retro CP/M samostojni emulator
Retro CP/M samostojni emulator

Ta projekt uporablja modul VGA32 ESP v1.4 za izvajanje kombinacije ali RunCPM in FabGL za zagotavljanje samostojnega računalnika z enakovrednim sistemom kot CP/M 2.2. Priljubljen v osemdesetih letih kot operacijski sistem za majhne računalnike. Lahko se vrnete v preteklost in ponovno obiščete staro programsko opremo, kot so Wordstar, Supercalc, Adventure in Zork.

To je samostojen prispevek projekta FabGL, ki je zagotovil programsko opremo za izvajanje standardnega monitorja VGA in tipkovnice PS/2.

Glavni operacijski sistem je spremenjena različica RunCPM -ja, razcepljena je iz prvotnega dela na Githubu in dodala sem knjižnico FabGL, da jo lahko uporabim na zaslonu namesto na serijski konzoli.

Rad bi se zahvalil obema projektima. Nadaljuj z dobrim delom!

Programska oprema je bila preizkušena na vsaj dveh različicah strojne opreme. Eden VGA32 ESP v1.4 (v prodaji že pripravljen). Drugič, moja stara različica, zgrajena sem iz modula Wroom ESP32 in odrezkov iz starih računalnikov.

Spodnje spletno mesto Github vsebuje pomembne informacije o teh nastavitvah in spremenjeni programski opremi, pripravljeni za namestitev.

Ta projekt govori o namestitvi programske opreme, ne o strojni opremi.

Zaloge:

Modul VGA32 ESP V1.4 (preizkušeno). Najdeno na eBay / aliexpress / amazon itd

Arduino IDE, nameščen v računalniku, predvidevam, da če to berete, to že imate.

Namestite paket podpore ESP32 za Arduino IDE. https://github.com/espressif/arduino-esp32 Glej korak 1

V knjižnici FabGL https://www.fabglib.org/ vam ni treba ničesar prenesti, arduino IDE lahko to stori namesto nas, glejte 2. korak.

Prenesite kopijo spremenjenega RunCPM s

Korak: Namestite podporo ESP32 za Arduino (neobvezno)

Namestite podporo ESP32 za Arduino (neobvezno)
Namestite podporo ESP32 za Arduino (neobvezno)

Morda ste to že storili, če imate, lahko ta korak preskočite.

obiščite https://github.com/espressif/arduino-esp32 in sledite navodilom za namestitev z upraviteljem plošč, na primer:

Navodila za namestitev z uporabo Arduino IDE Boards Manager =========================================== ===============

Povezava do stabilne izdaje:

Namestite trenutni gorvodni Arduino IDE na ravni 1,8 ali novejšo. Trenutna različica je na spletnem mestu Arduino.

Zaženite Arduino in odprite okno Nastavitve.

V polje Dodatni URL -ji upravitelja plošč vnesite eno od zgornjih povezav za izdajo. Dodate lahko več URL -jev in jih ločite z vejicami.

Odprite upravitelja plošč v meniju Orodja> meni plošča in namestite platformo esp32 (po namestitvi ne pozabite izbrati plošče ESP32 v meniju Orodja> meni plošča).

2. korak: Dodajanje knjižnice FabGL v IDE

Dodajanje knjižnice FabGL v IDE
Dodajanje knjižnice FabGL v IDE
Dodajanje knjižnice FabGL v IDE
Dodajanje knjižnice FabGL v IDE

S prazno skico v Arduino IDE se prepričajte, da ste izbrali svojo ploščo ESP v meniju Orodja, deske. (V času pisanja VGA32 ESP ni bil na seznamu, sem izbral generično ploščo Dev Kit).

V meniju Skica izberite Vključi knjižnico, nato izberite Upravitelj knjižnice.

V iskalnem pogovornem oknu vnesite FabGL in počakajte, da se prikaže na spodnjem seznamu, zdaj kliknite gumb Namesti.

Dokončano

3. korak: Dodajanje dodatne knjižnice kartic SD, ki jo uporablja RunCPM

Dodajanje dodatne knjižnice kartic SD, ki jo uporablja RunCPM
Dodajanje dodatne knjižnice kartic SD, ki jo uporablja RunCPM

To je skoraj enako kot prejšnji korak, vendar namesto FabGL poiščite SDFat

V meniju Skica izberite Vključi knjižnico, nato izberite Upravitelj knjižnice. V pogovornem oknu za iskanje vnesite SDFat in počakajte, da se prikaže na spodnjem seznamu, se boste verjetno morali pomakniti po seznamu.

Izbirate lahko med dvema različicama:

1, SdFat, Bill Greiman

2, SdFat - vilice Adafruit

Poskusil sem oboje, obe delujeta v redu. Toda projekt RunCPM je priporočil drugo možnost "Adafruit Fork", vendar na zadnjih opombah zdaj piše:

Vse plošče zdaj uporabljajo knjižnico SdFat, od tukaj:

Zato zdaj izberem prvo možnost za ta projekt.

Dokončano

4. korak: Prenesite spremenjeni projekt RunCPM

Prenesite spremenjeni projekt RunCPM
Prenesite spremenjeni projekt RunCPM
Prenesite spremenjeni projekt RunCPM
Prenesite spremenjeni projekt RunCPM

Obiščite spletno mesto Github, Kliknite gumb KODA in prenesite kot datoteko ZIP

To datoteko shranite nekam (običajno v imenik z imenom Arduino.

Razpakirajte datoteko na isto mesto, ustvarila bo mapo z imenom RunCPM-master

Dokončano

5. korak: Odprite in preglejte program RunCPM in prevedite

Odprite in preglejte program RunCPM in prevedite
Odprite in preglejte program RunCPM in prevedite

Zdaj lahko uporabite datoteko IDE Arduino, meni Odpri. Pomaknite se do zgornje mape.

V tej mapi je še ena, imenovana RunCPM. Odprite mapo.

Znotraj te mape je datoteka.ino z imenom RunCPM.ino. To je glavna datoteka projekta - odprite jo.

Zdaj si lahko ogledate projekt, preberete komentarje itd. Če želite, da ustreza vaši različici VGA32 -ESP, naredite spremembe. Predhodno mora biti konfiguriran za V1.4 plošče.

Zdaj lahko kliknete »Prevedi in naloži«, če imate priključen VGA32 ESP, bo emulator naložil v vašo napravo.

POMEMBNO: VGA32 ima lahko na tej točki težave s kartico SD, zato je ne vežite. Za več informacij si oglejte zadnji korak spodaj.

6. korak: Ustvarite kartico SD, s katere lahko zaženete svoj RunCPM

To je morda najbolj trik korakov. Predlagam, da preberete README.md spletnega mesta Github o tem, kako to storiti. Tukaj je moj seznam, kaj storiti:

Predvidevam, da imate prazno kartico SD ali da ne želite obdržati datotek na tisti, ki jo imate, jo boste izbrisali.

1, kartico SD formatirajte kot FAT-32

2, Ustvarite nekaj map, imenovanih A, B, C D itd. (Do P bodo to diskovni pogoni pri izvajanju CP/M). Upoštevajte, da so velike.

3, V vsaki mapi, ki jo ustvarite Ustvarite novo mapo z imenom 0 (to je nič) in po izbiri 1, 2, 3 itd (do 15) Nato so mape uporabniška območja v emulaciji CP/M. Za začetek potrebujete samo mapo 0.

4, V preneseni mapi projekta v imeniku arduino poiščite mapo z imenom CCP. Ta vsebuje različne različice naslednika ukazne mize CP/M. Kopirajte tisto, ki se imenuje CCP-DR.60K, v koren SD kartice.

5, Zdaj poiščite mapo v imeniku projekta, imenovano DISK. Vsebuje datoteko A. ZIP, to datoteko morate razpakirati v imenik, imenovan A/ 0/ na vaši kartici SD. (za več informacij glejte tudi datoteko 1streadme). Žal na seznamu map nima "0", zato se morate najprej razpakirati v začasno mapo, nato pa vsebino mape A kopirati v A/ 0/ na kartico SD.

6, Ko boste naredili zgornje korake, boste imeli kartico SD s takšno strukturo:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. itd

/B/0

/C/0

itd

Če se pri poskusu zagona s kartice SD prikažejo napake o tem, da ni mogoče naložiti CCP itd., Dvakrat preverite, ali je vse v pravilnem tempu!

Da bi olajšali to stopnjo, sem naložil že pripravljeno različico zgoraj, z dodatno programsko opremo cp/m in jo prenesli od tukaj https://github.com/coopzone-dc/RunCPM/blob /master/… in ga preprosto razpakirajte v koren formatirane kartice SD. Moral bi začeti, nato pa si lahko kasneje ustvarite svojega.

Priporočam tudi, da preberete navodila za namestitev na Github Repo, ki vsebuje opis map, ki jih potrebujete.

7. korak: Povežite monitor VGA in tipkovnico

Priključite monitor VGA in tipkovnico
Priključite monitor VGA in tipkovnico

Odklopite napajanje iz kartice VGA32 ESP.

Priključite monitor VGA

Priključite tipkovnico PS/2 Ponovno priključite napajanje na kartico VGA32 ESP, lučke tipkovnice bi morale utripati in približno 10 sekund kasneje se bo na zaslonu pojavila slika s pozivom CP/M!

Pomembno: VGA32 ima težave pri uporabi kartice SD in mehke ponastavitve, zato je pomembno, da IZKLOPI VKLOP kot prvi korak zgoraj, za dodatne informacije glejte zadnji korak.

Pojdi stran…

8. korak: Težava s kartico SD na modulu VGA32

Težava s kartico SD na modulu VGA32
Težava s kartico SD na modulu VGA32
Težava s kartico SD na modulu VGA32
Težava s kartico SD na modulu VGA32

Zgornja fotografija prikazuje mojo drugo kartico ESP32 (domačo izdelavo), ki deluje v redu in spodaj nima težav. Tako da vem, da to ni problem s programsko opremo, preberite spodaj o različici VGA32.

V mojem modulu ESP VG32 (v1.4) kartica SD uporablja GPIO12, tega Espressif Systems ne priporoča, saj se ta pin uporablja za vklop pri zaznavanju delovne napetosti notranjega pomnilnika. Želim si, da bi kdo povedal fantu, ki izdeluje to kartico VGA32! Morda je pri tebi drugače, zato upajmo, da tega problema ne boš imel.

Težave so:

1, skice ni mogoče naložiti, ko je kartica priključena.

2, Ko pritisnete gumb za ponastavitev, se zaklene, dokler ne odstranite kartice SD. Nato se zažene na zaslon z napako, ki pravi, da ni kartice SD! Kartico lahko vstavite in znova ponastavite, drugič pa bo delovala.

To težavo je mogoče odpraviti (vendar obstaja tveganje), glejte README.md na

ali pa za zagon plošče vedno izklopite/vklopite trdi napajalnik. Iz nekega razloga se zdi, da to dobro deluje. Če morate znova naložiti programsko opremo RunCPM, morate najprej odstraniti kartico SD.

To je izvleček iz datoteke README. MD, ki pojasnjuje težavo. Uporabil sem popravek in deluje v redu, ampak zaradi narave je tveganje na vas, preberite dalje …

Vendar se zdi, da so nastavitve za VGA32 ESP v nasprotju z nastavitvami GPIO za kartico SD.

Deluje, toda za nalaganje morate odstraniti kartico SD in po mehki ponastavitvi odstraniti kartico SD in jo nato zamenjati, čemur sledi nova ponastavitev. Deluje v redu od vklopa ali trde ponastavitve. Če lahko pomagate odpraviti to težavo, mi to sporočite. UPDATE 11Oct2020: VGA32 ESP v1.4 uporablja GPIO12 (MTDI, branje ob vklopu/ponastavitvi). Ta pin določa napetost RAM -a, napetost notranjega LDO (VDD_SDIO). Ko je kartica SD prisotna, ta pin močno potegne, ESP32 pa meni, da bi morala biti napetost RAM-a 1,8 V, brez kartice SD ima ta notranji izvlek za nastavitev napetosti RAM na 3,3 V. To je pravzaprav omenjeno v opombah iz primerov projekta FABGL, če citiramo: opombe o GPIO 2 in 12 - GPIO2: lahko povzročijo težave pri programiranju. Če želite vstopiti v serijski zagonski nalagalnik, morate GPIO2 pustiti nepovezanega/lebdečega ali pa nastaviti nizko. V običajnem zagonskem načinu (GPIO0 visok) se GPIO2 ne upošteva. - GPIO12: izogibati se je treba. Izbere napetost bliskavice. Če ga želite uporabiti, onemogočite nastavitev zaznavanja GPIO12 efuses z: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V OPOZORILO !! Primerno za ESP32 z napetostjo 3,3 V (ESP-WROOM-32). S tem boste zamašili vaš ESP32, če bliskavica ni 3,3 V OPOMBA 1: "/dev/cu. SLAB_USBtoUART" zamenjajte s serijskimi vrati. OPOMBA 2: espefuse.py je mogoče prenesti s spletnega mesta

To nadalje ugotavlja, da se je treba izogniti GPIO12, ki ga izdelovalec kartice VGA32 ESP ni povedal!

POPRAVLJENO: Preizkusil sem možnost nastavitve napetosti bliskavice na uporabo GPIO12 in lahko potrdim na svojem vga32 ESP, deluje! Težava s SD kartico ni odpravljena. Vabim vas, da preverite, dvakrat preverite in dobro premislite o ustvarjanju OGLEDE, če se odločite tudi preizkusiti. Tega ne priporočam kot dejanje, ampak zame je delovalo.

Priporočena: