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)