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