INHOUDSOPGAWE:

Retro CP/M alleenstaande emulator: 8 stappe
Retro CP/M alleenstaande emulator: 8 stappe

Video: Retro CP/M alleenstaande emulator: 8 stappe

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

Hierdie projek gebruik die VGA32 ESP v1.4 -module om 'n kombinasie uit te voer, of RunCPM en FabGL om 'n selfstandige rekenaar te bied wat 'n ekwivalente stelsel met CP/M 2.2 gebruik. Gewild gedurende die 1980's as 'n bedryfstelsel vir klein rekenaars. U kan teruggaan in die tyd en die ou sagteware soos Wordstar, Supercalc, Adventure en Zork besoek.

Dit is selfstandig met vergunning van die FabGL -projek wat die sagteware verskaf het om 'n standaard VGA -monitor en PS/2 -sleutelbord te bestuur.

Die hoof -bedryfstelsel is 'n aangepaste weergawe van RunCPM, dit is afgeskaf van die oorspronklike werk op Github en ek het die FabGL -biblioteek bygevoeg om dit op 'n skerm te gebruik in plaas van op 'n seriële konsole.

Ek wil net baie dankie sê aan albei projekte. Hou aan met die goeie werk!

Die sagteware is getoets op ten minste twee weergawes van hardeware. Een van die VGA32 ESP v1.4 (soos klaargemaakte verkoop). Tweedens my ou weergawe, het ek uit 'n Wroom ESP32 -module gebou en stukkies van ou rekenaars verwyder.

Die Github-webwerf hieronder bevat belangrike inligting oor hierdie opstellings sowel as die aangepaste gereed om te installeer sagteware.

Hierdie projek handel oor die installering van die sagteware, nie oor die hardeware nie.

Benodighede:

'N VGA32 ESP -module V1.4 (getoets). Gevind op eBay / aliexpress / amazon, ens

Die Arduino IDE geïnstalleer op 'n rekenaar, ek neem aan dat as u dit al gelees het.

Installeer die ESP32 -ondersteuningspakket vir Arduino IDE. https://github.com/espressif/arduino-esp32 Sien stap 1

Die FabGL -biblioteek https://www.fabglib.org/ u hoef niks af te laai nie; die arduino IDE kan dit vir ons doen, sien stap 2.

Laai 'n afskrif van die aangepaste RunCPM af vanaf

Stap 1: Installeer ESP32 -ondersteuning vir Arduino (opsioneel)

Installeer ESP32 -ondersteuning vir Arduino (opsioneel)
Installeer ESP32 -ondersteuning vir Arduino (opsioneel)

Dit is moontlik dat u dit reeds gedoen het; as u wil, kan u hierdie stap oorslaan.

besoek https://github.com/espressif/arduino-esp32 en volg die instruksies oor die installering van die bordbestuurder, soos volg:

Installasie -instruksies met behulp van Arduino IDE Boards Manager ============================================== =================

Skakel vir stabiele vrystelling:

Installeer die huidige stroomopwaarts Arduino IDE op die 1.8 -vlak of later. Die huidige weergawe is op die Arduino -webwerf.

Begin Arduino en maak die venster Voorkeure oop.

Voer een van die vrystellingskakels hierbo in die veld Addisionele raadbestuurder -URL's in. U kan verskeie URL's byvoeg en dit met kommas skei.

Open Boards Manager vanaf Tools> Board menu en installeer esp32 platform (en vergeet nie om u ESP32 board uit Tools> Board menu na installasie te kies).

Stap 2: Voeg die FabGL -biblioteek by die IDE

Voeg die FabGL -biblioteek by die IDE
Voeg die FabGL -biblioteek by die IDE
Voeg die FabGL -biblioteek by die IDE
Voeg die FabGL -biblioteek by die IDE

Maak 'n leë skets in die Arduino IDE gebruik en maak seker dat u u ESP -bord gekies het in die menu 'Tools', Boards. (By die skryf van die VGA32 ESP is nie gelys nie, kies ek 'n generiese Dev Kit -bord).

Kies Sluit biblioteek in die Skets -kieslys in en kies dan Biblioteekbestuurder.

Tik FabGL in die soekkanaal en wag totdat dit in die onderstaande lys verskyn, klik nou op die installeringsknoppie.

klaar

Stap 3: Voeg ekstra SD-kaartbiblioteek by wat deur RunCPM gebruik word

Voeg bykomende SD-kaartbiblioteek by wat deur RunCPM gebruik word
Voeg bykomende SD-kaartbiblioteek by wat deur RunCPM gebruik word

Dit is byna dieselfde as die vorige stap, maar in plaas van FabGL soek SDFat

Kies Sluit biblioteek in die Skets -kieslys in en kies dan Biblioteekbestuurder. Tik in die soekdialoog SDFat en wag totdat dit in die onderstaande lys verskyn, sal u waarskynlik deur die lys moet blaai.

U kry die keuse uit twee weergawes:

1, SdFat deur Bill Greiman

2, SdFat - Adafruit Fork

Ek het albei probeer, dit lyk asof beide goed werk. Maar die RunCPM -projek het die tweede opsie "Adafruit Fork" aanbeveel, maar op die nuutste aantekeninge staan dit nou:

Alle borde gebruik nou die SdFat -biblioteek, van hier af:

So nou kies ek die eerste opsie vir hierdie projek.

klaar

Stap 4: Laai die gewysigde RunCPM -projek af

Laai die gewysigde RunCPM -projek af
Laai die gewysigde RunCPM -projek af
Laai die gewysigde RunCPM -projek af
Laai die gewysigde RunCPM -projek af

Besoek die Github-webwerf, Klik op die CODE -knoppie en laai dit af as 'n zip -lêer

Stoor hierdie lêer iewers (gewoonlik in 'n gids met die naam Arduino.

Pak die lêer uit op dieselfde plek, en dit sal 'n gids genaamd RunCPM-master produseer

klaar

Stap 5: Open en hersien die RunCPM -program en stel dit saam

Maak die RunCPM -program oop en hersien en stel op
Maak die RunCPM -program oop en hersien en stel op

U kan nou die menu Arduino IDE File, Open oopmaak. Navigeer na die vouer wat u hierbo opgelaai het.

Binne hierdie vouer is 'n ander een genaamd RunCPM. Maak die gids oop.

In die gids is 'n.ino -lêer genaamd RunCPM.ino. Dit is die hoofprojeklêer - maak dit oop.

U kan nou die projek bekyk, die opmerkings lees, ens. Maak veranderinge as u by u weergawe van VGA32 -ESP moet pas. Dit moet vooraf gekonfigureer wees vir V1.4 van die bord.

U kan nou op compile klik en oplaai, as u VGA32 ESP gekoppel het, laai die emulator na u toestel.

BELANGRIK: Die VGA32 kan op die oomblik 'n probleem met die SD-kaart hê, dus moenie dit inskakel om te weet nie. Sien die laaste stap hieronder vir meer inligting.

Stap 6: Skep 'n SD-kaart waarmee u u RunCPM kan begin

Dit is miskien die mees moeilike stap. Ek stel voor dat u die README.md van die Github -webwerf lees oor hoe u dit kan doen. Hier is my lys van wat om te doen:

Ek neem aan dat u 'n leë SD-kaart het of dat u nie daarin belangstel om lêers op die lêer te hou nie, dit sal dit uitvee.

1, formateer die SD-kaart as FAT-32

2, skep 'n paar dopgehou met die naam A, B, C D ens (tot P sal dit die skyfaandrywers wees wanneer CP/M uitgevoer word). Let op dat dit hoofletters is.

3, in elke gids skep u 'n ander gids met die naam 0 (dit is 'n nul) en opsioneel 1, 2, 3, ens (tot 15). Dan is vouers gebruikersgebiede in die CP/M -emulasie. U benodig slegs die 0 -lêergids om te begin.

4, vind die gids met die naam CCP in die afgelaaide projekmap in die arduino -gids. Dit bevat verskillende weergawes van die CP/M Command Console Proccessor. Kopieer die een genaamd CCP-DR.60K na die wortel van u SD-kaart.

5, vind nou die gids in die projekgids genaamd DISK. Dit bevat 'n A. ZIP-lêer, u moet die lêer uitpak na die gids A/ 0/ op u SD-kaart. (sien ook die 1streadme -lêer vir meer inligting). Ongelukkig bevat dit nie die "0" in die gidslys nie, dus moet u eers na 'n tydelike gids uitpak en dan die inhoud van die A -gids na A/ 0/ op die SD -kaart kopieer.

6, As u die bogenoemde stappe gedoen het, sal u 'n SD-kaart hê met 'n struktuur soos hierdie:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. ens

/B/0

/C/0

ens

As u foute kry om CCP, ens nie te laai nie, as u probeer om vanaf die SD-kaart op te laai, moet u seker maak dat alles in die regte pas is!

In 'n poging om hierdie fase 'n bietjie makliker te maak, het ek 'n klaargemaakte weergawe hierbo opgelaai, met addisionele cp/m-sagteware daarop en dit ook hier aflaai https://github.com/coopzone-dc/RunCPM/blob /master/… en pak dit net uit na die wortel van 'n geformateerde SD-kaart. Dit moet u aan die gang kry, dan kan u later u eie skep.

Ek beveel ook aan dat u die installeringsgids op die Github Repo lees; dit bevat 'n beskrywing van die dopgehou wat u benodig.

Stap 7: Koppel 'n VGA -monitor en sleutelbord

Koppel 'n VGA -monitor en sleutelbord
Koppel 'n VGA -monitor en sleutelbord

Ontkoppel die krag van die VGA32 ESP -kaart.

Koppel jou VGA -monitor

Koppel 'n PS/2-sleutelbord Sluit die krag weer aan op die VGA32 ESP-kaart; u moet die sleutelbordligte sien flits en ongeveer 10 sekondes later verskyn 'n prentjie op die skerm met 'n CP/M-aanwysing!

Belangrik: die VGA32 het 'n probleem met die gebruik van die SD-kaart en sagte reset, daarom is dit belangrik om die krag uit te skakel as die eerste stap hierbo, sien die laaste stap vir meer inligting.

Weg gaan jy…

Stap 8: Probleem met die SD-kaart op die VGA32-module

Probleem met SD-kaart op VGA32-module
Probleem met SD-kaart op VGA32-module
Probleem met SD-kaart op VGA32-module
Probleem met SD-kaart op VGA32-module

Die foto hierbo toon my tweede ESP32 -kaart (tuisgemaak), dit werk goed en het nie die probleem nie. Ek weet dus dat dit nie 'n sagtewarekwessie is nie; lees gerus hieronder oor die VGA32 -weergawe.

Op my VG32 ESP-module (v1.4) gebruik die SD-kaart GPIO12. Dit word nie aanbeveel deur Espressif Systems nie, aangesien hierdie pen gebruik word om die werkspanning van die interne geheue op te spoor. Ek wens iemand het die man wat hierdie VGA32 -kaart gemaak het, vertel! Dit is miskien anders as joune, so hopelik het u nie hierdie probleem nie.

Die probleme is:

1, Kan nie 'n skets oplaai as die kaart ingeprop is nie.

2, nadat u op die reset-knoppie gedruk het, word dit gesluit totdat die SD-kaart verwyder is. Dan begin dit na 'n foutskerm wat geen SD-kaart sê nie! U kan die kaart insit en weer herstel, en dit werk die tweede keer.

Hierdie probleem kan opgelos word (maar het 'n risiko) sien die README.md op

of u kan altyd hard aan/uit skakel om die bord te begin. Om een of ander rede blyk dit goed te werk. As u die RunCPM-sagteware weer moet oplaai, moet u eers die SD-kaart verwyder.

Dit is 'n uittreksel uit die README. MD wat die probleem verduidelik. Ek het die oplossing gebruik en dit werk goed, maar as gevolg van die aard daarvan is die risiko joune, lees verder …

Dit lyk egter of die instellings vir die VGA32 ESP 'n konflik het met die GPIO -instellings vir die SD -kaart.

Dit werk wel, maar om op te laai, moet u die SD -kaart verwyder en na 'n sagte herstel moet u die SD -kaart verwyder en dit dan vervang, gevolg deur 'n ander herstel. Dit werk goed as dit aanskakel of hard herstel word. Laat weet my as u kan help om dit reg te stel. UPDATE 11Oct2020: Die VGA32 ESP v1.4 gebruik GPIO12 (MTDI, lees by opstart/herstel). Hierdie pen bepaal die spanning vir die RAM, spanning van interne LDO (VDD_SDIO). As die SD-kaart teenwoordig is, trek dit hierdie pen hoog en die ESP32 dink dat die RAM-spanning 1.8V moet wees, sonder die SD-kaart het hierdie pen 'n interne aftrek om die RAM-spanning op 3.3V te stel. Dit word eintlik genoem in die notas uit voorbeelde van die FABGL -projek, om aan te haal: notas oor GPIO 2 en 12 - GPIO2: kan probleme met programmering veroorsaak. GPIO2 moet ook nie aangeslote/drywend of laag gedryf word nie, om die seriële selflaaiprogram in te voer. In die normale opstartmodus (GPIO0 hoog) word GPIO2 geïgnoreer. - GPIO12: moet vermy word. Dit kies flits spanning. Om dit te gebruik, skakel die GPIO12 -opsporinginstelling efuses uit met: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WAARSKUWING !! Goed vir ESP32 met 3.3V spanning (ESP-WROOM-32). Dit sal u ESP32 BRICK as die flits nie 3.3V is nie NOTA1: vervang "/dev/cu. SLAB_USBtoUART" met u seriële poort NOTA2: espefuse.py kan afgelaai word vanaf

Dit dui verder aan dat GPIO12 vermy moet word, 'n jammerte wat niemand aan die vervaardiger van die VGA32 ESP -kaart gesê het nie!

OPGELET: Ek het die opsie probeer om die flitsspanning in te stel om die gebruik van GPIO12 te oorskry, en ek kan bevestig op my vga32 ESP, dit werk! Die probleem is nie meer opgelos met die SD -kaart nie. Ek moedig u aan om na te gaan, na te gaan en na te dink oor die skep van 'n STEEN as u besluit om dit ook te probeer. Ek beveel dit nie aan as 'n aksie nie, maar vir my het dit gewerk.

Aanbeveel: