Índice:
- Etapa 1: instale o suporte ESP32 para Arduino (opcional)
- Etapa 2: Adicionando a Biblioteca FabGL ao IDE
- Etapa 3: Adicionando Biblioteca de Cartão SD adicional usada por RunCPM
- Etapa 4: Baixe o projeto RunCPM modificado
- Etapa 5: abrir e revisar o programa RunCPM e compilar
- Etapa 6: Crie um cartão SD pronto para inicializar o seu RunCPM
- Etapa 7: conectar um monitor VGA e teclado
- Etapa 8: Problema com o cartão SD no módulo VGA32
Vídeo: Emulador autônomo retro CP / M: 8 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Este projeto usa o módulo VGA32 ESP v1.4 para executar uma combinação ou RunCPM e FabGL para fornecer um computador autônomo executando um sistema equivalente ao CP / M 2.2. Popular durante a década de 1980 como um sistema operacional para pequenos computadores. Você pode voltar no tempo e revisitar softwares antigos, como Wordstar, Supercalc, Adventure e Zork.
É uma cortesia independente do projeto FabGL que forneceu o software para executar um monitor VGA padrão e teclado PS / 2.
O sistema operacional principal é uma versão modificada do RunCPM, foi bifurcada do trabalho original no Github e adicionei a biblioteca FabGL para permitir que ela seja usada em uma tela em vez de em um console serial.
Só gostaria de agradecer muito a ambos os projetos. Mantenha o bom trabalho!
O software foi testado em pelo menos duas versões de hardware. Um o VGA32 ESP v1.4 (vendido pronto). Em segundo lugar, minha versão anterior, eu construí a partir de um módulo ESP32 do Wroom e retirei bits de computadores antigos.
O site Github abaixo contém informações importantes sobre essas configurações, bem como o software modificado pronto para instalar.
Este projeto é sobre a instalação do software, não sobre o hardware.
Suprimentos:
Um módulo VGA32 ESP V1.4 (testado). Encontrado em eBay / aliexpress / amazon etc
O IDE Arduino instalado em um computador, suponho que, se você está lendo isso, você já o possui.
Instale o pacote de suporte ESP32 para Arduino IDE. https://github.com/espressif/arduino-esp32 Veja a etapa 1
A biblioteca FabGL https://www.fabglib.org/ você não precisa baixar nada, o IDE do arduino pode fazer isso por nós, consulte a etapa 2.
Baixe uma cópia do RunCPM modificado em
Etapa 1: instale o suporte ESP32 para Arduino (opcional)
Você pode muito bem já ter feito isso, se você fez, pode pular esta etapa.
visite https://github.com/espressif/arduino-esp32 e siga as instruções de instalação usando o gerenciador de placas, como este:
Instruções de instalação usando Arduino IDE Boards Manager =============================================== ===============
Link de lançamento estável:
Instale o IDE upstream atual do Arduino no nível 1.8 ou posterior. A versão atual está no site do Arduino.
Inicie o Arduino e abra a janela Preferências.
Insira um dos links de lançamento acima no campo URLs adicionais do gerente da placa. Você pode adicionar vários URLs, separando-os com vírgulas.
Abra o gerenciador de placas em Ferramentas> menu Placa e instale a plataforma esp32 (e não se esqueça de selecionar sua placa ESP32 em Ferramentas> menu Placa após a instalação).
Etapa 2: Adicionando a Biblioteca FabGL ao IDE
Usando um esboço em branco no IDE do Arduino, certifique-se de ter selecionado sua placa ESP no menu Ferramentas, Placas. (No momento em que este artigo foi escrito, o VGA32 ESP não estava listado, eu escolhi uma placa do Dev Kit genérica).
No menu Sketch, escolha Incluir Biblioteca e, a seguir, escolha Gerenciador de Biblioteca.
Na caixa de diálogo de pesquisa digite FabGL e espere que apareça na lista abaixo, agora clique no botão Instalar.
finalizado
Etapa 3: Adicionando Biblioteca de Cartão SD adicional usada por RunCPM
Isso é quase o mesmo que a etapa anterior, mas em vez da pesquisa FabGL por SDFat
No menu Sketch, escolha Incluir Biblioteca e, a seguir, escolha Gerenciador de Biblioteca. Na caixa de diálogo de pesquisa digite SDFat e espere que apareça na lista abaixo, provavelmente você terá que rolar a lista para baixo.
Você pode escolher entre duas versões:
1, SdFat por Bill Greiman
2, SdFat - Garfo Adafruit
Eu tentei os dois, ambos parecem funcionar bem. Mas o projeto RunCPM recomendou a segunda opção "Adafruit Fork", no entanto, nas notas mais recentes agora diz:
Todas as placas agora usam a biblioteca SdFat, aqui:
Portanto, agora escolho a primeira opção para este projeto.
finalizado
Etapa 4: Baixe o projeto RunCPM modificado
Visite o site do Github, Clique no botão CODE e baixe como um arquivo ZIP
Salve este arquivo em algum lugar (normalmente em um diretório chamado Arduino.
Descompacte o arquivo no mesmo local, ele produzirá uma pasta chamada RunCPM-master
finalizado
Etapa 5: abrir e revisar o programa RunCPM e compilar
Agora você pode usar o arquivo IDE do Arduino, menu Abrir. Navegue até a pasta que você compactou acima.
Dentro desta pasta está outra chamada RunCPM. Abra a pasta.
Dentro dessa pasta está um arquivo.ino chamado RunCPM.ino. Este é o arquivo principal do projeto - abra-o.
Agora você pode visualizar o projeto, ler os comentários, etc. Faça alterações se precisar corresponder à sua versão do VGA32 -ESP. Deve ser pré-configurado para V1.4 da placa.
Agora você pode clicar em compilar e fazer upload, supondo que você tenha o VGA32 ESP conectado, ele carregará o emulador para o seu dispositivo.
IMPORTANTE: O VGA32 pode ter um problema com o cartão SD neste momento, portanto, não o conecte para saber. Veja a última etapa abaixo para mais informações.
Etapa 6: Crie um cartão SD pronto para inicializar o seu RunCPM
Este é talvez o mais truque das etapas. Eu sugiro que você leia o README.md do site do Github para saber como fazer isso. Aqui está minha lista do que fazer:
Presumo que você tenha um cartão SD em branco ou não esteja interessado em manter nenhum arquivo naquele que possui, isso irá apagá-lo.
1, formate o cartão SD como FAT-32
2, Crie algumas pastas chamadas A, B, C D etc (até P essas serão as unidades de disco ao executar CP / M). Observe que são maiúsculas.
3, Em cada pasta que você criar Crie outra pasta chamada 0 (isso é um zero) e opcionalmente 1, 2, 3 etc (até 15) Então as pastas são Áreas de Usuário na emulação CP / M. Você só precisa da pasta 0 para começar.
4, Na pasta do projeto baixado no diretório arduino, encontre a pasta chamada CCP. Este contém várias versões do CP / M Command Console Proccessor. Copie o chamado CCP-DR.60K para a raiz do seu cartão SD.
5, agora encontre a pasta no diretório do projeto chamada DISK, ela contém um arquivo A. ZIP, você precisa descompactar este arquivo para o diretório chamado A / 0 / em seu cartão SD. (veja também o arquivo 1streadme para mais informações). Infelizmente, ele não tem o "0" na lista de pastas, portanto, você precisa descompactar para uma pasta temporária primeiro e, em seguida, copiar o conteúdo da pasta A para A / 0 / no cartão SD.
6, quando você tiver feito as etapas acima, você terá um cartão SD com uma estrutura como esta:
F: CCP-DR.60K
/ A / 0
/1STREAD. ME
/ASM. COM
/…. etc
/ B / 0
/ C / 0
etc
Se você receber erros sobre não é possível carregar o CCP etc, ao tentar inicializar a partir do cartão SD, verifique se tudo está no ritmo certo!
Em uma tentativa de tornar este estágio um pouco mais fácil, eu carreguei uma versão pronta do acima, com a adição de software cp / m nela e também baixei aqui https://github.com/coopzone-dc/RunCPM/blob / master /… e descompacte-o na raiz de um cartão SD formatado. Isso deve ajudá-lo a começar, então você pode criar o seu próprio mais tarde.
Eu também recomendo que você leia o guia de configuração no Github Repo, ele tem uma descrição das pastas que você precisa.
Etapa 7: conectar um monitor VGA e teclado
Desconecte a alimentação da placa VGA32 ESP.
Conecte seu monitor VGA
Conecte um teclado PS / 2 Reconecte a alimentação à placa VGA32 ESP, você deve ver as luzes do teclado piscando e cerca de 10 segundos depois uma imagem aparecerá na tela com um prompt CP / M!
Importante: O VGA32 tem um problema ao usar o cartão SD e o soft reset, por isso é importante DESLIGAR A ENERGIA como a primeira etapa acima. Consulte a última etapa para obter mais informações.
Vá embora …
Etapa 8: Problema com o cartão SD no módulo VGA32
A foto acima mostra meu segundo cartão ESP32 (feito em casa), funciona bem e não tem o problema abaixo. Eu sei que não é um problema de software, por favor, leia abaixo sobre a versão VGA32.
No meu módulo VG32 ESP (v1.4), o cartão SD usa GPIO12, isso não é recomendado pela Espressif Systems, pois este pino é usado na inicialização para detectar a tensão de trabalho para a memória interna. Eu gostaria que alguém tivesse contado para o cara que fez essa placa VGA32! Pode ser diferente no seu, então espero que você não tenha esse problema.
Os problemas são:
1, Incapaz de carregar um esboço quando o cartão está conectado.
2, depois de pressionar o botão de reset, ele trava até que o cartão SD seja removido. Em seguida, ele inicializa em uma tela de erro dizendo que não há cartão SD! Você pode colocar o cartão e redefinir novamente e ele funcionará pela segunda vez.
Este problema pode ser corrigido (mas tem um risco), consulte o README.md em
ou você sempre pode desligar / ligar o power power para iniciar a placa. Por algum motivo, isso parece funcionar bem. Além disso, se você precisar recarregar o software RunCPM, deverá primeiro remover o cartão SD.
Este é um trecho do README. MD que explica o problema. Eu usei a correção e ela funciona bem, MAS devido à sua natureza o risco é seu, continue lendo …
No entanto, as configurações do VGA32 ESP parecem ter um conflito nas configurações GPIO do cartão SD.
Funciona, mas para fazer o upload, você deve remover o cartão SD e, após uma reinicialização suave, você deve remover o cartão SD e substituí-lo seguido por outra reinicialização. Funciona bem com uma inicialização ou reinicialização a frio. Se você puder ajudar a corrigir isso, por favor me avise. ATUALIZAÇÃO 11Oct2020: O VGA32 ESP v1.4 usa GPIO12 (MTDI, leitura na inicialização / redefinição). Este pino determina a voltagem para a RAM, Voltage of Internal LDO (VDD_SDIO). Quando o cartão SD está presente, ele puxa este pino para cima e o ESP32 pensa que a tensão da RAM deve ser 1.8V, sem o cartão SD este pino tem pull-down interno para definir a tensão da RAM para 3.3V. Na verdade, isso é mencionado nas notas dos exemplos fornecidos no projeto FABGL, para citar: notas sobre GPIO 2 e 12 - GPIO2: podem causar problemas na programação. O GPIO2 também deve ser deixado desconectado / flutuante ou direcionado para baixo, a fim de entrar no carregador de inicialização serial. No modo de inicialização normal (GPIO0 alto), GPIO2 é ignorado. - GPIO12: deve ser evitado. Ele seleciona a tensão do flash. Para usá-lo, desative os efusões de configuração de detecção de GPIO12 com: python espefuse.py --port /dev/cu. SLAB_USBtoUART set_flash_voltage 3.3V WARN !! Bom para ESP32 com voltagem de 3,3 V (ESP-WROOM-32). Isso irá BRICK seu ESP32 se o flash não for 3.3V NOTE1: substitua "/dev/cu. SLAB_USBtoUART" com sua porta serial NOTE2: espefuse.py está disponível para download em
Isso indica que o GPIO12 deve ser evitado, uma pena que ninguém disse ao fabricante da placa VGA32 ESP!
CORRIGIDO: tentei a opção de definir a voltagem do flash para substituir o uso de GPIO12 e posso confirmar no meu ESP vga32, funciona! Problema resolvido sem mais problemas com o cartão SD. Recomendo que você verifique, verifique e pense cuidadosamente sobre como criar um TIJOLO se você decidir experimentá-lo também. Não estou recomendando isso como uma ação, mas para mim funcionou.
Recomendado:
Como instalar, executar e conectar um controlador a um emulador: 7 etapas
Como instalar, executar e conectar um controlador a um emulador: Você já ficou sentado e se lembrou de sua infância como um jovem jogador e às vezes gostaria de poder revisitar aquelas joias do passado? Bem, há um aplicativo para isso … mais especificamente, há uma comunidade de jogadores que fazem programas
Instruções do emulador de jogos Raspberry Pi: 7 etapas
Raspberry Pi Gaming Emulator Instruções: Todos adoram jogar. Mesmo quando fazemos um trabalho sério. E é natural porque todo mundo merece descanso, lazer ou tempo livre. E, é claro, dificilmente podemos nos recusar a jogar nosso jogo favorito. Lembro-me da época em que algum tipo
Emulador de vinil Sonos Spotify: 26 etapas
Emulador de vinil Sonos Spotify: Observe que este não é o conjunto mais recente de instruções para este projeto: Visite https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d para o conjunto mais recente de instruções e suporte Ouvir música em vinil é ótimo. Seu
Emulador de calculadora científica HP-35 com Arduino Uno: 4 etapas
HP-35 Scientific Calculator Emulator com Arduino Uno: O objetivo deste projeto é executar o seguinte simulador https://www.hpmuseum.org/simulate/hp35sim/hp35sim…. em um Arduino Uno com TFTLCD e tela de toque semelhante a calculadora científica HP-35 original. Ela emula o código original armazenado
Raspberry Pi 3: Emulador Retro Arcade: 7 etapas
Raspberry Pi 3: Emulador Retro Arcade: Minha motivação para fazer isso é a falta de conhecimento tecnológico no mundo de hoje. Mesmo com a abundância de computadores e pequenos dispositivos as pessoas ainda são muito ignorantes sobre as funções básicas das coisas que usam no dia a dia. Eu acho que isso vai