Émulateurs en ligne avec assembleur intégré

85 views
Skip to first unread message

Laurent Caillette

unread,
Apr 2, 2019, 10:42:40 AM4/2/19
to tec...@googlegroups.com

Que je sois maudit ! Je n'ai pas la patience d'attendre vendredi 16h00 pour envoyer ces quelques liens qui pourraient nuire gravement à la productivité des vrais technocentrés ("geeks") de cette liste de diffusion. Encore que. Comme un homme averti en vaut deux, tu peux maintenant dédier la moitié de ton temps productif à l'exploration des émulateurs en ligne avec assembleur intégré. Aucune nouveauté là-dedans, mais ceux que j'ai trouvés sont vraiment trop adorables.


== assembler-simulator

[assembler-simulator]
est mon grand coup de cœur : 4 registres, un pointeur de pile et un pointeur d'instructions, une mémoire de 256 bits avec une zone de 20 octets pour une mini-console. Tout tient sur une seule page HTML et le débogueur est très clair. C'est l'outil pédagogique idéal pour montrer à quoi ressemble la programmation d'une machine de Von Neumann sans trop se faire mal non plus.

Par exemple un gars futé a écrit une [simulation de débordement de tampon dans la pile]
("stack smash"), fascinante à exécuter en pas-à-pas.

C'est un bon plat de résistance après une présentation du genre [How a CPU Works]
.


== YASP

[YASP]
a déjà eu les honneurs de cette liste. L'émulateur comprend un potentiomètre, deux boutons et des diodes électroluminescentes. Le débogueur supporte les points d'arrêt et historise les valeurs des registres.

Le point fort de YASP c'est qu'il supporte les interruptions générées par les périphériques d'entrée. Je n'ai jamais vu un prof d'informatique se risquer sur ce sujet alors que c'est juste la base de tous les trucs qui fonctionnent. Ils disaient toujours que c'était ou trop compliqué ou trop simple pour mériter une explication.


== Easy 6502

[Easy 6502]
est plus pauvre en fonctionnalités, mais il fournit de bons exemples très bien commentés, qui vont des différents modes d'adressage jusqu'au jeu du serpent.


== 8bitworkshop

[8bitworkshop]
est une collection d'émulateurs pour notamment l'`Atari 2600` et l'`Apple ][+` mais aussi d'autres plateformes moins connues comme le Verilog, le `VIC Dual`, le Williams, le `Midway 8080`. Certaines plateformes (dont l`Apple ][+`) sont programmables en C. Il y a une foule d'exemples passionnants.

Le blog de 8bitworkshop est complètement fou. Genre il file une référence à [PLASMA]
, un langage ciblant le processeur 6502 et intégrant un JIT.


(On laisse tomber l'interpréteur de Brainfuck et la Machine de Turing, ça pourrait nuire à la digestion.)

Henri Tremblay

unread,
Apr 7, 2019, 7:04:57 AM4/7/19
to tec...@googlegroups.com
Hihi, mignon tout ça.


--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "techos".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse techos+un...@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse tec...@googlegroups.com.
Visitez ce groupe à l'adresse https://groups.google.com/group/techos.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Laurent Caillette

unread,
Apr 7, 2019, 9:17:54 AM4/7/19
to tec...@googlegroups.com
Ha ha excellent ! Je découvre que Zachtronics a un catalogue complet de jeux de programmation variés, gratuits ou payants. Envoyer un lien pareil un dimanche en début d'après-midi c'est un coup bas, avoue que tu te venges sur ma promenade dominicale parce que tu as passé ta semaine à jouer avec l'émulateur de console Atari !

Le stade suivant, c'est un jeu de programmation sans ordinateur :
J'aime bien l'approche de l'auteur, qui voulait communiquer son goût pour la programmation sans coller ses mômes devant l'ordi. L'informatique c'est pour les couillons de clients !
Bon Robot Turtles s'adresse aux 3-8 ans donc c'est de la programmation très séquentielle, pas trop dure à valider par un humain. 

Évidemment c'est l'émulation de l'ordinateur qui rend difficile la notion de programmation sur un jeu de plateau. Mais si c'est difficile alors ça pourrait être le thème du jeu !

Disons qu'on a 2 rôles, les programmeurs et les interpréteurs. Les interpréteurs doivent appliquer la spécification du processeur. Les membres de l'équipe des interpréteurs sont en compétition : chacun essaye de fournir l'interprétation la plus exacte possible d'une instruction, et convaincre les autres de la justesse de son interprétation. Si tous les interpréteurs se trompent de la même façon le joueur qui se sent lésé peut jouer une carte "bug report". On peut aussi tirer des cartes en cours de jeu pour ajouter des éléments de spécification au processeur. Peut-être que ça serait sympa de constituer des équipes avec des paires programmeur-interpréteur, comme ça il y aurait moyen d'élaborer des vicieuseté pour qu'un programme fasse planter l'interpréteur de l'équipe adverse (l'exploitation des failles de sécurité ressemble d'ailleurs un peu à ça). 

C'est marrant, il y a peu de temps je me demandais pourquoi, vu les possibilités des imprimantes 3D on n'avait pas plus de jeux de plateau avec des éléments de construction. Mon ordinateur-jeu-de-plateau ferait en sorte que la plus grande partie de l'exécution demeure manuelle. Je pensais à ça en me disant qu'une carte "print stack trace" ça aurait de la gueule mais ça n'est pas réalisable facilement avec un jeu de cartes. Ça ne me dit pas comment dupliquer facilement l'ordre d'une série de pièces empilées dans un cadre mais l'idée de manipuler des bouts de plastique qui s'empilent et s'emboîtent ça peut être sympa. Ou alors le "print stack trace" bien casse-pieds à faire à la main tu te le prends comme un gage.

En gouglant un jeu de plateau qui simule un ordinateur je découvre avec stupeur les portes logiques à base de dominos. C'est marrant, bien que l'idée manque singulièrement de débouchés industriels.

Peut-être qu'un joli plateau, des cartes et des jetons ça suffit largement. D'ailleurs des cases pour les jetons et des fils de laine pour figurer les pointeurs ça peut être très joli. Quelqu'un a une idée pour un convertisseur binaire-hexadécimal purement mécanique ?

En attendant que prenne forme une telle merveille, je me permets de faire un peu de publicité pour Azul, le jeu de plateau :
Je l'ai offert à des amis, je n'ai pas eu l'occasion d'y jouer mais la grand-mère est enchantée des parties qu'elle fait avec sa petite-fille de 8 ans, qui adore le jeu et s'est mise toute seule à élaborer des stratégies. 
Caractéristiques principales : 2-4 joueurs. Durée d'une partie : 20-30 mn. Ce n'est pas un jeu compétitif. Le plateau est splendide.

Laurent Caillette

unread,
Apr 7, 2019, 2:57:12 PM4/7/19
to tec...@googlegroups.com
Je me suis demandé un moment à quoi rimait l'architecture bizarre des processeurs de TIS-100. Et puis je me suis dit : tiens mais c'est pas mal ce truc de parallélisme, ça pourrait peut-être servir en vrai. Puis j'ai compris que c'était ça un Transputer. 
Pour ceux qui n'ont pas peur du divulgâchis ("spoiler"), une présentation enthousiasmée :

Si on préfère des architectures moins exotiques il y a Shenzen I/O, un autre jeu de Zachtronics où l'on conçoit des circuits intégrés en Chine. On rêve que les outils de création de circuit professionnels aient une aussi belle gueule. Je recommande de jeter un coup d'œil au Tetris :

Henri Tremblay

unread,
Apr 7, 2019, 10:19:26 PM4/7/19
to tec...@googlegroups.com
Héhé. Je pense que j'ai été moins loin que toi à TIS-100. Pas eu le temps.

Robot Turtles, c'est génial. Je l'utilise avec mon fils et pour Devoxx4kids. En fait, pour les petits, on a réussi à avoir 0 écran. Robut Turtles, des souris programmable (https://www.amazon.ca/Learning-Resources-Robot-Coding-Activity/dp/B01A5YMCH4/ref=sr_1_6?keywords=learning+mouse&qid=1554689831&s=gateway&sr=8-6) et des ozobots.

L'ozobot est rigolo car tu peux la programmer avec des marqueurs de couleurs. En faisant un genre de code morse coloré.

On avait essayé Scratch junior mais c'est moins bien.
Reply all
Reply to author
Forward
0 new messages