Amis informaticiens de la « belle époque » – celle des « vrais » PC au clavier aussi lourd qu’une unité centrale actuelle, équipés d’une prise pour brancher le lecteur de K7 destiné aux sauvegardes… – sortez vos mouchoirs !
Ils l’ont fait : Un émulateur de PC qui tourne sur notre framboise314. Allez, on ressort les disquettes 5 pouces 1/4, et on démarre sous MS-DOS, et après on se fait une partie de Flight Simulator !
Au sommaire :
Présentation de l’émulateur 8086tiny
Adrian CABLE a gagné le concours IOCCC 2013 (The International Obfuscated C Code Contest = Concours international de code C obfusqué) qui consiste à écrire des logiciels en utilisant le moins de caractères possibles.
Son 8086tiny a remporté un franc succès avec ses 4043 octets de C qui sont « seulement » capables d’émuler (excusez du peu) un compatible IBM PC du milieu des années 1980 comprenant :
- CPU Intel 8086/186
- 1 Mo de RAM
- Contrôleur de disquette 3.5 » (1.44MB/720KB) 8072A
- Contrôleur de disque dur (prend en charge un seul disque dur 528MB)
- Carte graphique Hercules 720×348 graphiques en 2 couleurs (64 Ko de RAM vidéo), et CGA 80×25 16 couleurs avec support du mode texte
- Timer programmable 8253 (PIT)
- Contrôleur d’interruption programmable 8259 (PIC)
- Contrôleur de clavier XT 83 touches 8042
- Horloge temps réel MC146818 (RTC)
- Haut-parleur du PC
L’émulateur utilise la bibliothèque graphique SDL pour la portabilité, et se compile sur Windows, Mac OS X, Linux et probablement sur la plupart des autres systèmes 32-bit/64-bit également.
Adrian a déclaré à raspberrypi.org :
« L’ordinateur personnel tel que nous le connaissons aujourd’hui est apparu dans les années 80 avec la sortie de l’IBM PC – une machine incroyablement complexe pour l’époque, et le résultat de centaines de milliers d’heures-homme de temps de développement, pour un coût de centaines de millions de dollars .
Trente ans plus tard , je me suis posé la question de savoir comment on pourrait rédiger n petit logiciel émulant ce PC et hautement portable, complet et suffisamment précis pour simuler non seulement le processeur Intel 8086, mais également assez de matériel périphérique pour exécuter des logiciels comme Windows, AutoCAD, Lotus 1-2-3 et les jeux PC classiques de l’époque. La réponse : 4043 octets de code source C très condensé, qui ont remporté le Concours International 2013 du Code C obfusqué.
Après le concours, une forte demande a conduit à la libération de 8086tiny, une distribution entièrement documentée et commentée du code d’origine, y compris le code source complet du BIOS. 8086tiny, lorsqu’il est installé sur un Raspberry Pi à 30€, met à votre disposition le plus petit , mais aussi le moins cher PC du monde.
Phénomène unique pour les émulateurs de PC, 8086tiny est publié sous la licence open source la plus libre possible, la licence MIT, qui permet l’utilisation ou la redistribution à des fins commerciales ou non commerciales, sans aucune restriction. J’encourage tout le monde à utiliser 8086tiny comme point de départ pour des projets d’émulation » .
Installer 8086tiny
8086tiny fait maintenant partie du dépôt Raspbian et peut être installé en utilisant apt-get et il est livré avec un disque dur DOS déjà installé. D’autres instructions sur l’installation et l’utilisation peuvent être trouvés sur les forums. Vous pourrez par exemple vous replonger avec délices dans Word Perfect 5.1! (prenez un mouchoir, vous avez une larme qui coule…)
Philosophie de 8086tiny
La philosophie de 8086tiny est de garder le code de base aussi petit que possible, et à travers la licence open source et la mise à disposition sur GitHub d’encourager les développeurs individuels à le modifier et à l’étendre selon leurs besoins spécifiques, l’ajout du support, par exemple, pour les jeux d’instructions plus complexes (Pentium) ou des périphériques (souris). Toutes les questions, commentaires ou suggestions sont les bienvenues dans le forum 8086tiny.
Le futur
8086tiny est en plein développement et on peut s’attendre à d’autres avancées. Voici quelques copies d’écran pour montrer le potentiel de ce « petit » émulateur qui devrait aller loin.
Conclusion
Nostalgie quand tu nous tiens… Je n’ai pas pu tester longuement cet émulateur mais ça fera certainement l’objet d’un futur article. 8086tiny est un logiciel en pleine évolution qui devrait apporter la possibilité d’émuler des PC sur le Raspberry. Pourquoi faire ? Il n’y a pas si longtemps (3 ans) j’ai réalisé le portage d’une vieille installation sur un PC récent (programmation d’automate programmable sous MS-DOS eh oui en maintenance il y en a encore) en installant une machine virtuelle faisant tourner MS-DOS… Alors pourquoi pas un Raspberry Pi ?
Vous pouvez ranger vos mouchoirs maintenant….
Ah oui, j’oubliais j’ai une question à poser :
C’est quand qu’il sort l’émulateur d’Apple II ?
Dernière minute
On apprend que Bill Gates quitte le conseil d’administration de Microsoft. Les mauvaises langues prétendent que c’est parce qu’il a vu un article affirmant qu’un ordinateur à 30€ est capable d’émuler le premier PC… Vous y croyez, vous?
– NOTA – Utilisation des photos de cette page autorisée sur sites non commerciaux, en mentionnant l’origine et avec un lien vers www.framboise314.fr. Photos (c) framboise314 – 02/2014.
Copies d’écran crédit : http://www.megalith.co.uk/8086tiny/
Excellent ! J’ai commencé sous Windows 3.1, je vais pouvoir tester son prédécesseur ^^
Même si j’utilise maintenant presque exclusivement Linux, je n’avais jamais vu Windows3!
Nice work, congrats 🙂