Innehållsförteckning:

Retro CP/M Stand Alone Emulator: 8 steg
Retro CP/M Stand Alone Emulator: 8 steg

Video: Retro CP/M Stand Alone Emulator: 8 steg

Video: Retro CP/M Stand Alone Emulator: 8 steg
Video: CS50 2013 - Week 8, continued 2024, November
Anonim
Retro CP/M Fristående emulator
Retro CP/M Fristående emulator

Detta projekt använder modulen VGA32 ESP v1.4 för att köra en kombination eller RunCPM och FabGL för att tillhandahålla en fristående dator som kör ett motsvarande system till CP/M 2.2. Populärt under 1980 -talet som operativsystem för små datorer. Du kan gå tillbaka i tiden och besöka gammal programvara som Wordstar, Supercalc, Adventure och Zork.

Det är fristående med tillstånd av FabGL -projektet som levererade programvaran för att köra en standard VGA -bildskärm och PS/2 -tangentbord.

Huvud -operativsystemet är en modifierad version av RunCPM, det har blivit bortkastat från originalverket på Github och jag har lagt till FabGL -biblioteket för att det ska kunna användas på en skärm istället för på en seriekonsol.

Jag vill bara säga ett stort tack till båda projekten. Fortsätt så!

Programvaran har testats på minst två versioner av hårdvara. En VGA32 ESP v1.4 (som såld färdiggjord). För det andra min gamla version, jag byggde från en Wroom ESP32 -modul och skrotbitar från gamla datorer.

Github-webbplatsen nedan innehåller viktig information om dessa inställningar samt den modifierade redo att installera programvaran.

Det här projektet handlar om att installera programvaran, inte om hårdvaran.

Tillbehör:

En VGA32 ESP -modul V1.4 (testad). Hittade på eBay / aliexpress / amazon etc.

Arduino IDE installerad på en dator, jag antar att om du läser detta har du redan det här.

Installera stödpaketet ESP32 för Arduino IDE. https://github.com/espressif/arduino-esp32 Se steg 1

FabGL -biblioteket https://www.fabglib.org/ du behöver inte ladda ner någonting, arduino IDE kan göra detta för oss, se steg 2.

Ladda ner en kopia av den modifierade RunCPM från

Steg 1: Installera ESP32 -stöd för Arduino (tillval)

Installera ESP32 -stöd för Arduino (tillval)
Installera ESP32 -stöd för Arduino (tillval)

Du kan mycket väl redan ha gjort detta, om du har kan du hoppa över det här steget.

besök https://github.com/espressif/arduino-esp32 och följ instruktionerna för att installera med hjälp av boardshanteraren, så här:

Installationsanvisningar med Arduino IDE Boards Manager ============================================= =================

Länk till stabil release:

Installera den nuvarande uppströms Arduino IDE på 1.8 -nivån eller senare. Den nuvarande versionen finns på Arduino -webbplatsen.

Starta Arduino och öppna fönstret Inställningar.

Ange en av release -länkarna ovan i fältet Extra Board Manager URLs. Du kan lägga till flera webbadresser och separera dem med kommatecken.

Öppna Boards Manager från Tools> Board -menyn och installera esp32 -plattformen (och glöm inte att välja ditt ESP32 -kort från Tools> Board -menyn efter installationen).

Steg 2: Lägga till FabGL -biblioteket i IDE

Lägga till FabGL -biblioteket i IDE
Lägga till FabGL -biblioteket i IDE
Lägga till FabGL -biblioteket i IDE
Lägga till FabGL -biblioteket i IDE

Använd en tom skiss i Arduino IDE, se till att du har valt ditt ESP -kort från Verktyg -menyn, Boards. (I skrivande stund var VGA32 ESP inte listad, jag väljer ett generiskt Dev Kit -kort).

På Sketch -menyn väljer du Inkludera bibliotek och sedan bibliotekshanteraren.

Skriv FabGL i sökdialogen och vänta tills den visas i listan nedan, klicka nu på knappen Installera.

färdiga

Steg 3: Lägga till ytterligare SD-kortbibliotek som används av RunCPM

Lägga till ytterligare SD-kortbibliotek som används av RunCPM
Lägga till ytterligare SD-kortbibliotek som används av RunCPM

Detta är nästan detsamma som föregående steg men istället för FabGL -sökning efter SDFat

På Sketch -menyn väljer du Inkludera bibliotek och sedan bibliotekshanteraren. Skriv SDFat i sökdialogen och vänta på att den ska visas i listan nedan, du måste förmodligen rulla nedåt i listan.

Du kan välja mellan två versioner:

1, SdFat av Bill Greiman

2, SdFat - Adafruit Fork

Jag har provat båda, de verkar fungera ok. Men RunCPM -projektet rekommenderade det andra alternativet "Adafruit Fork", men på de senaste anteckningarna står det nu:

Alla styrelser använder nu SdFat -biblioteket, härifrån:

Så nu väljer jag det första alternativet för detta projekt.

färdiga

Steg 4: Ladda ner det modifierade RunCPM -projektet

Ladda ner det modifierade RunCPM -projektet
Ladda ner det modifierade RunCPM -projektet
Ladda ner det modifierade RunCPM -projektet
Ladda ner det modifierade RunCPM -projektet

Besök Github-webbplatsen, Klicka på knappen KOD och ladda ner som en ZIP -fil

Spara den här filen någonstans (normalt i en katalog som heter Arduino.

Packa upp filen till samma plats, det kommer att producera en mapp som heter RunCPM-master

färdiga

Steg 5: Öppna och granska RunCPM -programmet och kompilera

Öppna och granska RunCPM -programmet och kompilera
Öppna och granska RunCPM -programmet och kompilera

Du kan nu använda menyn Arduino IDE File, Open. Navigera till mappen som du packade upp ovan.

I den här mappen finns en annan som heter RunCPM. Öppna mappen.

Inuti den mappen finns en.ino -fil som heter RunCPM.ino. Detta är huvudprojektfilen - öppna den.

Du kan nu se projektet, läsa kommentarerna etc. Gör ändringar om du behöver matcha din version av VGA32 -ESP. Det bör vara förkonfigurerat för V1.4 på kortet.

Du kan nu klicka på kompilera och ladda upp, förutsatt att du har en VGA32 ESP ansluten laddar den upp emulatorn till din enhet.

VIKTIGT: VGA32 har kan ha problem med SD-kortet vid denna tidpunkt, så anslut inte det för att veta. Se sista steget nedan för mer information.

Steg 6: Skapa ett SD-kort som är redo att starta din RunCPM från

Detta är kanske det mest knepiga steget. Jag föreslår att du läser README.md på Github -webbplatsen om hur du gör detta. Här är min lista över vad jag ska göra:

Jag antar att du har ett tomt SD-kort eller inte är intresserad av att behålla några filer på den du har, detta raderar det.

1, formatera SD-kortet som FAT-32

2, Skapa några mappar som heter A, B, C D etc (upp till P kommer dessa att vara hårddiskarna när du kör CP/M). Observera att de är huvudstäder.

3, I varje mapp skapar du Skapa en annan mapp med namnet 0 (det är noll) och eventuellt 1, 2, 3 etc (upp till 15) Sedan är mappar användarområden i CP/M -emuleringen. Du behöver bara 0 -mappen för att starta.

4, Från din nedladdade projektmapp i arduino -katalogen, hitta mappen som heter CCP. Denna innehåller olika versioner av CP/M Command Console Proccessor. Kopiera den som heter CCP-DR.60K till roten på ditt SD-kort.

5, Hitta nu mappen i projektkatalogen som heter DISK, Den innehåller en A. ZIP-fil, du måste packa upp den här filen till katalogen A/ 0/ på ditt SD-kort. (se även 1streadme -filen för mer information). Tyvärr har den inte "0" i mapplistan så du måste packa upp till en tillfällig mapp först och sedan kopiera innehållet för A -mappen till A/ 0/ på SD -kortet.

6, När du har gjort ovanstående steg kommer du att ha ett SD-kort med en sådan struktur:

F: CCP-DR.60K

/A/0

/1STREAD. ME

/ASM. COM

/…. etc

/B/0

/C/0

etc

Om du får fel om att du inte kan ladda CCP etc när du försöker starta från SD-kortet, dubbelkolla att du har allt i rätt takt!

I ett försök att göra detta steg lite enklare har jag laddat upp en färdig version av ovan, med tilläggs-cp/m-programvara på den samt ladda ner den härifrån https://github.com/coopzone-dc/RunCPM/blob /master/… och packa upp det till roten på ett formaterat SD-kort. Det bör komma igång, då kan du skapa ditt eget senare.

Jag rekommenderar dig också att läsa installationsguiden på Github Repo, den har en beskrivning av de mappar du behöver.

Steg 7: Anslut en VGA -bildskärm och tangentbord

Anslut en VGA -bildskärm och tangentbord
Anslut en VGA -bildskärm och tangentbord

Koppla bort strömmen till VGA32 ESP -kortet.

Anslut din VGA -bildskärm

Anslut ett PS/2-tangentbord Anslut strömmen till VGA32 ESP-kortet igen, du bör se tangentbordslamporna blinka och cirka 10 sekunder senare visas en bild på skärmen med en CP/M-prompt!

Viktigt: VGA32 har problem vid användning av SD-kortet och mjuk återställning, det är därför det är viktigt att STÄNGA AV STRÖMEN som det första steget ovan, se sista steget för mer information.

Borta …

Steg 8: Problem med SD-kort på VGA32-modulen

Problem med SD-kort på VGA32-modulen
Problem med SD-kort på VGA32-modulen
Problem med SD-kort på VGA32-modulen
Problem med SD-kort på VGA32-modulen

Bilden ovan visar mitt andra ESP32 -kort (hemgjord), det fungerar bra och har inte problemet nedan. Så jag vet att det inte är ett mjukvaruproblem, läs nedan om VGA32 -versionen.

På min VG32 ESP-modul (v1.4) använder SD-kortet GPIO12. Detta rekommenderas inte av Espressif Systems eftersom denna stift används vid uppstart för att detektera arbetsspänningen för det interna minnet. Jag önskar att någon hade berättat för killen som gör detta VGA32 -kort! Det kanske är annorlunda på ditt, så förhoppningsvis har du inte det här problemet.

Problemen är:

1, Det går inte att ladda upp en skiss när kortet är anslutet.

2, Efter att ha tryckt på återställningsknappen låses den tills SD-kortet tas bort. Sedan startar den till en felskärm som säger inget SD-kort! Du kan sätta i kortet och återställa igen så fungerar det andra gången.

Det här problemet kan åtgärdas (men har en risk) se README.md på

eller så kan du alltid slå av/på hårt för att starta kortet. Av någon anledning verkar detta fungera bra. Om du behöver ladda upp RunCPM-programvaran igen måste du först ta bort SD-kortet.

Detta är ett utdrag från README. MD som förklarar problemet. Jag har använt fixen och det fungerar bra, men på grund av dess natur är risken din, läs vidare …

Inställningarna för VGA32 ESP verkar dock ha en konflikt med GPIO -inställningarna för SD -kortet.

Det fungerar men för att ladda upp måste du ta bort SD -kortet och efter en mjuk återställning måste du ta bort SD -kortet och sedan byta ut det följt av en annan återställning. Det fungerar ok från en påslagning eller hård återställning. Meddela mig om du kan hjälpa till att åtgärda detta. UPPDATERING 11 oktober 2020: VGA32 ESP v1.4 använder GPIO12 (MTDI, läs vid start/återställning). Denna stift bestämmer spänningen för RAM -minnet, Voltage of Internal LDO (VDD_SDIO). När SD-kortet är närvarande drar det denna stift högt och ESP32 tycker att RAM-spänningen ska vara 1,8V, utan SD-kortet har denna stift intern dragning för att ställa in RAM-spänningen till 3,3V. Detta nämns faktiskt i anteckningarna från exempel från FABGL -projektet, för att citera: anteckningar om GPIO 2 och 12 - GPIO2: kan orsaka problem med programmeringen. GPIO2 måste också lämnas antingen inkopplad/flytande eller körd Låg för att komma in i den seriella startladdaren. I normalt startläge (GPIO0 högt) ignoreras GPIO2. - GPIO12: bör undvikas. Den väljer blixtspänning. För att använda den, inaktivera GPIO12 -detekteringsinställningen efuses med: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Bra för ESP32 med 3.3V spänning (ESP-WROOM-32). Detta kommer att BRICKA din ESP32 om blixten inte är 3.3V NOTE1: ersätt "/dev/cu. SLAB_USBtoUART" med din seriella port NOTE2: espefuse.py kan laddas ner från

Detta noterar vidare att GPIO12 bör undvikas, en pittig ingen berättade för tillverkaren av VGA32 ESP -kortet!

FIX: Jag har försökt att ställa in blixtspänningen för att överskrida användningen av GPIO12 och kan bekräfta på min vga32 ESP, det fungerar! Problemet löste inga fler problem med SD -kortet. Jag uppmanar dig att kolla, dubbelkolla och tänk noga på att skapa en BRICK om du bestämmer dig för att prova det också. Jag rekommenderar det inte som en handling, men för mig fungerade det.

Rekommenderad: