Emulator Retro CP/M Stand Alone: 8 hapa
Emulator Retro CP/M Stand Alone: 8 hapa
Anonim
Emulator Retro CP/M Stand Alone
Emulator Retro CP/M Stand Alone

Ky projekt përdor modulin VGA32 ESP v1.4 për të ekzekutuar një kombinim ose RunCPM dhe FabGL për të siguruar një kompjuter të vetëm që funksionon një sistem ekuivalent me CP/M 2.2. I popullarizuar gjatë viteve 1980 si një sistem operativ për kompjuterë të vegjël. Mund të ktheheni pas në kohë dhe të rishikoni programet e vjetra si Wordstar, Supercalc, Adventure dhe Zork.

Courtshtë mirësjellje e pavarur e projektit FabGL që siguroi softuerin për të drejtuar një monitor standard VGA dhe tastierë PS/2.

Sistemi operativ kryesor është një Version i modifikuar i RunCPM, është hequr nga puna origjinale në Github dhe unë kam shtuar bibliotekën FabGL për të mundësuar që ajo të përdoret në një ekran në vend të një tastiere serike.

Dua të them një falënderim të madh për të dy projektet. Vazhdo Me punën e mirë!

Softueri është testuar në të paktën dy versione të harduerit. Njëra VGA32 ESP v1.4 (siç shitet e gatshme). Së dyti, versioni im i vjetër, kam ndërtuar nga një modul Wroom ESP32 dhe heq copa nga kompjuterët e vjetër.

Faqja e Github më poshtë përmban informacione të rëndësishme për këto konfigurime, si dhe softuer të modifikuar të gatshëm për instalim.

Ky projekt ka të bëjë me instalimin e softuerit, jo me harduerin.

Furnizimet:

Një modul VGA32 ESP V1.4 (i testuar). Gjetur në eBay / aliexpress / amazon etj

Arduino IDE i instaluar në një kompjuter, supozoj nëse po e lexoni këtë ju tashmë e keni këtë.

Instaloni paketën mbështetëse ESP32 për Arduino IDE. https://github.com/espressif/arduino-esp32 Shih hapin 1

Biblioteka FabGL https://www.fabglib.org/ nuk keni nevojë të shkarkoni asgjë, arduino IDE mund ta bëjë këtë për ne, shihni hapin 2.

Shkarkoni një kopje të RunCPM të modifikuar nga

Hapi 1: Instaloni mbështetjen ESP32 për Arduino (opsionale)

Instaloni mbështetjen ESP32 për Arduino (opsionale)
Instaloni mbështetjen ESP32 për Arduino (opsionale)

Mund ta keni bërë tashmë këtë, nëse e keni, mund ta kaloni këtë hap.

vizitoni https://github.com/espressif/arduino-esp32 dhe ndiqni udhëzimet për instalimin duke përdorur bordet menaxher, si kjo:

Udhëzimet e instalimit duke përdorur Arduino IDE Boards Manager ========================================== ================

Lidhja e qëndrueshme e lëshimit:

Instaloni Arduino IDE aktuale në rrjedhën e sipërme në nivelin 1.8 ose më vonë. Versioni aktual gjendet në faqen e internetit të Arduino.

Filloni Arduino dhe hapni dritaren Preferences.

Futni një nga lidhjet e lëshimit më lart në fushën URL shtesë të Menaxherit të Bordit. Mund të shtoni URL të shumta, duke i ndarë ato me presje.

Hapni Menaxherët e Bordeve nga Tools> Menuja e bordit dhe instaloni platformën esp32 (dhe mos harroni të zgjidhni bordin tuaj ESP32 nga Tools> Menuja e bordit pas instalimit).

Hapi 2: Shtimi i Bibliotekës FabGL në IDE

Shtimi i Bibliotekës FabGL në IDE
Shtimi i Bibliotekës FabGL në IDE
Shtimi i Bibliotekës FabGL në IDE
Shtimi i Bibliotekës FabGL në IDE

Duke përdorur një skicë bosh në Arduino IDE, sigurohuni që keni zgjedhur Bordin tuaj ESP nga menyja Tools, Bordet. (Në kohën e shkrimit VGA32 ESP nuk ishte e shënuar, unë zgjedh një bord të përgjithshëm Dev Kit).

Nga menyja Sketch, zgjidhni Përfshi Bibliotekën, pastaj zgjidhni Menaxherin e Bibliotekës.

Në dialogun e kërkimit shkruani FabGL dhe prisni që të shfaqet në listën më poshtë, tani klikoni butonin Instalo.

mbaroi

Hapi 3: Shtimi i Bibliotekës shtesë të kartave SD të përdorura nga RunCPM

Shtimi i Bibliotekës shtesë të kartave SD të përdorura nga RunCPM
Shtimi i Bibliotekës shtesë të kartave SD të përdorura nga RunCPM

Ky është pothuajse i njëjtë me hapin e mëparshëm, por në vend të FabGL kërkoni SDFat

Nga menyja Sketch, zgjidhni Përfshi Bibliotekën, pastaj zgjidhni Menaxherin e Bibliotekës. Në dialogun e kërkimit shkruani SDFat dhe prisni që të shfaqet në listën më poshtë, me siguri do të duhet të lëvizni poshtë listës.

Ju merrni zgjedhjen e dy versioneve:

1, SdFat nga Bill Greiman

2, SdFat - Pirun Adafruit

Unë i kam provuar të dyja, të dy duket se funksionojnë mirë. Por projekti RunCPM rekomandoi opsionin e dytë "pirun Adafruit", megjithatë në shënimet e fundit tani thotë:

Të gjitha bordet tani përdorin bibliotekën SdFat, nga këtu:

Kështu që tani unë zgjedh opsionin e parë për këtë projekt.

mbaroi

Hapi 4: Shkarkoni Projektin e Modifikuar të RunCPM

Shkarkoni Projektin e Modifikuar RunCPM
Shkarkoni Projektin e Modifikuar RunCPM
Shkarkoni Projektin e Modifikuar RunCPM
Shkarkoni Projektin e Modifikuar RunCPM

Vizitoni Faqen e Github, Klikoni butonin KODI dhe shkarkoni si skedar ZIP

Ruajeni këtë skedar diku (normalisht në një drejtori të quajtur Arduino.

Zbërtheni skedarin në të njëjtin vend, ai do të prodhojë një dosje të quajtur RunCPM-master

mbaroi

Hapi 5: Hapni dhe Rishikoni Programin RunCPM dhe Përpiloni

Hapni dhe Rishikoni Programin RunCPM dhe Përpiloni
Hapni dhe Rishikoni Programin RunCPM dhe Përpiloni

Tani mund të përdorni skedarin Arduino IDE, Hapni menunë. Shkoni te dosja që keni përdorur më lart.

Brenda kësaj dosje është një tjetër i quajtur RunCPM. Hapni dosjen.

Brenda asaj dosje është një skedar.ino i quajtur RunCPM.ino. Ky është skedari kryesor i projektit - hapeni atë.

Tani mund të shikoni projektin, të lexoni komentet etj. Bëni ndryshime nëse keni nevojë të përputheni me versionin tuaj të VGA32 -ESP. Duhet të konfigurohet paraprakisht për V1.4 të tabelës.

Tani mund të klikoni në përpilimin dhe ngarkimin, duke supozuar se keni VGA32 ESP të lidhur, ai do të ngarkojë emulatorin në pajisjen tuaj.

E RORTNDSISHME: VGA32 mund të ketë një problem me kartën SD në këtë pikë, kështu që mos e lidhni atë për dije. Shih hapin e fundit më poshtë për më shumë informacion.

Hapi 6: Krijoni një kartë SD të gatshme për të nisur RunCPM tuaj Nga

Ky është ndoshta mashtrimi më i madh i hapave. Unë ju sugjeroj të lexoni README.md të faqes Github se si ta bëni këtë. Këtu është lista ime se çfarë të bëni:

Supozoj se keni një kartë SD bosh ose nuk jeni të interesuar të mbani ndonjë skedar në atë që keni, kjo do ta fshijë atë.

1, formatoni kartën SD si FAT-32

2, Krijoni disa dosje të quajtura A, B, C D etj (deri në P këto do të jenë disqet kur përdorni CP/M). Vini re se ato janë kryeqytete.

3, Në secilën dosje që krijoni Krijoni një dosje tjetër të quajtur 0 (që është një zero) dhe sipas dëshirës 1, 2, 3 etj (deri në 15) Pastaj dosjet janë Zonat e Përdoruesit në imitimin CP/M. Ju duhet vetëm dosja 0 për të filluar.

4, Nga dosja juaj e projektit e shkarkuar në drejtorinë arduino, gjeni dosjen e quajtur CCP. Kjo përmban versione të ndryshme të Procesorit të Komandës së Komandës CP/M. Kopjoni atë të quajtur CCP-DR.60K në rrënjën e kartës suaj SD.

5, Tani gjeni dosjen në drejtorinë e projektit të quajtur DISK, Ai përmban një skedar A. ZIP, ju duhet ta hapni këtë skedar në drejtorinë e quajtur A/ 0/ në kartën tuaj SD. (shihni edhe skedarin 1streadme për më shumë informacion). Fatkeqësisht nuk ka "0" në listën e dosjeve, kështu që së pari duhet të hapni zinxhirin në një dosje të përkohshme, pastaj kopjoni përmbajtjen për dosjen A në A/ 0/ në kartën SD.

6, Kur të keni bërë hapat e mësipërm do të keni një Kartë SD me një strukturë si kjo:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. etj

/B/0

/C/0

etj

Nëse merrni gabime kur nuk mund të ngarkoni CCP etj kur përpiqeni të filloni nga SD-Card, kontrolloni dy herë që keni gjithçka në ritmin e duhur!

Në përpjekje për ta bërë këtë fazë pak më të lehtë, unë kam ngarkuar një version të gatshëm të mësipërm, me një softuer shtesë cp/m në të, si dhe shkarkojeni nga këtu https://github.com/coopzone-dc/RunCPM/blob /master/… dhe thjesht hapeni atë në rrënjën e një karte SD të formatuar. Duhet të fillojë, atëherë mund të krijoni tuajin më vonë.

Unë gjithashtu ju rekomandoj të lexoni udhëzuesin e konfigurimit në Github Repo, ai ka një përshkrim të dosjeve që ju nevojiten.

Hapi 7: Lidhni një monitor dhe tastierë VGA

Lidhni një monitor dhe tastierë VGA
Lidhni një monitor dhe tastierë VGA

Shkëputeni energjinë nga karta VGA32 ESP.

Lidhni monitorin tuaj VGA

Lidhni një tastierë PS/2 Rilidhni rrymën me kartën VGA32 ESP, duhet të shihni që dritat e tastierës të ndizen dhe rreth 10 sekonda më vonë një fotografi do të shfaqet në ekran me një kërkesë CP/M!

E rëndësishme: VGA32 ka një problem kur përdorni kartën SD dhe rivendosjen e butë, kjo është arsyeja pse është e rëndësishme të FIKNI FUQIN si hapin e parë më sipër, Shih hapin e fundit për më shumë informacion.

Larg shkoni…

Hapi 8: Problem me kartën SD në modulin VGA32

Problem me kartën SD në modulin VGA32
Problem me kartën SD në modulin VGA32
Problem me kartën SD në modulin VGA32
Problem me kartën SD në modulin VGA32

Fotografia e mësipërme tregon kartën time të dytë ESP32 (e bërë në shtëpi), kjo funksionon mirë dhe nuk e ka çështjen më poshtë. Kështu që unë e di që nuk është një çështje softueri, ju lutemi lexoni më poshtë në lidhje me versionin VGA32.

Në modulin tim VG32 ESP (v1.4), karta SD përdor GPIO12, kjo nuk rekomandohet nga Espressif Systems pasi kjo kunjë përdoret në fuqizim për të zbuluar tensionin e punës për kujtesën e brendshme. Do të doja që dikush t'i kishte thënë djalit që bëri këtë kartë VGA32! Ndoshta është ndryshe me tuajin, kështu që me shpresë se nuk do ta keni këtë çështje.

Problemet janë:

1, Nuk mund të ngarkoni një skicë kur karta është e lidhur.

2, Pasi të keni shtypur butonin e rivendosjes, kyçet derisa të hiqet karta SD. Pastaj fillon në një ekran gabimi duke thënë se nuk ka SD-Card! Mund ta vendosni kartën dhe ta rivendosni përsëri dhe do të funksionojë herën e dytë.

Ky problem është i rregullueshëm (Por ka një rrezik) shihni README.md në

ose gjithmonë mund të bëni një fikje/ndezje të fortë për të filluar bordin. Për disa arsye kjo duket se funksionon mirë. Gjithashtu nëse keni nevojë të ngarkoni përsëri softuerin RunCPM, së pari duhet të hiqni kartën SD.

Ky është një ekstrakt nga README. MD që shpjegon çështjen. Unë kam përdorur rregullimin dhe funksionon mirë, POR për shkak të natyrës së tij rreziku është i juaji, lexoni …

Sidoqoftë, cilësimet për VGA32 ESP duket se kanë një konflikt në cilësimet GPIO për kartën SD.

Ajo funksionon, por për të ngarkuar duhet të hiqni kartën SD dhe pas një rivendosjeje të butë ju duhet të hiqni kartën SD dhe pastaj ta zëvendësoni atë të ndjekur nga një rivendosje tjetër. Punon mirë nga një ndezje ose një rivendosje e fortë. Nëse mund të ndihmoni në rregullimin e kësaj ju lutem më tregoni. PPRDITSIM 11 tetor 2020: VGA32 ESP v1.4 përdor GPIO12 (MTDI, lexuar gjatë ndezjes/rivendosjes). Ky pin përcakton tensionin për RAM -in, Tensionin e LDO -së së Brendshme (VDD_SDIO). Kur karta SD është e pranishme, ajo e tërheq këtë kunj të lartë dhe ESP32 mendon se voltazhi i RAM-it duhet të jetë 1.8V, pa kartën SD ky pin ka tërheqje të brendshme për të vendosur tensionin e RAM-it në 3.3V. Kjo në fakt përmendet në shënimet nga shembujt e dhënë në projektin FABGL, për të cituar: shënimet në lidhje me GPIO 2 dhe 12 - GPIO2: mund të shkaktojnë probleme në programim. GPIO2 gjithashtu duhet të lihet i palidhur/lundrues, ose të nxitet i ulët, në mënyrë që të hyjë në ngarkuesin serik. Në modalitetin e nisjes normale (i lartë GPIO0), GPIO2 injorohet. - GPIO12: duhet të shmanget. Zgjedh tensionin e ndezjes. Për ta përdorur atë çaktivizoni cilësimet e zbulimit të zbulimit GPIO12 me: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V KUJDES !! E mirë për ESP32 me tension 3.3V (ESP-WROOM-32). Kjo do të BRICK ESP32 -in tuaj nëse blici nuk është 3.3V NOTE1: zëvendësoni "/dev/cu. SLAB_USBtoUART" me portin tuaj serik NOTE2: espefuse.py mund të shkarkohet nga

Kjo vëren më tej se GPIO12 duhet të shmanget, një gjë e keqe që askush nuk i tha krijuesit të kartës VGA32 ESP!

FIKS: Kam provuar opsionin e vendosjes së tensionit të ndezjes për të tejkaluar përdorimin e GPIO12 dhe mund të konfirmoj në vga32 ESP tim, funksionon! Problemi nuk u zgjidh më me kartën SD. Unë ju nxis që të kontrolloni, kontrolloni dy herë dhe të mendoni me kujdes për krijimin e një TURKE nëse vendosni ta provoni gjithashtu. Unë nuk po e rekomandoj atë si një veprim, por për mua funksionoi.