Taula de continguts:
- Pas 1: instal·leu el suport ESP32 per a Arduino (opcional)
- Pas 2: afegir la biblioteca FabGL a l'IDE
- Pas 3: afegir una biblioteca addicional de targetes SD que utilitza RunCPM
- Pas 4: baixeu el projecte RunCPM modificat
- Pas 5: obriu i reviseu el programa RunCPM i compileu-lo
- Pas 6: creeu una targeta SD a punt per arrencar el vostre RunCPM
- Pas 7: connecteu un monitor i un teclat VGA
- Pas 8: problema amb la targeta SD al mòdul VGA32
Vídeo: Emulador autònom retro CP / M: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Aquest projecte utilitza el mòdul VGA32 ESP v1.4 per executar una combinació o RunCPM i FabGL per proporcionar un equip autònom que executi un sistema equivalent a CP / M 2.2. Popular durant els anys vuitanta com a sistema operatiu per a ordinadors petits. Podeu tornar enrere en el temps i tornar a visitar programes antics com Wordstar, Supercalc, Adventure i Zork.
És una cortesia independent del projecte FabGL que va proporcionar el programari per executar un monitor VGA estàndard i un teclat PS / 2.
El sistema operatiu principal és una versió modificada de RunCPM, ha estat obtinguda del treball original de Github i he afegit la biblioteca FabGL per permetre que es pugui utilitzar en una pantalla en lloc de fer-ho en una consola sèrie.
M’agradaria donar un gran agraïment a tots dos projectes. Mantingues la bona feina!
El programari s'ha provat en almenys dues versions de maquinari. Un el VGA32 ESP v1.4 (tal com es ven fabricat). En segon lloc, la meva versió antiga, la vaig construir a partir d’un mòdul Wroom ESP32 i vaig desfer bits d’ordinadors antics.
El lloc següent de Github conté informació important sobre aquestes configuracions, així com el programari modificat a punt per instal·lar.
Aquest projecte tracta d’instal·lar el programari, no del maquinari.
Subministraments:
Un mòdul VGA32 ESP V1.4 (provat). Es troba a eBay / aliexpress / amazon, etc.
L’IDE Arduino instal·lat en un ordinador, suposo que si el llegiu ja el teniu.
Instal·leu el paquet de suport ESP32 per a Arduino IDE. https://github.com/espressif/arduino-esp32 Vegeu el pas 1
La biblioteca FabGL https://www.fabglib.org/ no necessita descarregar res, l'IDE arduino ho pot fer per nosaltres, vegeu el pas 2.
Baixeu-vos una còpia del RunCPM modificat des de
Pas 1: instal·leu el suport ESP32 per a Arduino (opcional)
És possible que ja ho hàgiu fet; si ho teniu, podeu ometre aquest pas.
visiteu https://github.com/espressif/arduino-esp32 i seguiu les instruccions d’instal·lació amb l’administrador de taules, com ara:
Instruccions d'instal·lació mitjançant Arduino IDE Boards Manager ============================================ ===============
Enllaç de llançament estable:
Instal·leu l'IDE d'Arduino actual a nivell 1.8 o posterior. La versió actual es troba al lloc web d’Arduino.
Inicieu Arduino i obriu la finestra Preferències.
Introduïu un dels enllaços de llançament anteriors al camp URL addicionals del gestor de taules. Podeu afegir diversos URL separant-los amb comes.
Obriu el Gestor de taules des del menú Eines> Tauler i instal·leu la plataforma esp32 (i no oblideu seleccionar el tauler ESP32 al menú Eines> Tauler després de la instal·lació).
Pas 2: afegir la biblioteca FabGL a l'IDE
Mitjançant un esbós en blanc a l'IDE Arduino, assegureu-vos que heu seleccionat la vostra placa ESP al menú Eines, Taulers. (En el moment d'escriure el VGA32 ESP no apareixia a la llista, vaig triar una placa genèrica de Dev Kit).
Al menú Esbós, trieu Inclou biblioteca i, a continuació, seleccioneu Gestor de biblioteques.
Al quadre de diàleg de cerca, escriviu FabGL i espereu que aparegui a la llista següent, feu clic al botó Instal·la.
acabat
Pas 3: afegir una biblioteca addicional de targetes SD que utilitza RunCPM
Això és gairebé el mateix que el pas anterior, però en lloc de FabGL cerqueu SDFat
Al menú Esbós, trieu Inclou biblioteca i, a continuació, seleccioneu Gestor de biblioteques. Al diàleg de cerca, escriviu SDFat i espereu que aparegui a la llista següent, probablement haureu de desplaçar-vos cap avall per la llista.
Podeu triar dues versions:
1, SdFat de Bill Greiman
2, SdFat - Forquilla Adafruit
He provat tots dos, sembla que tots dos funcionen bé. Però el projecte RunCPM sí que va recomanar la segona opció "Adafruit Fork", però en les darreres notes ara diu:
Ara tots els fòrums utilitzen la biblioteca SdFat, des d’aquí:
Així que ara trio la primera opció per a aquest projecte.
acabat
Pas 4: baixeu el projecte RunCPM modificat
Visiteu el lloc de Github, Feu clic al botó CODI i descarregueu-lo com a fitxer ZIP
Deseu aquest fitxer en algun lloc (normalment en un directori anomenat Arduino.
Descomprimiu el fitxer a la mateixa ubicació, produirà una carpeta anomenada RunCPM-master
acabat
Pas 5: obriu i reviseu el programa RunCPM i compileu-lo
Ara podeu utilitzar el fitxer ID Arduino, menú Obert. Navegueu a la carpeta que heu deixat de sobre.
Dins d’aquesta carpeta hi ha una altra anomenada RunCPM. Obriu la carpeta.
Dins d’aquesta carpeta hi ha un fitxer.ino anomenat RunCPM.ino. Aquest és el fitxer principal del projecte: obriu-lo.
Ara podeu veure el projecte, llegir els comentaris, etc. Feu canvis si cal que coincideixi amb la vostra versió de VGA32 -ESP. S'ha de pre-configurar per a la versió 1.4 de la placa.
Ara podeu fer clic a compila i penja, suposant que teniu connectat el VGA32 ESP, carregarà l'emulador al vostre dispositiu.
IMPORTANT: el VGA32 pot tenir un problema amb la targeta SD en aquest moment, així que no el connecteu per saber-ho. Consulteu l'últim pas següent per obtenir més informació.
Pas 6: creeu una targeta SD a punt per arrencar el vostre RunCPM
Aquest és potser el pas més complicat. Us proposo llegir el README.md del lloc Github per saber com fer-ho. Aquí teniu la llista de què heu de fer:
Suposo que teniu una targeta SD en blanc o que no us interessa conservar cap fitxer al que teniu, això l’esborrarà.
1, formateu la targeta SD com a FAT-32
2, Creeu algunes carpetes anomenades A, B, C D etc (fins a P aquestes seran les unitats de disc quan s'executi CP / M). Tingueu en compte que són majúscules.
3, a cada carpeta creeu Crea una altra carpeta anomenada 0 (això és un zero) i, opcionalment, 1, 2, 3, etc. (fins a 15). Les carpetes són àrees d'usuari a l'emulació CP / M. Només necessiteu la carpeta 0 per començar.
4, a la carpeta del projecte descarregat al directori arduino, cerqueu la carpeta anomenada CCP. Conté diverses versions del processador de la consola d'ordres CP / M. Copieu el que s'anomena CCP-DR.60K a l'arrel de la vostra targeta SD.
5, ara cerqueu la carpeta al directori del projecte anomenada DISK, que conté un fitxer A. ZIP, heu de descomprimir-lo al directori anomenat A / 0 / de la vostra targeta SD. (vegeu també el fitxer 1streadme per obtenir més informació). Malauradament, no té el "0" a la llista de carpetes, de manera que primer heu de descomprimir-lo a una carpeta temporal i, a continuació, copieu el contingut de la carpeta A a A / 0 / de la targeta SD.
6, Quan hàgiu fet els passos anteriors, tindreu una targeta SD amb una estructura com aquesta:
F: CCP-DR.60K
/ A / 0
/1STREAD. ME
/ASM. COM
/ …. etc.
/ B / 0
/ C / 0
etc.
Si teniu errors sobre com no es pot carregar CCP, etc. quan intenteu arrencar des de la targeta SD, comproveu que teniu tot al ritme adequat.
Per intentar fer aquesta etapa una mica més fàcil, he penjat una versió preparada de la versió anterior, amb el programari addicional cp / m, a més de descarregar-lo des d’aquí https://github.com/coopzone-dc/RunCPM/blob / master / … i descomprimiu-lo a l'arrel d'una targeta SD formatada. Us hauria de començar i després podreu crear el vostre propi.
També us recomano llegir la guia de configuració de Github Repo, que conté una descripció de les carpetes que necessiteu.
Pas 7: connecteu un monitor i un teclat VGA
Desconnecteu l'alimentació de la targeta ESP VGA32.
Connecteu el monitor VGA
Connecteu un teclat PS / 2 Torneu a connectar l’alimentació a la targeta VGA32 ESP, hauríeu de veure els llums del teclat parpellejar i uns 10 segons després apareixerà una imatge a la pantalla amb un indicador CP / M.
Important: El VGA32 té un problema quan s’utilitza la targeta SD i el restabliment programari, per això és important APAGAR L’APAGAMENT com a primer pas anterior. Consulteu l’últim pas per obtenir més informació.
Lluny que vagis …
Pas 8: problema amb la targeta SD al mòdul VGA32
A la foto superior es mostra la meva segona targeta ESP32 (feta a casa), funciona bé i no té el problema següent. Per tant, sé que no és un problema de programari, llegiu a continuació la versió VGA32.
Al meu mòdul VG32 ESP (v1.4) la targeta SD utilitza GPIO12, això no és recomanable per Espressif Systems, ja que aquest pin s’utilitza en encendre’s per detectar la tensió de treball de la memòria interna. M’agradaria que algú li hagués dit al noi que fabrica aquesta targeta VGA32. Potser és diferent pel vostre, així que espero que no tingueu aquest problema.
Els problemes són:
1, no es pot penjar un esbós quan la targeta està connectada.
2, Després de prémer el botó de restabliment, es bloqueja fins que s'elimini la targeta SD. Llavors arrenca a una pantalla d'error que indica que no hi ha cap targeta SD. Podeu posar la targeta i restablir-la de nou i funcionarà la segona vegada.
Aquest problema es pot solucionar (però té un risc). Consulteu README.md a
o sempre podeu fer una apagada / engegada dura per engegar el tauler. Per alguna raó, això sembla funcionar bé. A més, si heu de tornar a carregar el programari RunCPM, primer heu d’eliminar la targeta SD.
Aquest és un extracte de README. MD que explica el problema. He utilitzat la solució i funciona bé, PER due per la seva naturalesa el risc és vostre, seguiu llegint …
Tot i això, la configuració del VGA32 ESP sembla que té un conflicte a la configuració GPIO de la targeta SD.
Funciona, però per pujar-la heu d’eliminar la targeta SD i després d’un restabliment suau heu d’eliminar la targeta SD i després substituir-la seguida d’un altre restabliment. Funciona bé a partir d'un encès o d'un reinici complet. Si podeu ajudar-vos a solucionar-ho, feu-m'ho saber. ACTUALITZACIÓ 11 d’Octubre de 2020: el VGA32 ESP v1.4 utilitza GPIO12 (MTDI, es llegeix en engegar / restablir). Aquest pin determina el voltatge de la memòria RAM, Voltatge de LDO intern (VDD_SDIO). Quan hi ha la targeta SD, tira aquest pin alt i l'ESP32 pensa que el voltatge de la RAM hauria de ser 1,8 V, sense la targeta SD aquest pin té un desplegable intern per configurar el voltatge de la RAM a 3,3V. Això s'esmenta realment a les notes dels exemples proporcionats al projecte FABGL, per citar: notes sobre GPIO 2 i 12 - GPIO2: poden causar problemes en la programació. El GPIO2 també s'ha de deixar desconnectat / flotant o conduït a baixa, per tal d'entrar al carregador d'arrencada en sèrie. En mode d'arrencada normal (GPIO0 alt), GPIO2 s'ignora. - GPIO12: s’ha d’evitar. Selecciona la tensió del flaix. Per utilitzar-lo, desactiveu la configuració de detecció GPIO12 efuses amb: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Bo per a ESP32 amb voltatge de 3,3 V (ESP-WROOM-32). Això farà BRICK el vostre ESP32 si el flaix no és de 3,3 V NOTA 1: substituïu "/dev/cu. SLAB_USBtoUART" pel port sèrie NOTA 2: es pot descarregar espefuse.py des de
Això assenyala a més que s'hauria d'evitar GPIO12, cosa que ningú no va dir al fabricant de la targeta ESP VGA32.
FIXAT: He provat l'opció de configurar el voltatge del flaix per anul·lar l'ús de GPIO12 i puc confirmar al meu vga32 ESP, funciona! El problema no s'ha solucionat més amb la targeta SD. Us demano que comproveu, reviseu-ho i penseu bé en la creació d’un BRICK si decidiu provar-ho també. No ho recomano com a acció, però per a mi va funcionar.
Recomanat:
Com instal·lar, executar i connectar un controlador a un emulador: 7 passos
Com instal·lar, executar i connectar un controlador a un emulador: Alguna vegada us heu assegut i recordeu la vostra infantesa com a jove jugador i, de vegades, voleu tornar a visitar aquelles velles joies del passat? Bé, hi ha una aplicació per a això … més concretament hi ha una comunitat de jugadors que fan programes
Instruccions de l’emulador de jocs Raspberry Pi: 7 passos
Instruccions de l’emulador de jocs Raspberry Pi: a tothom els agrada jugar. Fins i tot quan fem una feina seriosa. I és natural perquè tothom mereix descansar, passar el temps lliure o passar el temps lliure. I, per descomptat, difícilment ens podem negar a jugar el nostre joc favorit. Recordo el moment en què algun tipus
Emulador de vinil de Sonos Spotify: 26 passos
Emulador de vinil de Sonos Spotify: tingueu en compte que aquest no és el darrer conjunt d’instruccions per a aquest projecte: visiteu https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d per obtenir el darrer conjunt de instruccions i assistència Escoltar música en vinil és fantàstic. És
Emulador de calculadores científiques HP-35 amb Arduino Uno: 4 passos
Emulador de calculadores científiques HP-35 amb Arduino Uno: l'objectiu d'aquest projecte és executar el següent simulador https://www.hpmuseum.org/simulate/hp35sim/hp35sim….on un Arduino Uno amb TFTLCD i pantalla tàctil semblants l’HP-35 Scientific Calculator original. Emula el codi original emmagatzemat
Raspberry Pi 3: Emulador Retro Arcade: 7 passos
Raspberry Pi 3: Retro Arcade Emulator: la meva motivació per fer-ho és la manca d’alfabetització tecnològica al món actual. Fins i tot amb l’abundància d’ordinadors i petits dispositius, la gent encara desconeix les funcions bàsiques de les coses que utilitzen diàriament. Crec que això