URL: https://linuxfr.org/users/gtof/journaux/alpha-une-machine-beta-avec-ecran Title: Alpha: une machine bêta avec écran. Authors: GTof Date: 2013年02月25日T20:46:52+01:00 License: CC By-SA Tags: machine_virtuelle et machine_abstraite Score: 57 Cher Nal, Ce semestre j'enseigne avec joie et entrain l'assembleur. Pas en x86 ou une de ses variantes mais sur une machine abstraite nommée [béta](http://6004.mit.edu/currentsemester/handouts/beta.pdf) développée dans le cadre du cours [Computation Structures](http://6004.mit.edu) au MIT. Elle a comme avantage d'être simple et de disposer d'un assembleur/simulateur de bonne qualité: [BSim](http://6004.mit.edu/currentsemester/handouts/bsim.pdf). Ce dernier fait visiblement le bonheur des adeptes d'architecture, mais dans le cadre d'un cours d'assembleur, c'est une autre histoire. Il souffre en effet de quelques limitations gênantes. La principale étant le manque d'interaction entre le programme simulé et l'utilisateur. Mis à part son affiche de la mémoire et des registres, il n'émule qu'un terminal que de quelques lignes ne supportant que getchar et putchar. De surcroit, il est closed-source. Pour proposer à mes étudiants autre chose que du "oh regardez, l'octet à l'adresse 1234 vaut maintenant 0x42!", j'ai entrepris le développement d'une machine virtuelle permettant un affichage graphique un peu plus riche. L'objectif est de pouvoir faire tourner des petits jeux style Space Invaders dessus. Je l'ai donc dotée d'un écran supportant un mode texte en 80x30 et un mode graphique, manipulables via une mémoire vidéo. Elle est 100% compatible avec les specifications de bêta, mais ce n'est qu'une machine virtuelle et pas un assembleur: BSim est toujours nécessaire pour générer le binaire. Elle est écrite en scala, tourne sur la jvm et a été testée sur openjdk-6 et 7, sur Arch GNU/Linux, Mac OSX et Windows 7. Bien entendu, le code est placé sous une licence libre (GPLv3+). Pour ceux que ca intéresserait, code, documentation, exemples et binaire sont [ici](http://calves.me/christophe/wiki/index.php?title=Alpha). Dans l'espoir que ce soit utile a quelqu'un.

AltStyle によって変換されたページ (->オリジナル) /