https://github.com/carlosrabelo/mojave
mojave
https://github.com/carlosrabelo/mojave
esp32 platformio sha256 solo-miner
Last synced: about 2 months ago
JSON representation
mojave
- Host: GitHub
- URL: https://github.com/carlosrabelo/mojave
- Owner: carlosrabelo
- Created: 2025-10-16T01:25:10.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2025-10-30T19:47:00.000Z (8 months ago)
- Last Synced: 2025-10-30T21:34:30.414Z (8 months ago)
- Language: Go
- Size: 137 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README-PT.md
Awesome Lists containing this project
README
# Mojave
Emulador multi-arquitetura (Z80/6502) com ambiente de desenvolvimento integrado e suporte a hardware personalizado.
## Destaques
- Emulação de CPUs multi-arquitetura com foco em Z80 e 6502
- Sistema de dispositivos plugável via interfaces abstratas de Bus e Device
- Assembler integrado para os conjuntos de instruções Z80 e 6502
- IDE gráfica para edição de código, montagem e emulação
- Camada de abstração de hardware para desenvolvimento de periféricos
- Suíte de testes automatizados com Catch2
## Pré-requisitos
- **g++ 12+** com suporte a C++20 — necessário para compilar a partir do código-fonte
- **Catch2 v2** — obtido automaticamente com `make setup` em `mojave/lib/`
## Instalação
### Compilar a partir do código-fonte
```bash
git clone https://github.com/carlosfilme/mojave.git
cd mojave
make setup
make build
```
Binários de debug são gravados em `bin/` na raiz do repositório (`mojave` e `mojave-tests`).
## Início Rápido
```bash
make build
make run
```
## Uso
### Executar a CLI
Na raiz do repositório, após um build bem-sucedido:
```bash
make run
```
Ou execute o binário diretamente:
```bash
./bin/mojave
```
O ponto de entrada atual imprime a versão do Mojave (por exemplo `Mojave v0.1.0`) e encerra.
## Estrutura do Projeto
```
.make/ Scripts de build (compartilhados; caminhos apontam para mojave/)
bin/ Saída de build (ignorada pelo git)
mojave/ Componente C++: src, tests, lib, Makefile
```
O `Makefile` na raiz delega para `mojave/`; também é possível usar `make -C mojave` a partir da raiz do clone.
Dentro de `mojave/`: `src/core/` (barramento, dispositivo, versão), `src/assembler/`, `src/ui/`, `tests/`, `lib/` (Catch2 após o setup).
## Desenvolvimento
```bash
make setup # Baixar Catch2 (apenas na primeira vez)
make build # Compilar binário para bin/mojave
make test # Compilar e executar testes
make check # Verificação de sintaxe de todos os fontes
make lint # Executar cppcheck
make fmt # Formatar com clang-format
make quality # Executar todas as verificações (fmt + lint + test)
make clean # Remover artefatos de build
```
## Licença
Este projeto está licenciado sob a Licença MIT — veja [LICENSE](LICENSE) para detalhes.