OricForge

v0.48.0 IDE de developpement pour machines retro 8-bit — 1139 tests

Presentation

OricForge est un environnement de developpement integre concu pour la creation de programmes sur micro-ordinateurs retro. L'architecture est agnostique de la machine cible : toute specificite materielle (CPU, memoire, video, son, formats) est decrite dans des fichiers de definition externes (JSON).

Ajouter une machine = ajouter un fichier.

Premiere cible : famille Oric (Oric-1, Oric Atmos, Telestrat). Futures cibles : ZX81, MSX, et autres machines 8-bit.

Fonctionnalites principales

  • Architecture agnostique machine — zero valeur codee en dur, definitions JSON
  • Assembleur 6502/65C02 — deux passes, preprocesseur, segments, opcodes illegaux
  • Compilateur BASIC → 6502 — lexer, parser, IR, codegen, optimiseur, linker, 66 modules runtime
  • IDE web integre — editeur avec coloration, autocompletion, compilation temps reel, explorateur de projet
  • Editeurs graphiques — HIRES, LORES 0/1, charset, sprites, conversion entre modes
  • Audio PSG — effets sonores, import MIDI, synthese logicielle AY-3-8912
  • Debogueur — breakpoints, trace, profiling, registres VIA/PSG en temps reel
  • Support .DSK — SEDORIC, creation d'images bootables, CRUD fichiers
  • Export — .TAP, .DSK, listing, symboles, carte memoire
  • Documentation integree — references CPU, BASIC, peripheriques, 5 tutoriels

CLI

oricforge quick-run -m machines/atmos.json prog.asm  # Assembler + TAP + emulateur
oricforge compile-basic -m machines/atmos.json prog.bas --all  # Compilateur BASIC
oricforge assemble -m machines/atmos.json prog.asm   # Assembler seul
oricforge init-project monprojet                     # Creer un projet
oricforge build                                      # Builder le projet
oricforge inspect-dsk image.dsk                      # Inspecter un disque
oricforge create-boot-dsk -m machines/atmos.json prog.tap  # DSK bootable
oricforge disassemble -m machines/atmos.json prog.tap      # Desassembler
oricforge tutorial basic                             # Tutoriel interactif
oricforge ref-cpu -m machines/atmos.json             # Reference CPU

Structure du projet

OricForge/
├── cmd/oricforge/          CLI principal (17 fichiers par domaine)
├── internal/
│   ├── forgecore/          Abstractions generiques (CPU, memoire, video, son)
│   ├── forgemachine/       Chargeur de definitions machine
│   ├── forgeasm/           Assembleur multi-CPU + preprocesseur + segments
│   ├── forgecompiler/      Compilateur BASIC → 6502 (66 modules runtime)
│   ├── forgedebug/         Debogueur (client/serveur TCP, protocole 40 types)
│   ├── forgedasm/          Desassembleur 6502/65C02 + hex dump
│   ├── forgeimage/         Conversion images (HIRES, LORES 0/1, sprites)
│   ├── forgesound/         Audio PSG (effets, musique, MIDI, synthese)
│   ├── forgeio/            Import/export (TAP, DSK, charset)
│   ├── forgelib/           Bibliotheques ASM reutilisables
│   ├── forgeref/           Tables de reference (CPU, BASIC, peripheriques)
│   ├── forgeweb/           Interface web GUI (API REST, editeur, dashboard)
│   └── ...                 forgeemu, forgeextasm, forgeproject, forgebasic, forgetutorial
├── machines/               Definitions machine (JSON)
│   ├── oric1.json          Oric-1 (6502A, 48K, BASIC 1.0)
│   ├── atmos.json          Oric Atmos (BASIC 1.1)
│   └── telestrat.json      Telestrat (65C02, banking 64K)
├── web/                    Assets web (HTML, CSS, JS)
└── tests/e2e/              Tests end-to-end

Licence

MIT — Benedicte Marty (chipinette)

Code genere avec l'assistance de Claude Opus 4.6 (Anthropic)