Cuprins:

Emulator retro CP / M Stand Alone: 8 pași
Emulator retro CP / M Stand Alone: 8 pași

Video: Emulator retro CP / M Stand Alone: 8 pași

Video: Emulator retro CP / M Stand Alone: 8 pași
Video: CS50 2013 - Week 8, continued 2024, Decembrie
Anonim
Emulator retro CP / M Stand Alone
Emulator retro CP / M Stand Alone

Acest proiect utilizează modulul VGA32 ESP v1.4 pentru a rula o combinație sau RunCPM și FabGL pentru a oferi un computer autonom care rulează un sistem echivalent cu CP / M 2.2. Popular în anii 1980 ca sistem de operare pentru computere mici. Puteți să vă întoarceți în timp și să revizitați software-uri vechi precum Wordstar, Supercalc, Adventure și Zork.

Este o amabilitate independentă a proiectului FabGL care a furnizat software-ul pentru a rula un monitor VGA standard și o tastatură PS / 2.

Sistemul de operare principal este o versiune modificată a RunCPM, a fost preluată din lucrarea originală de pe Github și am adăugat biblioteca FabGL pentru a putea fi utilizată pe un ecran în loc de pe o consolă serială.

Aș vrea doar să mulțumesc ambelor proiecte. Continua cu munca buna!

Software-ul a fost testat pe cel puțin două versiuni de hardware. Unul VGA32 ESP v1.4 (așa cum este vândut gata făcut). În al doilea rând, versiunea mea veche, am construit dintr-un modul Wroom ESP32 și resturi de biți de pe computerele vechi.

Site-ul Github de mai jos conține informații importante despre aceste setări, precum și software-ul gata de instalare modificat.

Acest proiect este despre instalarea software-ului, nu despre hardware.

Provizii:

Un modul VGA32 ESP V1.4 (testat). Găsit pe eBay / aliexpress / amazon etc.

ID-ul Arduino instalat pe un computer, presupun că dacă citiți acest lucru, îl aveți deja.

Instalați pachetul de asistență ESP32 pentru Arduino IDE. https://github.com/espressif/arduino-esp32 Consultați pasul 1

Biblioteca FabGL https://www.fabglib.org/ nu trebuie să descărcați nimic, IDE-ul arduino poate face acest lucru pentru noi, consultați pasul 2.

Descărcați o copie a RunCPM modificat de la

Pasul 1: Instalați suportul ESP32 pentru Arduino (opțional)

Instalați suportul ESP32 pentru Arduino (opțional)
Instalați suportul ESP32 pentru Arduino (opțional)

Este posibil să fi făcut deja acest lucru, dacă aveți, puteți sări peste acest pas.

vizitați https://github.com/espressif/arduino-esp32 și urmați instrucțiunile de instalare folosind managerul de plăci, astfel:

Instrucțiuni de instalare folosind Arduino IDE Boards Manager =========================================== ===============

Link de lansare stabil:

Instalați actualul IDE Arduino în amonte la nivelul 1.8 sau ulterior. Versiunea actuală se află pe site-ul web Arduino.

Porniți Arduino și deschideți fereastra Preferințe.

Introduceți unul dintre linkurile de lansare de mai sus în câmpul Adrese URL ale administratorului de bord suplimentar. Puteți adăuga mai multe adrese URL, separându-le cu virgule.

Deschideți Managerul de placi din meniul Instrumente> Placă și instalați platforma esp32 (și nu uitați să selectați placa ESP32 din meniul Instrumente> Placă după instalare).

Pasul 2: Adăugarea Bibliotecii FabGL la IDE

Adăugarea Bibliotecii FabGL la IDE
Adăugarea Bibliotecii FabGL la IDE
Adăugarea Bibliotecii FabGL la IDE
Adăugarea Bibliotecii FabGL la IDE

Folosind o schiță goală în IDE-ul Arduino, asigurați-vă că ați selectat placa ESP din meniul Instrumente, Placi. (La momentul scrierii VGA32 ESP nu era listat, am ales o placă generică Dev Kit).

Din meniul Schiță, alegeți Include bibliotecă, apoi alegeți Manager bibliotecă.

În dialogul de căutare tastați FabGL și așteptați să apară în lista de mai jos, faceți clic acum pe butonul Instalare.

terminat

Pasul 3: Adăugarea unei biblioteci de carduri SD suplimentare folosită de RunCPM

Adăugarea unei biblioteci de carduri SD suplimentare folosită de RunCPM
Adăugarea unei biblioteci de carduri SD suplimentare folosită de RunCPM

Acesta este aproape același cu pasul anterior, dar în loc de FabGL căutați SDFat

Din meniul Schiță, alegeți Include bibliotecă, apoi alegeți Manager bibliotecă. În dialogul de căutare tastați SDFat și așteptați să apară în lista de mai jos, probabil că va trebui să derulați lista în jos.

Puteți alege dintre două versiuni:

1, SdFat de Bill Greiman

2, SdFat - Adafruit Fork

Le-am încercat pe amândouă, ambele par să funcționeze ok. Însă proiectul RunCPM a recomandat a doua opțiune „Adafruit Fork”, totuși pe cele mai recente note scrie acum:

Toate panourile folosesc acum biblioteca SdFat, de aici:

Așa că acum aleg prima opțiune pentru acest proiect.

terminat

Pasul 4: Descărcați proiectul RunCPM modificat

Descărcați proiectul RunCPM modificat
Descărcați proiectul RunCPM modificat
Descărcați proiectul RunCPM modificat
Descărcați proiectul RunCPM modificat

Accesați site-ul Github, Faceți clic pe butonul COD și descărcați ca fișier ZIP

Salvați acest fișier undeva (în mod normal într-un director numit Arduino.

Dezarhivați fișierul în aceeași locație, va produce un folder numit RunCPM-master

terminat

Pasul 5: Deschideți și examinați programul RunCPM și compilați

Deschideți și examinați programul și compilați RunCPM
Deschideți și examinați programul și compilați RunCPM

Acum puteți utiliza fișierul IDE Arduino, meniul Deschidere. Navigați la folderul pe care l-ați uitat mai sus.

În interiorul acestui dosar este un altul numit RunCPM. Deschideți folderul.

În interiorul acelui folder se află un fișier.ino numit RunCPM.ino. Acesta este fișierul principal al proiectului - deschideți-l.

Acum puteți vizualiza proiectul, citi comentariile etc. Faceți modificări dacă trebuie să se potrivească cu versiunea dvs. de VGA32 -ESP. Ar trebui să fie preconfigurat pentru V1.4 al plăcii.

Acum puteți face clic pe compilați și încărcați, presupunând că aveți conectat VGA32 ESP, acesta va încărca emulatorul pe dispozitivul dvs.

IMPORTANT: VGA32 are poate avea o problemă cu cardul SD în acest moment, așa că nu îl conectați pentru a ști. Consultați ultimul pas de mai jos pentru mai multe informații.

Pasul 6: Creați un card SD gata să porniți RunCPM de la

Acesta este probabil cel mai truc de pași. Vă sugerez să citiți README.md a site-ului Github despre cum să faceți acest lucru. Iată lista mea cu ce să fac:

Presupun că aveți un card SD gol sau nu sunteți interesat să păstrați niciun fișier pe cel pe care îl aveți, acest lucru îl va șterge.

1, formatați cardul SD ca FAT-32

2, Creați niște foldere numite A, B, C D etc. (până la P acestea vor fi unitățile de disc atunci când rulați CP / M). Rețineți că sunt capitale.

3, în fiecare folder creați Creați un alt folder numit 0 (care este zero) și opțional 1, 2, 3 etc. (până la 15) Apoi, folderele sunt zone de utilizator în emularea CP / M. Aveți nevoie doar de folderul 0 pentru a porni.

4, Din folderul proiectului descărcat din directorul arduino, găsiți folderul numit CCP. Acesta conține diverse versiuni ale procesorului consolei de comandă CP / M. Copiați-l pe cel numit CCP-DR.60K în rădăcina cardului SD.

5, acum găsiți folderul din directorul proiectului numit DISK, conține un fișier A. ZIP, trebuie să dezarhivați acest fișier în directorul numit A / 0 / de pe cardul SD. (vezi și fișierul 1streadme pentru mai multe informații). Din păcate, nu are „0” în lista de foldere, deci trebuie mai întâi să dezarhivați un folder temporar, apoi să copiați conținutul folderului A în A / 0 / de pe cardul SD.

6, După ce ați făcut pașii de mai sus, veți avea un card SD cu o structură de genul acesta:

F: CCP-DR.60K

/ A / 0

/1STREAD. ME

/ASM. COM

/…. etc.

/ B / 0

/ C / 0

etc.

Dacă primiți erori legate de faptul că nu se poate încărca CCP etc., atunci când încercați să porniți de pe cardul SD, verificați dacă aveți totul în ritmul potrivit!

În încercarea de a face această etapă un pic mai ușoară, am încărcat o versiune gata pregătită de mai sus, cu software suplimentar cp / m pe ea, precum și descărcați-o de aici https://github.com/coopzone-dc/RunCPM/blob / master / … și doar dezarhivați-l la rădăcina unui card SD formatat. Ar trebui să te înceapă, apoi îți poți crea propriul tău mai târziu.

De asemenea, vă recomand să citiți ghidul de configurare de pe Github Repo, acesta are o descriere a folderelor de care aveți nevoie.

Pasul 7: Conectați un monitor VGA și o tastatură

Conectați un monitor VGA și o tastatură
Conectați un monitor VGA și o tastatură

Deconectați alimentarea de pe placa ESP VGA32.

Conectați-vă monitorul VGA

Conectați o tastatură PS / 2 Reconectați alimentarea la placa ESP VGA32, ar trebui să vedeți luminile tastaturii clipind și aproximativ 10 secunde mai târziu o imagine va apărea pe ecran cu un prompt CP / M!

Important: VGA32 are o problemă atunci când utilizați cardul SD și resetarea soft, de aceea este important să OPRIȚI PUTEREA ca primul pas de mai sus, consultați ultimul pas pentru informații suplimentare.

Pleacă …

Pasul 8: Problemă cu cardul SD pe modulul VGA32

Problemă cu cardul SD pe modulul VGA32
Problemă cu cardul SD pe modulul VGA32
Problemă cu cardul SD pe modulul VGA32
Problemă cu cardul SD pe modulul VGA32

Fotografia de mai sus arată al doilea card ESP32 (de casă), funcționează bine și nu are problema de mai jos. Deci știu că nu este o problemă de software, vă rugăm să citiți mai jos despre versiunea VGA32.

Pe modulul meu VG32 ESP (v1.4) cardul SD utilizează GPIO12, acest lucru nu este recomandat de Espressif Systems, deoarece acest pin este utilizat la pornire pentru a detecta tensiunea de lucru pentru memoria internă. Îmi doresc ca cineva să-i fi spus tipului care face acest card VGA32! Poate că este diferit pentru dvs., așa că sperăm că nu veți avea această problemă.

Problemele sunt:

1, Imposibil de încărcat o schiță când cardul este conectat.

2, După apăsarea butonului de resetare, se blochează până când cardul SD este îndepărtat. Apoi pornește pe un ecran de eroare care spune că nu există card SD! Puteți introduce cardul și reseta din nou și va funcționa a doua oară.

Această problemă este rezolvabilă (dar are un risc), consultați README.md pe

sau puteți oricând să opriți / porniți greu pentru a porni placa. Din anumite motive, acest lucru pare să funcționeze bine. De asemenea, dacă trebuie să reîncărcați software-ul RunCPM, trebuie mai întâi să scoateți cardul SD.

Acesta este un extras din README. MD care explică problema. Am folosit remedierea și funcționează bine, DAR datorită naturii sale riscul este al tău, citește mai departe …

Cu toate acestea, setările pentru VGA32 ESP par să aibă un conflict asupra setărilor GPIO pentru cardul SD.

Funcționează, dar pentru a încărca trebuie să scoateți cardul SD și după o resetare soft trebuie să scoateți cardul SD și apoi să îl înlocuiți, urmat de o altă resetare. Funcționează ok de la pornire sau resetare hard. Dacă puteți ajuta la remedierea acestui lucru, vă rugăm să ne anunțați. ACTUALIZARE 11 octombrie2020: VGA32 ESP v1.4 utilizează GPIO12 (MTDI, citit la pornire / resetare). Acest pin determină tensiunea pentru RAM, Tensiunea LDO internă (VDD_SDIO). Când cardul SD este prezent, trage acest pin înalt, iar ESP32 consideră că tensiunea RAM ar trebui să fie de 1,8 V, fără cardul SD, acest pin are un pull-down intern pentru a seta tensiunea RAM la 3,3V. Acest lucru este de fapt menționat în notele din exemplele furnizate pe proiectul FABGL, pentru a cita: note despre GPIO 2 și 12 - GPIO2: poate cauza probleme la programare. GPIO2 trebuie, de asemenea, să fie lăsat neconectat / plutitor sau să fie condus Low, pentru a intra în bootloaderul serial. În modul normal de încărcare (GPIO0 ridicat), GPIO2 este ignorat. - GPIO12: trebuie evitat. Selectează tensiunea blițului. Pentru ao utiliza, dezactivați setările de detectare GPIO12 cu: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Bun pentru ESP32 cu tensiune de 3,3V (ESP-WROOM-32). Acest lucru vă va BRICK ESP32 dacă blițul nu este de 3,3V NOTĂ1: înlocuiți „/dev/cu. SLAB_USBtoUART” cu portul dvs. serial NOTA2: espefuse.py este descărcabil de pe

Aceasta menționează în continuare că GPIO12 ar trebui evitat, nu a spus nimeni producătorului cardului VGA32 ESP!

REZOLVAT: Am încercat opțiunea de a seta tensiunea blițului pentru a ignora utilizarea GPIO12 și pot confirma pe vga32 ESP, funcționează! Problema nu a mai fost rezolvată cu probleme cu cardul SD. Vă îndemn să verificați, să verificați dublu și să vă gândiți cu atenție la crearea unui BRICK dacă decideți să îl încercați și pe acesta. Nu o recomand ca acțiune, dar pentru mine a funcționat.

Recomandat: