dans le navigateur

L'image Xerox PARC d'origine (version 2, 1er avril 1983), telle qu'elle a été livrée sur bande aux premiers licenciés, exécutée par une machine virtuelle écrite d'après le livre bleu et compilée en WebAssembly.

Chargement…

Comment ça marche

La souris à trois boutons

Smalltalk-80 attend une souris à trois boutons : rouge (sélection), jaune (menu de la fenêtre : do it, print it, accept…) et bleu (menu du cadre : close, frame, collapse…).

Bouton gaucherouge
Bouton droit, ou Ctrl+gauchejaune
Bouton du milieu, ou Alt/⌥+gauchebleu

Le fond gris est le bureau : un clic jaune dessus ouvre le menu système (browser, workspace, transcript, save, quit…). Pour ouvrir une fenêtre, on choisit l'entrée du menu puis on dessine son cadre : clic rouge pour le coin haut-gauche, clic rouge pour le coin bas-droit.

Votre clavier

Cliquez d'abord dans l'écran pour lui donner le focus. Les caractères sont saisis selon votre disposition de clavier. Deux signes ont une forme particulière dans la police de 1983 : _ s'affiche en flèche gauche ← (affectation) et ^ en flèche haut ↑ (retour).

Essayez, dans un workspace : tapez 3 + 4, sélectionnez-le, puis bouton jaune → print it. Ou Smalltalk browseAllImplementorsOf: #at:put: puis do it.

Les touches Ctrl, Retour arrière, Suppr, Tab, Échap et Entrée sont transmises telles quelles ; Ctrl+T vaut ifTrue:, Ctrl+F ifFalse:, comme sur l'Alto.

Sous le capot

L'image VirtualImage (596 128 octets) est celle que Mario Wolczko a reçue de Xerox en 1984 sur bande ½ pouce pour son projet de maîtrise à Manchester, et qu'il a mise en ligne ; elle est convertie en petit-boutiste, comme le préconise le guide de portage de Xerox. La machine virtuelle est l'implémentation « by the Bluebook » de Dan Banay (C++, MIT) : interpréteur de bytecodes, mémoire d'objets à comptage de références, BitBlt, le tout tel que décrit dans Smalltalk-80: The Language and its Implementation. Elle est compilée en WebAssembly avec Emscripten et affichée par SDL2 dans le canevas.

L'image d'origine ne sait lire que le système de fichiers de l'Alto : dans le browser, le code est donc décompilé (pas de commentaires ni de noms de temporaires). La seconde image ajoute les classes PosixFile de Dan Banay et le fichier Smalltalk-80.sources : on y lit les vraies sources. Les fichiers vivent en mémoire : un save y écrit l'instantané, que le bouton « Télécharger l'image » récupère.