FRANK Trasforma A 386 PC for Your RP2350 in una Macchina Retro Funzionante
FRANK ora porta A 386 PC for Your RP2350 su un microcontrollore, nonostante i requisiti di memoria e periferiche di un PC completo. Il progetto open source emula un processore i386, grafica VGA, archiviazione, input e vari dispositivi audio dell'epoca. Secondo i suoi sviluppatori, può avviare DOS, Windows 3.x, Windows 95 e Linux.
Il risultato mette in discussione la consueta separazione tra microcontrollori e computer general-purpose. Un RP2350 normalmente controlla hardware embedded con memoria limitata e senza un sistema operativo desktop. FRANK lo usa invece come base per un PC riconoscibile, completo di immagini disco e output video fisico.
Il confronto importante non è tra FRANK e un desktop moderno. È tra l'emulazione di sistema completa e i progetti retro più piccoli e specializzati già in esecuzione sui microcontrollori. I progetti precedenti ricreavano singole console o PC a 16 bit. FRANK estende questo approccio al contratto hardware più ampio richiesto dal software per PC a 32 bit.
A 386 PC for Your RP2350 Ricrea Molto Più della CPU
FRANK è importante perché emula una piattaforma PC utilizzabile, non solo un set di istruzioni Intel.
Il firmware FRANK 386 del progetto descrive un emulatore i386 con supporto parziale alle istruzioni i486 e i586. Un componente x87 opzionale emula l'unità in virgola mobile utilizzata da alcuni software più datati. Queste aggiunte ampliano la gamma di sistemi operativi e applicazioni che la macchina può tentare di eseguire.
L'emulazione della CPU è solo una parte del sistema. Il software per PC si aspetta anche controller di interrupt, timer, interfacce per tastiera, hardware video, dischi e dispositivi audio. FRANK deve riprodurre una quantità sufficiente di questi componenti affinché il software riconosca un computer compatibile IBM coerente.
L'attuale elenco di funzionalità include output VGA e HDMI a risoluzioni fino a 640 per 480 pixel. L'archiviazione proviene da una scheda SD contenente immagini di floppy, dischi rigidi o CD-ROM. Gli utenti possono collegare dispositivi PS/2 oppure tastiere e mouse USB, a seconda della configurazione del firmware.
Il supporto audio copre diversi standard di vari periodi della storia dei PC. L'elenco include altoparlante PC, AdLib OPL2, Sound Blaster 16, audio Tandy, Covox e Disney Sound Source. Questa ampiezza conta perché i giochi DOS spesso si rivolgevano direttamente a specifico hardware audio.
FRANK include inoltre un gestore dei dischi per cambiare supporti virtuali mentre l'emulatore è in esecuzione. Una schermata delle impostazioni controlla dimensione della memoria, generazione del processore, emulazione della virgola mobile, dispositivi audio, opzioni di input e impostazioni del clock hardware. Questi controlli rendono il sistema più simile a un PC retro configurabile che a una dimostrazione fissa.
L'emulatore può esporre da uno a otto megabyte di memoria guest. Raggiungere il limite superiore richiede otto megabyte di RAM pseudo-statica esterna, generalmente chiamata PSRAM. La PSRAM è memoria dinamica esterna presentata attraverso un'interfaccia più semplice, adatta ai progetti embedded.
Questo requisito crea una distinzione importante. Una scheda Pico 2 standard include 520KB di SRAM integrata, ma non fornisce otto megabyte di PSRAM. Costruire la macchina completa richiede quindi una scheda RP2350 compatibile con memoria aggiuntiva e adeguate connessioni per display, archiviazione e input.
L'elenco dell'hardware supportato riflette questa realtà. FRANK è destinato alla propria scheda, alle varianti Murmulator, a Olimex PICO-PC e a Waveshare RP2350-PiZero. Quattro layout GPIO tengono conto dei diversi modi in cui queste schede collegano video, archiviazione, tastiere, controller e audio.
Non si tratta di un'immagine firmware universale per qualsiasi Pico 2 non modificato. È un emulatore progettato attorno a una famiglia di computer RP2350 predisposti. La distinzione mantiene il risultato impressionante senza nascondere l'hardware necessario per riprodurlo.
Il progetto si basa anche su file BIOS e immagini disco del sistema operativo memorizzati sulla scheda SD. Gli utenti devono fornire software che hanno il diritto di utilizzare. FRANK fornisce la macchina virtuale, ma non elimina le questioni di licenza legate a sistemi operativi e giochi commerciali.
Soprattutto, il progetto unisce questi componenti in un unico ambiente avviabile. Un microcontrollore può ora presentare al vecchio software le interfacce che si aspetta da un PC fisico. Questa integrazione crea la tensione centrale: se la flessibilità possa compensare severi limiti di risorse.
Perché l'RP2350 Può Sostenere un Modello PC Completo
L'RP2350 riesce in questo compito perché I/O prevedibile e controllo software contano quanto la velocità pura del processore.
La specifica RP2350 di Raspberry Pi elenca due core Arm Cortex-M33 o due core Hazard3 RISC-V fino a 150MHz. Il chip contiene 520KB di SRAM e supporta il funzionamento USB host e device. Fornisce inoltre dodici macchine a stati di I/O programmabile.
L'I/O programmabile, solitamente abbreviato in PIO, consiste in piccoli motori hardware che eseguono brevi programmi per spostare dati attraverso i pin. Questi motori gestiscono segnali con tempistiche rigorose senza costringere i processori principali a controllare ogni transizione. Questo design aiuta un sistema embedded a generare video o comunicare con periferiche insolite.
FRANK necessita di questo tipo di controllo. L'output VGA richiede un flusso costante di dati temporizzati per pixel e sincronizzazione. L'accesso alla scheda SD, l'input da tastiera, la gestione del mouse, i controller di gioco e l'audio competono per tempo di elaborazione e pin.
Un computer convenzionale delega molte di queste attività a hardware dedicato. Un progetto basato su microcontrollore deve distribuirle tra software, periferiche fisse, DMA e I/O programmabile. Il DMA, ovvero direct memory access, sposta dati senza costringere la CPU a copiare ogni singola unità.
L'RP2350 contiene tre blocchi PIO, ciascuno con quattro macchine a stati. La documentazione PIO di Raspberry Pi afferma che queste macchine a stati privilegiano tempistiche deterministiche e una stretta integrazione con GPIO e DMA. FRANK può sfruttare queste caratteristiche per mantenere le interfacce esterne mentre i suoi core principali eseguono l'emulatore.
Il progetto non rimane entro il target operativo pubblicato di 150MHz del chip. La sua configurazione di build offre impostazioni di clock RP2350 di 378MHz o 504MHz. Consente inoltre alla PSRAM esterna di operare a 133MHz o 166MHz.
Queste impostazioni rappresentano un overclock sostanziale. L'overclock esegue un componente oltre la sua frequenza operativa documentata, aumentando potenzialmente le prestazioni ma riducendo i margini di temporizzazione, tensione e temperatura. Un'impostazione che funziona su una scheda può comportarsi diversamente su un'altra.
La build predefinita dell'emulatore usa un'impostazione CPU di 378MHz e una PSRAM di 133MHz. Una build personalizzata può selezionare 504MHz e memoria esterna più veloce. Le impostazioni runtime possono inoltre modificare le frequenze del processore e della memoria prima di un riavvio.
Questo meccanismo spiega perché FRANK è più di una semplice conseguenza del silicio più recente. Gli sviluppatori combinano un core emulatore efficiente, impostazioni di clock aggressive, memoria esterna e periferiche assegnate con cura. Ogni elemento copre una limitazione lasciata dagli altri.
La PSRAM esterna fornisce la capacità richiesta dal software PC a 32 bit, ma ha costi di accesso superiori rispetto alla SRAM integrata. L'overclock offre all'interprete più cicli, ma tali cicli non possono eliminare ogni ritardo di memoria. Il PIO riduce la pressione sull'I/O, ma non esegue istruzioni x86.
Il carico di lavoro dipende quindi dall'orchestrazione. La generazione video deve restare stabile mentre viene eseguito il codice guest. Le operazioni disco non possono compromettere dispositivi sensibili alle tempistiche. L'emulazione audio deve produrre campioni regolari senza affamare il processore emulato.
Questa orchestrazione è anche il motivo per cui le schede basate su RP2350 attirano gli sviluppatori di emulatori. Il chip offre accesso diretto al comportamento hardware di basso livello senza richiedere un sistema operativo desktop sottostante. Gli sviluppatori possono controllare quasi ogni livello tra il software guest e i pin.
Un computer Linux completo potrebbe eseguire un emulatore maturo con molte più risorse. Tuttavia, introdurrebbe anche uno stack software più grande, un maggiore uso della memoria e un controllo meno diretto delle tempistiche. FRANK esplora la strada opposta: un host piccolo che ricrea una macchina storica più grande attraverso risorse strettamente gestite.
FRANK Estende la Strada di Tiny386 Oltre il Suo Host Originale
La sfida principale del progetto contrappone l'ambizione di un sistema completo agli emulatori più ristretti che normalmente trovano posto sui microcontrollori.
FRANK si basa sul core Tiny386 di Chunhui He, un emulatore originariamente associato a hardware della classe ESP32. Tiny386 implementa i principali meccanismi di esecuzione x86 in codice C compatto. Integra inoltre concetti relativi alle periferiche derivati da progetti consolidati.
Gli sviluppatori di FRANK, Mikhail Matveev e DnCraptor, hanno portato questa base sull'RP2350. Il loro repository accredita Tiny386 per il processore i386 e l'emulazione delle principali periferiche PC. Identifica inoltre diversi progetti che hanno contribuito con idee di piattaforma o implementazioni di componenti.
Uno di questi predecessori è l'emulatore Pico-286. Pico-286 è destinato a software per 8086, 8088, 80186 e 286 su hardware RP2040 e RP2350. La sua presenza ha dimostrato che un microcontrollore della classe Pico poteva ospitare un utile ambiente PC delle prime generazioni.
Il passaggio da un modello 286 a un modello i386 è significativo. L'i386 ha introdotto un modello di programmazione a 32 bit e funzionalità di paging associate a sistemi operativi più esigenti. Il software basato su queste capacità si aspetta una macchina più ampia e complessa.
FRANK non si ferma al comportamento strettamente i386. Istruzioni parziali successive gli consentono di raggiungere software che altrimenti rifiuterebbe il processore più vecchio. Si tratta di una scelta pratica di compatibilità, anche se rende la macchina meno simile a una riproduzione precisa di un singolo PC storico.
Lo stesso approccio pratico emerge nell'insieme delle periferiche. Un computer reale non combinerebbe normalmente tutti i dispositivi audio elencati contemporaneamente. Un emulatore può esporre modelli hardware selezionabili perché la compatibilità conta più della riproduzione di una configurazione di fabbrica.
Questo colloca FRANK su un ramo diverso dall'emulazione di console. Una console offre un obiettivo hardware perlopiù fisso e una libreria software controllata. Un PC deve accettare sistemi operativi, driver, interazioni BIOS, layout di archiviazione e applicazioni scritte per molte configurazioni.
Questa apertura aumenta sia l'attrattiva sia la difficoltà. Gli utenti possono installare software di produttività familiare, giochi, utility o sistemi operativi. Tuttavia, ogni programma può toccare un angolo diverso del modello hardware e rivelare un altro comportamento mancante.
L'eredità di FRANK mostra anche come i progetti open source di emulatori accumulino capacità. Tiny386 contribuisce con il modello di esecuzione centrale. Pico-286 contribuisce con concetti di integrazione RP2350 e idee per la gestione dei dischi. Componenti derivati da QEMU aiutano a rappresentare le classiche periferiche PC.
SeaBIOS fornisce fondamenta BIOS open source, mentre FatFs gestisce l'accesso allo storage formattato FAT. Altro codice supporta sintesi audio, file di configurazione e input specifico delle schede. Il risultato è meno una singola invenzione isolata che un attento assemblaggio di lavoro riutilizzabile sui sistemi.
Questo modello contrasta con la progettazione di un computer retro personalizzato attorno a un processore più semplice. Una macchina personalizzata può definire solo le funzionalità che il suo creatore desidera. FRANK accetta il bersaglio di compatibilità molto più difficile stabilito da decenni di software per PC.
La scelta mette sotto pressione altri progetti retro basati su microcontrollori. Gli utenti si aspettano sempre più che il firmware offra menu curati, supporti rimovibili, molteplici metodi di input e audio. Una dimostrazione tecnica che arriva solo a un prompt dei comandi ora compete con progetti che sembrano prodotti completi.
FRANK alza queste aspettative pur restando un progetto di ingegneria. Il suo repository include script di compilazione e configurazioni per le schede, ma l'installazione richiede comunque hardware compatibile e supporti di archiviazione preparati. Il pubblico di riferimento resta a proprio agio con firmware, cablaggi e immagini disco.
Questo vincolo non riduce l'importanza del progetto. Identifica l'attuale confine tra un computer hobbistico riproducibile e un dispositivo di consumo. Superare quel confine richiederà packaging migliore, immagini testate e prestazioni documentate sui software più diffusi.
Il limite più rigido è la coerenza delle prestazioni, non le schermate di avvio
L'avvio di Windows o Linux dimostra la compatibilità, ma non la velocità, la precisione o l'affidabilità nell'uso quotidiano.
Il repository afferma che FRANK avvia DOS, Windows 3.x, Windows 95, Linux e altri sistemi. È un'utile dichiarazione di compatibilità. Non fornisce benchmark standardizzati per tempo di avvio, prestazioni delle applicazioni, frame rate o throughput del processore emulato.
Questa lacuna conta perché le prestazioni dell'emulazione cambiano con ogni carico di lavoro. Un editor di testo può trascorrere lunghi periodi in attesa dell'input. Un gioco può sollecitare continuamente CPU, grafica, timer, audio e archiviazione.
Il raggiungimento del desktop da parte di un sistema operativo verifica inoltre comportamenti diversi rispetto all'uso prolungato delle applicazioni. I programmi di installazione possono richiedere controlli della memoria, transizioni alla modalità protetta e accessi al disco insoliti. Le note di risoluzione dei problemi di FRANK documentano già adattamenti specifici per la configurazione e l'avvio di Windows 95.
Per esempio, la documentazione consiglia di aggirare un controllo della memoria durante la configurazione quando l'installer segnala che non è disponibile memoria. Indica inoltre gli utenti verso una patch separata per un errore di protezione di Windows. Queste soluzioni alternative indicano progressi utili, pur mostrando che la compatibilità resta condizionata.
Il limite di otto megabyte per il sistema guest impone un'altra frontiera. Tale capacità è generosa per molti programmi DOS e le prime applicazioni Windows. Resta però limitata per software Windows 95 più recenti o configurazioni Linux più ambiziose.
La capacità di memoria è solo una parte del problema. L'emulatore traduce o interpreta ripetutamente le istruzioni guest usando un processore con un'architettura diversa. Deve inoltre rappresentare dispositivi le cui assunzioni temporali si sono formate attorno a bus fisici e controller dedicati.
Alcuni programmi più vecchi si sincronizzano intenzionalmente con il comportamento esatto del video o del processore. Demo e giochi possono dipendere da effetti temporali non documentati. Un modello hardware funzionalmente corretto può comunque produrre errori visivi o un ritmo errato quando tali assunzioni vengono violate.
L'audio aggiunge un'altra sensibilità. Il software Sound Blaster può dipendere dalla temporizzazione degli interrupt, dal comportamento del DMA e dai programmi di riempimento dei buffer. Un breve ritardo che passa inosservato in un foglio di calcolo può diventare un clic udibile o un gioco bloccato.
La discussione della community collegata si è concentrata rapidamente su questa incertezza. I commentatori hanno elogiato l'ampiezza della macchina, ma hanno ripetutamente chiesto delle prestazioni. Altri hanno osservato che il software dipendente dalla temporizzazione è sempre stato difficile per macchine virtuali ed emulatori.
Questi commenti sono reazioni, non test controllati. Tuttavia, individuano la giusta domanda scettica. Un lungo elenco di compatibilità diventa più utile quando ogni voce include versioni testate, impostazioni di configurazione, velocità osservata e difetti noti.
L'overclock complica queste evidenze. I risultati ottenuti a 504MHz non rappresentano necessariamente tutte le schede RP2350. La stabilità può dipendere dalle variazioni del silicio, dalla qualità dell'alimentazione, dal raffreddamento, dal layout della scheda e dalla PSRAM esterna.
Il supporto del progetto per quattro layout di scheda amplia l'accessibilità, ma espande anche la matrice di test. I percorsi HDMI e VGA possono consumare risorse diverse. L'input USB disabilita la console seriale USB in una configurazione, modificando il modo in cui gli utenti possono diagnosticare i guasti.
Una lettura prudente separa quindi tre affermazioni. FRANK implementa chiaramente i componenti necessari per tentare un ambiente PC completo. Gli sviluppatori riferiscono che diversi sistemi operativi si avviano. Affermazioni più ampie su velocità e compatibilità richiedono ancora misurazioni ripetibili.
Una suite di benchmark utile coprirebbe più di una singola applicazione di richiamo. Potrebbe misurare un benchmark CPU DOS, il throughput dello storage, la velocità di aggiornamento VGA, la stabilità audio e il tempo di avvio del sistema operativo. Ogni risultato dovrebbe identificare la scheda, il clock, l'impostazione PSRAM, la modalità di visualizzazione e la versione del firmware.
I test di accuratezza aggiungerebbero un'altra dimensione. Le suite di istruzioni possono verificare flag, eccezioni e comportamento della modalità protetta. I test hardware possono esaminare l'ordinamento degli interrupt, la risoluzione dei timer, i registri VGA e la comunicazione con la scheda audio.
Questi test non ridurrebbero il fascino del progetto. Renderebbero più facile confrontarne e riprodurne il risultato. Aiuterebbero inoltre gli sviluppatori a decidere se un guasto provenga dall'emulatore, dal software guest o da un overclock instabile.
Finché tali evidenze non emergeranno, Un PC 386 per il tuo RP2350 dovrebbe essere considerato un porting insolitamente completo e promettente. Non è ancora un sostituto misurato degli emulatori desktop maturi o dell'hardware originale.
L'emulazione su microcontrollore sta diventando una categoria di piattaforma
FRANK mostra che i microcontrollori flessibili ora supportano progetti di sistema un tempo riservati ai processori applicativi.
L'RP2350 ha già attirato porting di emulatori per console, generatori video, sintetizzatori e primi ambienti PC. Questi progetti condividono una strategia: combinare due core general-purpose con I/O programmabile, DMA, memoria esterna e accesso diretto all'hardware.
Un microcontrollore differisce da un processore applicativo presente in un desktop o in un computer Linux a scheda singola. Normalmente esegue una sola immagine firmware senza memoria virtuale né un sistema operativo host general-purpose. Questo ambiente più semplice offre agli sviluppatori un controllo prevedibile, ma meno risorse.
Gli autori di emulatori possono sfruttare questa prevedibilità. Un core può concentrarsi sull'esecuzione guest mentre l'altro gestisce video, audio o archiviazione. Le macchine a stati hardware possono mantenere segnali esterni anche quando i processori affrontano un carico di lavoro costoso.
Questa divisione è particolarmente preziosa per i sistemi retro. Display e dispositivi di input più vecchi necessitano spesso di una temporizzazione regolare più che di un'enorme larghezza di banda. Anche i loro processori originali erano molto più lenti degli attuali core per microcontrollori, lasciando spazio all'interpretazione software.
L'i386 spinge questa formula più avanti di una console a 8 bit. Introduce la modalità protetta, indirizzi più ampi, istruzioni complesse e un'ampia raccolta di periferiche PC. Il successo di FRANK suggerisce che il limite dipende ora dalla progettazione dell'intero sistema più che da una singola frequenza di clock di richiamo.
Il progetto cambia anche l'aspetto che può avere un computer retro. Una ricreazione tradizionale usa chip originali, FPGA o una scheda Linux. Una soluzione RP2350 occupa una posizione intermedia tra questi approcci.
I componenti originali offrono un comportamento storico, ma possono essere rari e difficili da integrare. I progetti FPGA riproducono direttamente la logica digitale, spesso con solide caratteristiche di temporizzazione. I sistemi Linux offrono emulatori maturi e risorse abbondanti, ma nascondono la macchina sotto un computer più grande.
Un emulatore su microcontrollore resta piccolo e ispezionabile. Gli sviluppatori possono tracciare il firmware, assegnare singoli pin e capire come ogni periferica raggiunge il guest. Il compromesso è che il software deve svolgere più lavoro entro un ristretto budget di prestazioni.
Questo compromesso rende tali progetti utili oltre la nostalgia. Dimostrano pianificazione, gestione della memoria, implementazione dei protocolli e I/O in tempo reale sotto pressione. Uno sviluppatore può studiare come un sistema complesso venga ridotto senza diventare irriconoscibile.
FRANK illustra anche il valore delle implementazioni C portabili. Un core emulatore compatto può spostarsi tra hardware ESP32 e RP2350 perché evita una profonda dipendenza da un singolo sistema operativo host. Livelli specifici per la scheda collegano poi il core a video, archiviazione e input.
La portabilità resta incompleta perché le tecniche di visualizzazione e I/O variano tra i chip. Il PIO dell'RP2350 non esiste su ogni microcontrollore. Anche le interfacce per la memoria esterna e il comportamento del DMA differiscono.
Tuttavia, il core riutilizzabile cambia l'economia della sperimentazione. Gli sviluppatori non devono ricostruire un interprete x86 prima di testare una nuova scheda. Possono concentrarsi sul posizionamento della memoria, sulla pianificazione delle periferiche e sull'accelerazione specifica dell'host.
La competizione risultante è produttiva. Pico-286 può ottimizzare per software PC più vecchio e requisiti inferiori. FRANK può puntare alla compatibilità a 32 bit. I progetti per console possono sacrificare la generalità per frame rate migliori e un comportamento hardware più preciso.
Nessuno di questi percorsi vince in ogni caso d'uso. La loro coesistenza mostra che l'emulazione su microcontrollore è diventata una categoria di piattaforma anziché una raccolta di trovate isolate. Schede condivise, formati firmware e modelli hardware possono sostenere diverse macchine ricreate.
Tre segnali mostreranno se FRANK diventerà più di una demo
La prossima fase dipende da prestazioni misurate, prove di compatibilità più ampie e una riproduzione più semplice sulle schede supportate.
Il primo segnale è un set di benchmark pubblicato. FRANK necessita di risultati che colleghino le prestazioni guest alla versione del firmware, al modello della scheda, al clock della CPU, alla velocità della PSRAM e alla modalità video. Numeri ripetibili mostrerebbero se il porting RP2350 supera costantemente i precedenti host Tiny386.
Un set di benchmark chiarirebbe anche il valore dei due target di overclock disponibili. Se l'impostazione più elevata produce guadagni sostanziali senza errori su diverse schede, l'argomento prestazionale del progetto diventa più forte. Crash frequenti o corruzione visiva lo indebolirebbero.
Il secondo segnale è un catalogo pubblico di compatibilità. Le schermate di avvio attirano l'attenzione, ma i test prolungati forniscono prove migliori. I rapporti dovrebbero coprire installazioni, applicazioni, giochi, modalità audio, formati disco e dispositivi di input.
Un catalogo utile distinguerebbe il software pienamente utilizzabile dai programmi che si limitano ad avviarsi. Dovrebbe registrare le patch richieste e le scelte di configurazione speciali. Queste informazioni trasformerebbero esperimenti utente sparsi in una risorsa tecnica.
Il terzo segnale è una distribuzione più semplice. Il firmware precompilato riduce già parte dell'onere, ma l'hardware specifico della scheda e la preparazione dello storage restano significativi. Guide di cablaggio chiare, combinazioni di accessori convalidate ed esempi di configurazione versionati renderebbero i risultati più facili da riprodurre.
I miglioramenti nella distribuzione rivelerebbero inoltre se il progetto può supportare i nuovi arrivati senza sovraccaricare i suoi manutentori. Un backlog crescente di issue su cablaggio e configurazione del disco indicherebbe problemi di packaging. Contributi che aggiungono schede, test o documentazione indicherebbero una piattaforma più sana.
Questi segnali contano più di un altro insolito obiettivo di avvio. FRANK ha già mostrato che un RP2350 può ospitare la struttura di un PC a 32 bit. La domanda rimanente è se molti utenti possano riprodurre la stessa macchina e ottenere un comportamento comparabile.
Gli sviluppatori dovrebbero osservare le release del repository, i rapporti di compatibilità e i contributi ai benchmark. Gli appassionati di retrocomputing dovrebbero confrontare tali risultati con Pico-286, emulatori desktop e hardware originale prima di scegliere una piattaforma. I progettisti di schede dovrebbero osservare quali disposizioni della memoria e del video producono il minor numero di compromessi.
Un PC 386 per il tuo RP2350 è convincente perché i suoi limiti restano visibili. Ogni megabyte, ciclo di clock e percorso I/O deve giustificarsi. Questa pressione rende il progetto una dimostrazione insolitamente chiara di come funziona l'emulazione.
Provate il progetto solo con hardware compatibile, impostazioni del firmware documentate e software che potete usare legalmente. Poi non limitatevi a verificare se appare il desktop. Misurate cosa funziona, come si comporta e quale configurazione ha reso possibile il risultato.



