Taula de continguts:

Emulador autònom retro CP / M: 8 passos
Emulador autònom retro CP / M: 8 passos

Vídeo: Emulador autònom retro CP / M: 8 passos

Vídeo: Emulador autònom retro CP / M: 8 passos
Vídeo: So I Bought Those Weird New AliExpress Retro PCs… 2024, De novembre
Anonim
Emulador autònom retro CP / M
Emulador autònom retro CP / M

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)

Instal·leu el suport ESP32 per a Arduino (opcional)
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

Afegir la biblioteca FabGL a l'IDE
Afegir la biblioteca FabGL a l'IDE
Afegir la biblioteca FabGL a l'IDE
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

Addició de biblioteca de targeta SD addicional utilitzada per RunCPM
Addició de biblioteca de targeta SD addicional utilitzada per 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

Baixeu-vos el Projecte RunCPM modificat
Baixeu-vos el Projecte RunCPM modificat
Baixeu-vos el Projecte RunCPM modificat
Baixeu-vos 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

Obriu i reviseu el programa i compileu RunCPM
Obriu i reviseu el programa i compileu RunCPM

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

Connecteu un monitor i un teclat VGA
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

Problema amb la targeta SD al mòdul VGA32
Problema amb la targeta SD al mòdul VGA32
Problema amb la targeta SD al mòdul VGA32
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: