Turinys:

Retro CP/M atskiras emuliatorius: 8 žingsniai
Retro CP/M atskiras emuliatorius: 8 žingsniai

Video: Retro CP/M atskiras emuliatorius: 8 žingsniai

Video: Retro CP/M atskiras emuliatorius: 8 žingsniai
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Liepa
Anonim
Retro CP/M atskiras emuliatorius
Retro CP/M atskiras emuliatorius

Šiame projekte naudojamas VGA32 ESP v1.4 modulis deriniui paleisti arba „RunCPM“ir „FabGL“, kad būtų sukurtas atskiras kompiuteris, kuriame veikia lygiavertė sistema CP/M 2.2. Devintajame dešimtmetyje populiari kaip mažų kompiuterių operacinė sistema. Galite grįžti laiku ir peržiūrėti seną programinę įrangą, tokią kaip „Wordstar“, „Supercalc“, „Adventure“ir „Zork“.

Tai atskiras leidimas iš „FabGL“projekto, kuris suteikė programinę įrangą paleisti standartinį VGA monitorių ir PS/2 klaviatūrą.

Pagrindinė OS yra modifikuota „RunCPM“versija, ji buvo pašalinta iš pradinio „Github“darbo ir pridėjau „FabGL“biblioteką, kad ją būtų galima naudoti ekrane, o ne serijinėje konsolėje.

Tik noriu padėkoti abiems projektams. Tęsk gerą darbą!

Programinė įranga buvo išbandyta naudojant mažiausiai dvi aparatinės įrangos versijas. Vienas iš VGA32 ESP v1.4 (parduodamas paruoštas). Antra, mano sena versija, aš sukūriau iš „Wroom ESP32“modulio ir iš senų kompiuterių iškarpų.

Žemiau esančioje „Github“svetainėje yra svarbi informacija apie šias sąrankas ir pakeista paruošta diegti programinė įranga.

Šis projektas yra apie programinės įrangos diegimą, o ne apie aparatūrą.

Priedai:

VGA32 ESP modulis V1.4 (išbandytas). Rasta eBay / aliexpress / amazon ir kt

„Arduino IDE“įdiegtas kompiuteryje, manau, jei tai skaitote, tai jau turite.

Įdiekite „Arduino IDE“palaikymo paketą ESP32. https://github.com/espressif/arduino-esp32 Žr. 1 veiksmą

„FabGL“bibliotekoje https://www.fabglib.org/ jums nieko nereikia atsisiųsti, „arduino IDE“gali tai padaryti už mus, žr. 2 veiksmą.

Atsisiųskite modifikuoto „RunCPM“kopiją iš

1 veiksmas: įdiekite „Arduino“ESP32 palaikymą (neprivaloma)

Įdiekite „Arduino“ESP32 palaikymą (neprivaloma)
Įdiekite „Arduino“ESP32 palaikymą (neprivaloma)

Galbūt jūs tai jau padarėte, jei turite, galite praleisti šį veiksmą.

apsilankykite https://github.com/espressif/arduino-esp32 ir vykdykite diegimo naudojant lentų tvarkyklę instrukcijas:

Diegimo instrukcijos naudojant „Arduino IDE Boards Manager“=========================================== ===============

Stabili išleidimo nuoroda:

Įdiekite dabartinę „Arduino IDE“versiją 1.8 ar naujesniame lygyje. Dabartinė versija yra „Arduino“svetainėje.

Paleiskite „Arduino“ir atidarykite nuostatų langą.

Į lauką Papildomi valdytojo URL įveskite vieną iš aukščiau išleistų nuorodų. Galite pridėti kelis URL, atskirdami juos kableliais.

Atidarykite „Boards Manager“iš „Tools“> „Board“meniu ir įdiekite „esp32“platformą (ir nepamirškite įdiegę ESP32 plokštės pasirinkti iš Tools> Board).

2 veiksmas: pridėkite „FabGL“biblioteką prie IDE

„FabGL“bibliotekos pridėjimas prie IDE
„FabGL“bibliotekos pridėjimas prie IDE
„FabGL“bibliotekos pridėjimas prie IDE
„FabGL“bibliotekos pridėjimas prie IDE

Naudodami tuščią eskizą „Arduino IDE“, įsitikinkite, kad pasirinkote savo ESP plokštę meniu „Įrankiai“, „Lentos“. (Rašymo metu VGA32 ESP nebuvo įtrauktas į sąrašą, aš renkuosi bendrą „Dev Kit“plokštę).

Meniu Eskizas pasirinkite Įtraukti biblioteką, tada pasirinkite Bibliotekos tvarkyklė.

Paieškos dialogo lange įveskite „FabGL“ir palaukite, kol jis pasirodys žemiau esančiame sąraše, dabar spustelėkite mygtuką Įdiegti.

baigta

3 veiksmas: pridėkite papildomą SD kortelių biblioteką, naudojamą „RunCPM“

Papildomos SD kortelės bibliotekos, naudojamos „RunCPM“, pridėjimas
Papildomos SD kortelės bibliotekos, naudojamos „RunCPM“, pridėjimas

Tai beveik tas pats, kaip ir ankstesnis žingsnis, tačiau vietoj „FabGL“ieškokite SDFat

Meniu Eskizas pasirinkite Įtraukti biblioteką, tada pasirinkite Bibliotekos tvarkyklė. Paieškos dialogo lange įveskite SDFat ir palaukite, kol jis pasirodys žemiau esančiame sąraše, tikriausiai turėsite slinkti žemyn.

Galite rinktis iš dviejų versijų:

1, SdFat, Bill Greiman

2, „SdFat“- „Adafruit“šakutė

Aš bandžiau abu, atrodo, kad jie abu veikia gerai. Tačiau „RunCPM“projektas rekomendavo antrąją parinktį „Adafruit Fork“, tačiau naujausiose pastabose dabar sakoma:

Visos plokštės dabar naudoja „SdFat“biblioteką iš čia:

Taigi dabar renkuosi pirmąjį šio projekto variantą.

baigta

4 veiksmas: atsisiųskite modifikuotą „RunCPM“projektą

Atsisiųskite modifikuotą „RunCPM“projektą
Atsisiųskite modifikuotą „RunCPM“projektą
Atsisiųskite modifikuotą „RunCPM“projektą
Atsisiųskite modifikuotą „RunCPM“projektą

Apsilankykite „Github“svetainėje, Spustelėkite mygtuką KODAS ir atsisiųskite kaip ZIP failą

Išsaugokite šį failą kur nors (paprastai kataloge, pavadintame „Arduino“.

Išpakuokite failą toje pačioje vietoje, jis sukurs aplanką „RunCPM-master“

baigta

5 veiksmas: atidarykite ir peržiūrėkite „RunCPM“programą ir kompiliuokite

Atidarykite ir peržiūrėkite „RunCPM“programą ir kompiliuokite
Atidarykite ir peržiūrėkite „RunCPM“programą ir kompiliuokite

Dabar galite naudoti „Arduino IDE File“, „Open“meniu. Eikite į aplanką, kurį įvedėte aukščiau.

Šio aplanko viduje yra dar vienas „RunCPM“. Atidarykite aplanką.

To aplanko viduje yra.ino failas, vadinamas RunCPM.ino. Tai yra pagrindinis projekto failas - atidarykite jį.

Dabar galite peržiūrėti projektą, skaityti komentarus ir tt Jei reikia, suderinkite savo VGA32 -ESP versiją. Jis turėtų būti iš anksto sukonfigūruotas plokštės V1.4.

Dabar galite spustelėti kompiliuoti ir įkelti, darant prielaidą, kad prijungtas VGA32 ESP, emuliatorius bus įkeltas į jūsų įrenginį.

SVARBU: Šiuo metu VGA32 gali turėti problemų su SD kortele, todėl žinodami neprijunkite jos. Daugiau informacijos rasite paskutiniame žingsnyje.

6 veiksmas: sukurkite SD kortelę, paruoštą paleisti „Run Run“

Tai, ko gero, yra didžiausias žingsnių triukas. Siūlau perskaityti „Github“svetainės README.md, kaip tai padaryti. Štai mano sąrašas, ką daryti:

Manau, kad turite tuščią SD kortelę arba nesate suinteresuoti išsaugoti jokių turimų failų, tai ją ištrins.

1, suformatuokite SD kortelę kaip FAT-32

2, sukurkite keletą aplankų, vadinamų A, B, C D ir tt (iki P tai bus disko įrenginiai, kai veikia CP/M). Atkreipkite dėmesį, kad jie yra didžiosios raidės.

3, Kiekviename sukurtame aplanke Sukurkite kitą aplanką pavadinimu 0 (tai nulis) ir pasirinktinai 1, 2, 3 ir tt (iki 15). Tada aplankai yra vartotojo sritys CP/M emuliacijoje. Norėdami pradėti, jums reikia tik 0 aplanko.

4, Iš atsiųsto projekto aplanko arduino kataloge raskite aplanką pavadinimu CCP. Jame yra įvairių „CP/M Command Console Proccessor“versijų. Nukopijuokite pavadinimą CCP-DR.60K į savo SD kortelės šaknį.

5, Dabar raskite aplanką projekto kataloge, pavadintą „DISK“. Jame yra A. ZIP failas, turite išpakuoti šį failą į katalogą, pavadintą A/ 0/ SD kortelėje. (taip pat daugiau informacijos rasite 1 -ojo skaitymo faile). Deja, aplankų sąraše nėra „0“, todėl pirmiausia turite išpakuoti laikiną aplanką, tada nukopijuoti A aplanko turinį į A/ 0/ SD kortelėje.

6, Kai atliksite aukščiau nurodytus veiksmus, turėsite SD kortelę, kurios struktūra tokia:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. ir kt

/B/0

/C/0

ir kt

Jei bandydami paleisti iš SD kortelės gaunate klaidų dėl to, kad negalite įkelti CCP ir tt, dar kartą patikrinkite, ar viskas yra tinkamu tempu!

Siekdamas šiek tiek palengvinti šį etapą, įkėliau jau paruoštą aukščiau pateiktą versiją su papildoma cp/m programine įranga, taip pat atsisiųskite ją iš čia https://github.com/coopzone-dc/RunCPM/blob /master/… ir tiesiog išpakuokite jį į suformatuotos SD kortelės šaknį. Tai turėtų jus pradėti, o vėliau galėsite sukurti savo.

Taip pat rekomenduoju perskaityti „Github Repo“sąrankos vadovą, jame yra jums reikalingų aplankų aprašymas.

7 veiksmas: prijunkite VGA monitorių ir klaviatūrą

Prijunkite VGA monitorių ir klaviatūrą
Prijunkite VGA monitorių ir klaviatūrą

Atjunkite VGA32 ESP kortelės maitinimą.

Prijunkite savo VGA monitorių

Prijunkite PS/2 klaviatūrą Iš naujo prijunkite maitinimą prie VGA32 ESP kortelės, turėtumėte pamatyti, kaip mirksi klaviatūros lemputės, ir maždaug po 10 sekundžių ekrane pasirodys vaizdas su CP/M raginimu!

Svarbu: naudojant VGA32 kyla problemų naudojant SD kortelę ir minkštą atstatymą, todėl svarbu IŠJUNGTI MAITINIMĄ kaip pirmąjį žingsnį aukščiau. Daugiau informacijos rasite paskutiniame žingsnyje.

Išeik tu…

8 žingsnis: VGA32 modulio SD kortelės problema

Problema su SD kortele VGA32 modulyje
Problema su SD kortele VGA32 modulyje
Problema su SD kortele VGA32 modulyje
Problema su SD kortele VGA32 modulyje

Aukščiau esančioje nuotraukoje parodyta mano antroji ESP32 kortelė (pagaminta namuose), ji veikia gerai ir neturi problemos. Taigi žinau, kad tai nėra programinės įrangos problema, skaitykite toliau apie VGA32 versiją.

Mano VG32 ESP modulyje (v1.4) SD kortelėje naudojamas GPIO12, „Espressif Systems“to nerekomenduoja, nes šis kaištis naudojamas įjungus, kad būtų galima nustatyti vidinės atminties darbinę įtampą. Norėčiau, kad kas nors pasakytų vaikinui, kuris gamina šią VGA32 kortelę! Galbūt pas jus viskas bus kitaip, todėl tikimės, kad neturėsite šios problemos.

Problemos yra šios:

1, Nepavyksta įkelti eskizo, kai kortelė prijungta.

2, Paspaudus atstatymo mygtuką, jis užsifiksuoja, kol išimama SD kortelė. Tada jis paleidžiamas į klaidos ekraną, kuriame sakoma, kad nėra SD kortelės! Galite įdėti kortelę ir iš naujo nustatyti, ir ji veiks antrą kartą.

Ši problema yra pataisoma (tačiau turi riziką), žr. README.md adresu

arba visada galite išjungti/įjungti, kad paleistumėte lentą. Kažkodėl atrodo, kad tai veikia gerai. Taip pat, jei jums reikia iš naujo įkelti „RunCPM“programinę įrangą, pirmiausia turite išimti SD kortelę.

Tai yra README. MD ištrauka, paaiškinanti problemą. Aš naudoju pataisą ir ji veikia gerai, BET dėl savo pobūdžio rizika yra jūsų, skaitykite toliau …

Tačiau atrodo, kad VGA32 ESP nustatymai prieštarauja SD kortelės GPIO nustatymams.

Tai veikia, tačiau norėdami įkelti turite pašalinti SD kortelę, o po minkšto atstatymo turite išimti SD kortelę ir tada ją pakeisti, o po to dar kartą iš naujo nustatyti. Jis veikia gerai, kai įjungiamas arba iš naujo nustatomas. Jei galite padėti tai išspręsti, praneškite man. ATNAUJINIMAS 11.102020: VGA32 ESP v1.4 naudoja GPIO12 (MTDI, skaityti įjungus/iš naujo nustatant). Šis kaištis nustato RAM įtampą, vidinio LDO įtampą (VDD_SDIO). Kai yra SD kortelė, ji ištraukia šį kaištį aukštai, o ESP32 mano, kad RAM įtampa turėtų būti 1,8 V, be SD kortelės šis kaištis turi vidinį nuspaudimą, kad RAM įtampa būtų nustatyta į 3,3 V. Tai iš tikrųjų paminėta FABGL projekto pavyzdžių pastabose, cituojant: pastabos apie GPIO 2 ir 12 - GPIO2: gali sukelti programavimo problemų. Norint įeiti į serijinį įkrovos tvarkyklę, GPIO2 taip pat turi būti paliktas neprijungtas/plūduriuojantis arba žemas. Įprastu įkrovos režimu (didelis GPIO0) GPIO2 nepaisoma. - GPIO12: reikėtų vengti. Jis pasirenka blykstės įtampą. Norėdami jį naudoti, išjunkite GPIO12 aptikimo nustatymo efektus naudodami: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Tinka ESP32 su 3,3 V įtampa (ESP-WROOM-32). Tai pakeis jūsų ESP32, jei blykstė nėra 3.3 V PASTABA 1: pakeiskite „/dev/cu. SLAB_USBtoUART“savo nuosekliu prievadu PASTABA2: espefuse.py galima atsisiųsti iš

Tai taip pat pažymi, kad reikėtų vengti GPIO12, to niekas nesakė VGA32 ESP kortelės gamintojui!

FIKSUOTA: Aš išbandžiau galimybę nustatyti blykstės įtampą, kad ji nepaisytų GPIO12 naudojimo, ir galiu patvirtinti savo „vga32 ESP“, tai veikia! Problema išspręsta, nebeliko problemų su SD kortele. Raginu jus patikrinti, dar kartą patikrinti ir gerai pagalvoti apie BRICK kūrimą, jei nuspręsite jį išbandyti. Nerekomenduoju to kaip veiksmo, bet man tai pavyko.

Rekomenduojamas: