Un emulatore web accurato dell'Olivetti ELEA 9003, il primo computer transistorizzato italiano (1959).
- Emulazione accurata: CPU, memoria character-addressable, I/O virtuale
- Assembler integrato: Scrivi programmi in linguaggio assembly ELEA-like
- UI retro-console: Interfaccia ispirata ai terminali degli anni '60
- Hardware Panel: Pannello hardware vintage con luci, nixie tubes e interruttori
- Sound Effects: Suoni autentici anni '60 (relay, teleprinter, motori)
- π Help Integrato: Riferimento completo alle istruzioni assembly con ricerca
- π Tutorial Interattivo: 6 lezioni progressive per imparare la programmazione ELEA
- π Documentazione: Changelog, manuali storici Olivetti, guide architetturali
- Time Travel: Sistema di snapshot per debug step-by-step
- Temi Multipli: 4 modalitΓ colore (originale arancione, ambra, verde, bianco)
- Screenshot & Share: Cattura lo stato della macchina e condividilo
- Test automatici: Suite completa di test per verificare l'accuratezza
- 100% browser: Nessun backend, tutto offline
# Installa dipendenze
npm install
# Avvia dev server
npm run dev
# Build per produzione
npm run build
# Esegui test
npm test; Hello World per ELEA 9003
ORG 0 ; Indirizzo iniziale
START: PRINT MSG 11 ; Stampa messaggio
HALT ; Ferma esecuzione
MSG: DC "HELLO WORLD"- Console Tab: Output del teleprinter
- Memory Tab: Visualizza/ispeziona memoria
- Assembler Tab: Editor + assembler + caricamento
- Modern UI / Hardware Panel: Toggle tra interfaccia moderna e pannello hardware vintage
Controlli:
βΆοΈ Run: Esecuzione continua- β―οΈ Step: Esegui singola istruzione
- βΈοΈ Pause: Metti in pausa
- π Reset: Resetta macchina
- πΎ Export/Import: Salva/carica stato
- π Sound: Abilita/disabilita effetti sonori
Attiva il pannello hardware per un'esperienza vintage autentica:
- Indicatori LED per stato macchina
- Display Nixie tubes per registri
- Interruttori fisici (virtuali)
- Misuratori analogici per CPU e memoria
- Estetica industriale anni '60
- Indirizzabile a carattere (non a word)
- Carattere = 6-bit + parity + word mark
- Dimensione default: 20,000 caratteri
- Registri: PC (Program Counter), ACC (Accumulatore)
- Flags: EQ, GT, LT, OV
- Istruzioni: 8 caratteri (formato: OP|ADDR|LEN)
- Teleprinter: Output virtuale tipo console
- Tape Reader: Input simulato
Suoni autentici generati via Web Audio API:
- Relay Click: Operazioni CPU
- Teleprinter: Stampa caratteri
- Motor Hum: Ronzio di fondo
- Startup/Halt: Power on/off
- Error Beep: Segnalazione errori
Sistema di help contestuale con:
- Riferimento completo a tutte le istruzioni assembly
- Ricerca per nome o descrizione
- Filtro per categoria (Trasferimento Dati, Aritmetica, Salti, I/O, Controllo)
- Esempi di codice per ogni istruzione
- Descrizione dei flag modificati
Tutorial passo-passo che copre:
- Concetti Base: Introduzione all'ELEA 9003
- Movimento Dati: LOAD, STORE, CLEAR
- Operazioni Aritmetiche: ADD, SUB, gestione overflow
- Salti e Confronti: COMP, BRANCH, salti condizionati
- Input/Output: PRINT, comunicazione con teleprinter
- Programmi Avanzati: Moltiplicazione, ricerca massimo, subroutine
Ogni lezione include:
- Spiegazioni dettagliate
- Codice di esempio
- Pulsante "Carica nell'editor" per provare subito
- Suggerimenti e best practice
- Changelog: Cronologia versioni e modifiche
- Manuali Originali: Link a risorse storiche e archivi Olivetti
- Architettura: Documentazione tecnica completa
- Set di Istruzioni: Riferimento dettagliato
# Tutti i test
npm test
# Test con UI
npm run test:ui
# Coverage
npm run test:coverageLOAD addr len- Carica da memoriaSTORE addr len- Salva in memoriaMOVE addr len- Copia memoriaCLEAR addr len- Azzera campo
ADD addr len- AddizioneSUB addr len- Sottrazione
COMP addr len- ConfrontaBRANCH addr- Salto incondizionatoBEQ/BNE/BGT/BLT addr- Salti condizionaliHALT- Ferma CPU
PRINT addr len- Stampa su teleprinter
Vedi docs/INSTRUCTION_SET.md per dettagli completi.
- Core emulator (CPU, Memory, I/O)
- Assembler completo
- UI moderna e hardware panel
- Sound effects autentici
- Test suite
- Documentazione
- Bug Fix (2025-12-21):
- β ACC Hardware Panel display ora mostra valori corretti
- β ASCII View funzionante nel Memory tab
- β PRINT numerico visualizza correttamente in modalitΓ Run
- β Tooltip esplicativo per Parity Errors
- β Editor Assembler sincronizzazione migliorata
- Multiply/Divide completi
- I/O da nastro
- Breakpoint condizionali
- Tutorial interattivo
- Libreria programmi storici
Contributi benvenuti! Aree di interesse:
- Accuratezza storica (set istruzioni, timing)
- Nuovi programmi demo
- Miglioramenti UI/UX
- Documentazione
MIT
Progetto realizzato come omaggio all'ingegneria italiana e all'ereditΓ di Adriano Olivetti.
"Il computer non Γ¨ una macchina intelligente che aiuta le persone stupide, anzi Γ¨ una macchina stupida che funziona solo nelle mani delle persone intelligenti." - Umberto Eco
Made with β€οΈ for preserving Italian computing history