Sisällysluettelo:

Retro CP/M Stand Alone -emulaattori: 8 vaihetta
Retro CP/M Stand Alone -emulaattori: 8 vaihetta

Video: Retro CP/M Stand Alone -emulaattori: 8 vaihetta

Video: Retro CP/M Stand Alone -emulaattori: 8 vaihetta
Video: Как резать резьбы на ТВ - 4 2024, Heinäkuu
Anonim
Retro CP/M Stand Alone -emulaattori
Retro CP/M Stand Alone -emulaattori

Tämä projekti käyttää VGA32 ESP v1.4 -moduulia yhdistelmän suorittamiseen tai RunCPM: ää ja FabGL: ää tarjoamaan erillisen tietokoneen, joka käyttää CP/M 2.2 -järjestelmää vastaavaa järjestelmää. Suosittu 1980 -luvulla pientietokoneiden käyttöjärjestelmänä. Voit palata ajassa taaksepäin ja palata vanhaan ohjelmistoon, kuten Wordstar, Supercalc, Adventure ja Zork.

Se on itsenäinen FabGL -projektin ansiosta, joka tarjosi ohjelmiston tavallisen VGA -näytön ja PS/2 -näppäimistön käyttämiseksi.

Pääkäyttöjärjestelmä on RunCPM: n muokattu versio, se on haarautunut Githubin alkuperäisestä työstä ja olen lisännyt FabGL -kirjaston, jotta sitä voidaan käyttää näytöllä sarjakonsolin sijasta.

Haluan vain kiittää molempia projekteja. Jatka samaan malliin!

Ohjelmisto on testattu vähintään kahdella laitteistoversiolla. Yksi VGA32 ESP v1.4 (myydään valmiina). Toiseksi vanha versio, jonka rakensin Wroom ESP32 -moduulista ja vanhojen tietokoneiden romut.

Alla oleva Github-sivusto sisältää tärkeitä tietoja näistä asetuksista sekä muokatusta asennusvalmisesta ohjelmistosta.

Tämä projekti koskee ohjelmiston asentamista, ei laitteistoa.

Tarvikkeet:

VGA32 ESP -moduuli V1.4 (testattu). Löytyy eBaysta / aliexpressistä / amazonista jne

Arduino IDE on asennettu tietokoneeseen, oletan, että jos luet tämän, sinulla on jo tämä.

Asenna ESP32 -tukipaketti Arduino IDE: lle. https://github.com/espressif/arduino-esp32 Katso vaihe 1

FabGL -kirjastoa https://www.fabglib.org/ sinun ei tarvitse ladata mitään, arduino IDE voi tehdä tämän puolestamme, katso vaihe 2.

Lataa kopio muokatusta RunCPM: stä osoitteesta

Vaihe 1: Asenna ESP32 -tuki Arduinolle (valinnainen)

Asenna ESP32 -tuki Arduinolle (valinnainen)
Asenna ESP32 -tuki Arduinolle (valinnainen)

Olet ehkä jo tehnyt tämän, jos voit, voit ohittaa tämän vaiheen.

käy osoitteessa https://github.com/espressif/arduino-esp32 ja noudata asennusohjeita levynhallinnan avulla seuraavasti:

Asennusohjeet Arduino IDE Boards Managerin avulla ============================================== ===============

Vakaa julkaisulinkki:

Asenna nykyinen ylävirran Arduino IDE 1.8 -tasolle tai uudempaan. Nykyinen versio on Arduinon verkkosivustolla.

Käynnistä Arduino ja avaa Asetukset -ikkuna.

Kirjoita jokin yllä olevista julkaisulinkkeistä Hallituksen ylimääräiset URL -osoitteet -kenttään. Voit lisätä useita URL -osoitteita erottamalla ne pilkuilla.

Avaa Boards Manager Työkalut> Hallitus -valikosta ja asenna esp32 -alusta (äläkä unohda valita ESP32 -korttia kohdasta Työkalut> Hallitus -valikko asennuksen jälkeen).

Vaihe 2: FabGL -kirjaston lisääminen IDE: hen

FabGL -kirjaston lisääminen IDE: hen
FabGL -kirjaston lisääminen IDE: hen
FabGL -kirjaston lisääminen IDE: hen
FabGL -kirjaston lisääminen IDE: hen

Varmista tyhjällä luonnoksella Arduino IDE: ssä, että olet valinnut ESP -levyn Työkalut -valikosta, Taulut. (Tätä kirjoitettaessa VGA32 ESP: tä ei ollut luettelossa, valitsen yleisen Dev Kit -levyn).

Valitse Luonnos -valikosta Sisällytä kirjasto ja valitse Kirjastohallinta.

Kirjoita hakuruutuun FabGL ja odota, että se näkyy alla olevassa luettelossa. Napsauta nyt Asenna -painiketta.

valmis

Vaihe 3: RunCPM: n käyttämän SD-korttikirjaston lisääminen

RunCPM: n käyttämän SD-korttikirjaston lisääminen
RunCPM: n käyttämän SD-korttikirjaston lisääminen

Tämä on melkein sama kuin edellinen vaihe, mutta FabGL: n sijaan etsi SDFat

Valitse Luonnos -valikosta Sisällytä kirjasto ja valitse Kirjastohallinta. Kirjoita hakukentän valintaikkunaan SDFat ja odota, kunnes se näkyy alla olevassa luettelossa. Sinun on luultavasti vieritettävä luetteloa alaspäin.

Voit valita kahdesta versiosta:

1, SdFat, kirjoittanut Bill Greiman

2, SdFat - Adafruit -haarukka

Olen kokeillut molempia, molemmat näyttävät toimivan ok. Mutta RunCPM -projekti suositteli toista vaihtoehtoa "Adafruit Fork", mutta viimeisimmissä muistiinpanoissa se sanoo nyt:

Kaikki levyt käyttävät nyt SdFat -kirjastoa täältä:

Joten nyt valitsen ensimmäisen vaihtoehdon tälle projektille.

valmis

Vaihe 4: Lataa muokattu RunCPM -projekti

Lataa Modified RunCPM -projekti
Lataa Modified RunCPM -projekti
Lataa Modified RunCPM -projekti
Lataa Modified RunCPM -projekti

Käy Github-sivustolla, Napsauta CODE -painiketta ja lataa ZIP -tiedostona

Tallenna tämä tiedosto jonnekin (yleensä Arduino -nimiseen hakemistoon.

Pura tiedosto samaan paikkaan, se tuottaa kansion nimeltä RunCPM-master

valmis

Vaihe 5: Avaa ja tarkista RunCPM -ohjelma ja käännä

Avaa ja tarkista RunCPM -ohjelma ja käännä
Avaa ja tarkista RunCPM -ohjelma ja käännä

Voit nyt käyttää Arduino IDE -tiedostoa, Avaa -valikkoa. Siirry yllä olevaan kansioon.

Tämän kansion sisällä on toinen nimeltään RunCPM. Avaa kansio.

Tämän kansion sisällä on.ino -tiedosto nimeltä RunCPM.ino. Tämä on tärkein projektitiedosto - avaa se.

Voit nyt tarkastella projektia, lukea kommentteja jne. Tee muutoksia, jos haluat vastata VGA32 -ESP -versiota. Se on esikonfiguroitava levyn versiota V1.4 varten.

Voit nyt napsauttaa Käännä ja lähetä, jos olet liittänyt VGA32 ESP: n, se lähettää emulaattorin laitteellesi.

TÄRKEÄÄ: VGA32: ssa voi olla ongelma SD-kortissa tässä vaiheessa, joten älä kytke sitä pistorasiaan. Katso lisätietoja viimeisestä vaiheesta alla.

Vaihe 6: Luo SD-kortti, joka on valmis käynnistämään suorittamasi tuhannen näyttökerran hinnan

Tämä on ehkä kaikkein temppu vaiheita. Ehdotan, että luet Github -sivuston README.md -tiedoston, kuinka tämä tehdään. Tässä on luetteloni tehtävistä:

Oletan, että sinulla on tyhjä SD-kortti tai et ole kiinnostunut säilyttämään tiedostoja sillä, mikä sinulla on, tämä poistaa sen.

1, alusta SD-kortti muodossa FAT-32

2, Luo joitain kansioita nimeltä A, B, C D jne (P: hen asti nämä ovat levyasemia, kun CP/M on käynnissä). Huomaa, että ne ovat isoja kirjaimia.

3, Jokaisessa luomassasi kansiossa Luo toinen kansio nimeltä 0 (se on nolla) ja valinnaisesti 1, 2, 3 jne. (Enintään 15). Sitten kansiot ovat CP/M -emuloinnin käyttäjäalueita. Tarvitset vain 0 -kansion aloittaaksesi.

4, Etsi ladatusta projektikansiosta arduino -hakemistosta kansio nimeltä CCP. Tämä sisältää useita CP/M Command Console Proccessorin versioita. Kopioi CCP-DR.60K-niminen SD-kortin juurelle.

5, Etsi nyt kansio projektihakemistosta nimeltä DISK. Se sisältää A. ZIP-tiedoston, sinun on purettava tämä tiedosto SD-kortin hakemistoon A/ 0/. (katso myös lisätietoja 1. lukemisen tiedostosta). Valitettavasti siinä ei ole "0" kansioluettelossa, joten sinun on ensin purettava tiedosto väliaikaiseen kansioon ja kopioitava sitten A -kansion sisältö A/ 0/ -kortille.

6, Kun olet tehnyt edellä mainitut vaiheet, sinulla on SD-kortti, jonka rakenne on seuraavanlainen:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. jne

/B/0

/C/0

jne

Jos saat virheilmoituksen siitä, että et voi ladata CCP: tä jne., Kun yrität käynnistää SD-kortilta, tarkista, että kaikki on oikeassa tahdissa!

Yrittäessäni tehdä tästä vaiheesta hieman helpompaa, olen ladannut yllä olevan version, johon on lisätty cp/m-ohjelmisto, ja lataa se myös täältä https://github.com/coopzone-dc/RunCPM/blob /master/… ja pura se vain alustettuun SD-korttiin. Sen pitäisi päästä alkuun ja voit luoda oman myöhemmin.

Suosittelen myös lukemaan Github Repon asennusoppaan, jossa on kuvaus tarvitsemistasi kansioista.

Vaihe 7: Yhdistä VGA -näyttö ja näppäimistö

Yhdistä VGA -näyttö ja näppäimistö
Yhdistä VGA -näyttö ja näppäimistö

Irrota VGA32 ESP -kortin virta.

Liitä VGA -näyttö

Liitä PS/2-näppäimistö Kytke virta uudelleen VGA32 ESP -korttiin. Näet näppäimistön valot vilkkuvan ja noin 10 sekuntia myöhemmin näyttöön tulee kuva, jossa näkyy CP/M-kehote!

Tärkeää: VGA32: ssa on ongelma käytettäessä SD-korttia ja pehmeää nollausta, minkä vuoksi on tärkeää KYTKE VIRTA POIS PÄÄLTÄ ensimmäiseksi vaiheeksi, katso lisätietoja viimeisestä vaiheesta.

Pois sinä…

Vaihe 8: Ongelma SD-kortin kanssa VGA32-moduulissa

Ongelma SD-kortin kanssa VGA32-moduulissa
Ongelma SD-kortin kanssa VGA32-moduulissa
Ongelma SD-kortin kanssa VGA32-moduulissa
Ongelma SD-kortin kanssa VGA32-moduulissa

Yllä oleva kuva näyttää toisen ESP32 -korttini (kotitekoinen), tämä toimii hyvin eikä siinä ole alla olevaa ongelmaa. Joten tiedän, että se ei ole ohjelmisto -ongelma, lue alla VGA32 -versiosta.

VG32 ESP -moduulini (v1.4) SD-kortti käyttää GPIO12-protokollaa, Espressif Systems ei suosittele tätä, koska tätä nasta käytetään virran kytkemiseen sisäisen muistin käyttöjännitteen havaitsemiseen. Toivon, että joku olisi kertonut kaverille, joka tekee tämän VGA32 -kortin! Se voi olla eri asia kuin sinulla, joten toivottavasti sinulla ei ole tätä ongelmaa.

Ongelmat ovat:

1, Luonnoksen lataaminen ei onnistu, kun kortti on kytketty verkkovirtaan.

2, Palautuspainikkeen painamisen jälkeen se lukittuu, kunnes SD-kortti poistetaan. Sitten se käynnistyy virhenäytölle, jossa ei sanota SD-korttia! Voit laittaa kortin sisään ja nollata sen uudelleen, ja se toimii toisen kerran.

Tämä ongelma on korjattavissa (mutta siihen liittyy riski), katso README.md osoitteessa

tai voit aina kytkeä virran pois/päälle käynnistääksesi levyn. Jostain syystä tämä näyttää toimivan hyvin. Jos sinun on ladattava RunCPM-ohjelmisto uudelleen, poista SD-kortti ensin.

Tämä on ote README. MD -tiedostosta, joka selittää ongelman. Olen käyttänyt korjausta ja se toimii hyvin, MUTTA luonteensa vuoksi riski on sinun, lue…

VGA32 ESP: n asetukset näyttävät kuitenkin olevan ristiriidassa SD -kortin GPIO -asetusten kanssa.

Se toimii, mutta ladataksesi sinun on poistettava SD -kortti ja pehmeän nollauksen jälkeen sinun on poistettava SD -kortti ja vaihdettava se sitten, ja seuraava nollaus. Se toimii hyvin käynnistyksen tai kovan nollauksen jälkeen. Jos voit auttaa korjaamaan tämän, kerro siitä minulle. PÄIVITTÄMINEN 11.10.2020: VGA32 ESP v1.4 käyttää GPIO12 -protokollaa (MTDI, luetaan käynnistyksestä/nollauksesta). Tämä nasta määrittää RAM -muistin jännitteen, sisäisen LDO: n jännitteen (VDD_SDIO). Kun SD-kortti on läsnä, se vetää tämän nastan korkealle ja ESP32: n mielestä RAM-jännitteen tulisi olla 1,8 V, ilman SD-korttia tällä tapilla on sisäinen vedin alas RAM-jännitteen asettamiseksi 3,3 V. Tämä on itse asiassa mainittu FABGL -projektin esimerkkien muistiinpanoissa, lainatakseni: huomautuksia GPIO 2: sta ja 12: sta - GPIO2: voi aiheuttaa ongelmia ohjelmoinnissa. GPIO2 on myös jätettävä kytkemättä/kelluvaksi tai ajettava matalaksi, jotta se pääsee sarjakäynnistyslataimeen. Normaalissa käynnistystilassa (GPIO0 korkea) GPIO2 ohitetaan. - GPIO12: tulisi välttää. Se valitsee salaman jännitteen. Voit käyttää sitä poistamalla GPIO12 -tunnistusasetukset käytöstä seuraavilla tavoilla: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Hyvä ESP32: lle, jossa on 3,3 V: n jännite (ESP-WROOM-32). Tämä murskaa ESP32: n, jos salama ei ole 3.3V HUOMAUTUS 1: vaihda "/dev/cu. SLAB_USBtoUART" sarjaporttiin HUOMAUTUS 2: espefuse.py on ladattavissa osoitteesta

Tämä huomauttaa lisäksi, että GPIO12: tä tulisi välttää, pitsit, joita kukaan ei kertonut VGA32 ESP -kortin valmistajalle!

KORJATTU: Olen kokeillut vaihtoehtoa asettaa salaman jännite GPIO12: n käytön ohi ja voin vahvistaa vga32 ESP: n, se toimii! Ongelma korjattu, ei enää ongelmia SD -kortin kanssa. Kehotan sinua tarkistamaan, tarkistamaan ja harkitsemaan huolellisesti BRICKin luomista, jos päätät kokeilla sitä myös. En suosittele sitä toimenpiteeksi, mutta minulle se toimi.

Suositeltava: