Fonctionnalites detaillees
Assembleur 6502/65C02
- Deux passes, jeu d'instructions depuis la definition machine JSON
- Tous les modes d'adressage, optimisation page zero, expressions arithmetiques
- Directives :
.org, .byte, .word, .text, .fill, .align
- Preprocesseur :
.define, .macro, .enum, .if/.else/.endif, .include, .incbin
- Segments multiples : CODE, DATA, BSS, ZP
- Support 65C02 (PHX, PHY, PLX, PLY, STZ, BRA, TRB, TSB)
- Opcodes illegaux 6502 (LAX, SAX, DCP, ISC, SLO, RLA, SRE, RRA)
- Listing (.lst) avec cycles CPU par instruction et sous-totaux par routine
- Assembleurs externes : xa65, ca65/cc65, vasm, z80asm, pasmo
Compilateur BASIC → 6502
- Analyse : lexer → AST (34+ noeuds) → analyse semantique → inference de types (u8/i16/f40/str/bool)
- IR : 40+ opcodes intermediaires, graphe de flot de controle
- Codegen : variables, arithmetique, FOR/NEXT, IF/THEN/ELSE, GOTO, GOSUB, PRINT, INPUT, POKE/PEEK, DIM 1D/2D, DEF FN
- Runtime : 66 modules (math, print, input, graphique, son, chaines, GC, flottants 40 bits, trigonometrie)
- Optimisations : constant folding, reduction de force, hoisting, deroulement boucles, inlining, string pooling, peephole ASM
- Linker DCE : dead code elimination, tri topologique des dependances
- Modes : Debug, Release, Size, Speed
- Runtime graphique : HIRES, TEXT, LORES, PLOT, CURSET, DRAW, CIRCLE, FILL, CHAR
- Runtime sonore : SOUND, MUSIC, PLAY, ZAP, PING, SHOOT, EXPLODE
- Assembleur inline :
REM @ASM / REM @ENDASM
- Profileur statique : cycles CPU estimes par ligne BASIC
IDE Web integre
- Dashboard retro CRT (themes phosphore/ambre/cyan, scanlines)
- Editeur de code BASIC + ASM avec coloration syntaxique
- Autocompletion contextuelle (GOTO → lignes, variables, labels, signatures)
- Compilation et erreurs temps reel (debounce, diagnostics dans la gouttiere)
- Vue cote a cote BASIC / ASM genere
- Mode immediat BASIC (prompt interactif, evaluation expressions)
- Refactoring : renommer, extraire GOSUB, formater, detection code mort
- Outils visuels : palette INK/PAPER, table CHR$, flux GOTO/GOSUB
- Profileur et statistiques de compilation
- Explorateur de projet (arborescence, menu contextuel)
- Exports : TAP, DSK, listing, symboles, carte memoire
Editeurs graphiques
- Conversion HIRES (dithering, parametres ajustables)
- Conversion LORES 0 (sous-blocs 2x3) et LORES 1 (tile-map avec detection doublons)
- Sprites logiciels (donnees, masque AND, blitting 6502, export ASM/BASIC/binaire)
- Conversion entre modes graphiques (6 conversions HIRES ↔ LORES0 ↔ LORES1)
- Import/export charset binaire (.chr)
Audio PSG
- Effets sonores PSG parametrables (ZAP, PING, SHOOT, EXPLODE)
- Export musique BASIC/ASM/binaire (notation textuelle, gammes)
- Import MIDI simplifie (SMF 0/1, 3 canaux, transposition)
- Synthese audio PSG logicielle (AY-3-8912, export WAV)
Debogueur
- Protocole TCP client/serveur (40 types de messages)
- Breakpoints (exec/read/write), watchpoints
- Execution pas a pas (run/stop/step/reset)
- Vue pile avec decodage adresses retour JSR
- Historique d'execution (trace des N dernieres instructions)
- Profiling par routine (comptage cycles)
- Registres VIA/PSG en temps reel
Support .DSK / SEDORIC
- Formats ORICDISK et MFM_DISK
- Lecture/ecriture SEDORIC : repertoire, extraction, ajout, suppression
- Creation d'images DSK vierges et bootables
- Formatage DSK avec SEDORIC
Outils BASIC
- Tokeniseur base sur la table de tokens machine
- Renumerotation avec mise a jour GOTO/GOSUB/THEN/ON/RESTORE
- Numerotation automatique des lignes
- Rechercher/remplacer regex dans les sources
- Templates de code (6 modeles ASM et BASIC)
Documentation integree
- Reference CPU consultable (jeu instructions, registres, opcodes)
- Reference BASIC complete (tokens par categorie)
- Documentation registres VIA/PSG
- Carte memoire interactive
- 5 tutoriels : BASIC, ASM, compilateur, charset, projet