Innehållsförteckning:
- Steg 1: Installera ESP32 -stöd för Arduino (tillval)
- Steg 2: Lägga till FabGL -biblioteket i IDE
- Steg 3: Lägga till ytterligare SD-kortbibliotek som används av RunCPM
- Steg 4: Ladda ner det modifierade RunCPM -projektet
- Steg 5: Öppna och granska RunCPM -programmet och kompilera
- Steg 6: Skapa ett SD-kort som är redo att starta din RunCPM från
- Steg 7: Anslut en VGA -bildskärm och tangentbord
- Steg 8: Problem med SD-kort på VGA32-modulen
Video: Retro CP/M Stand Alone Emulator: 8 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:36
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)
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
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
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
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
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
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
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:
2-spelare Stand-Up Retro Arcade av Micro Center: 20 steg
2-spelare Stand-Up Retro Arcade av Micro Center: Ditt lokala Micro Center har nu allt du behöver för att göra ditt eget Raspberry Pi-baserade Retro Arcade-skåp. Kiten är helt anpassningsbara, inkluderar skåp, Raspberry Pi, knappar, joysticks, ljud- och videotillbehör och mer. Den'
Stand Alone Arduino ATmega328p: 7 steg (med bilder)
Stand Alone Arduino ATmega328p: Allt började när jag har sett det instruerbara " Binära spelet " av Keebie81https: //www.instructables.com/id/Binary-Game/ Men jag har trott att en fristående version istället för en Arduino-bräda skulle ha varit bättre för att få gratis
Vänd X-box Rock Band-trummor till en Midi Stand Alone elektroniska trummor: 4 steg (med bilder)
Förvandla X-box Rock Band-trummor till en Midi Stand Alone Electronic Drums .: Jag hade turen att få en begagnad x-box-trumset, den är lite grov och har ingen paddel, men inget som inte går att fixa. förvandla den till en fristående elektrisk trumset. Läser det analoga värdet från piezosensorn och gör det till MIDI -kommando
'Home Alone' inbrottslarm/ Använd Attiny13 för att köra en stegmotor och en servo: 5 steg
'Home Alone' inbrottstjuv/ använd Attiny13 för att köra en stegmotor och en servo: Det här kan vara ett av mina konstigaste projekt än :-) Men även om du inte är intresserad av att hålla inbrottstjuvar borta kan det här projektet användas för allt där du behöver köra en stegmotor eller servomotor, eller till och med flera likströmsmotorer med en Attiny13.Mo
Raspberry Pi 3: Retro Arcade Emulator: 7 steg
Raspberry Pi 3: Retro Arcade Emulator: Min motivation för att göra detta är bristen på teknisk läskunnighet i dagens värld. Även med överflöd av datorer och små enheter är människor fortfarande mycket okunniga om de grundläggande funktionerna i de saker de använder till vardags. Jag tror att detta kommer