An open API service indexing awesome lists of open source software.

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

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.