Le badge Supercon 2022 est un voyage portable à travers l’histoire de l’informatique

Depuis plusieurs années, la tendance est à la conception de badges événementiels électroniques toujours plus complexes et performants. Écrans couleur, capteurs, WiFi, USB, Bluetooth – vous l’appelez, et il y a probablement un badge con qui l’a emballé. Même notre propre Supercon 2019 a innové avec l’inclusion d’un FPGA Lattice LFE5U-45F exécutant un RISC -Noyau en V. Certes, observer cette course aux armements officieuse a été fascinant. Mais comme nous le savons tous, un hacker ne se définit pas par les outils à sa disposition, mais plutôt par l’habileté et l’imagination avec lesquelles il les manie.

Donc cette année, nous avons adopté une approche légèrement différente. Plutôt que d’essayer de bourrer le badge avec encore plus de matériel de pointe qu’en 2019, nous avons décidé de retourner au puits. Le badge Supercon 2022 est une leçon sur ce que signifie vraiment contrôler un élément matériel, savoir ce que fait chaque bit de mémoire et pourquoi. Ne vous méprenez pas, ça va être un défi. En fait, nous parions que la plupart des personnes qui mettront la main sur le badge le 4 novembre n’auront jamais travaillé sur quelque chose de semblable auparavant. Les gens vont sortir de leur zone de confort, mais bien sûr, c’est toute l’idée.

Un rétro-ordinateur virtuel

Ceux qui connaissent bien l’histoire de l’informatique de bureau trouveront probablement le devant du badge Supercon de cette année étrangement évocateur. Orné de boutons et de LED, il est conçu pour ressembler au panneau avant des premiers micro-ordinateurs tels que l’Altair 8800 et l’IMSAI 8080 rendu célèbre en Jeux de guerre.

Mais la ressemblance est plus que superficielle. Le badge ne fait pas que voir comme le panneau avant d’un premier microprocesseur, il l’est en fait. Eh bien, une simulation, au moins. Alors que le PIC24FJ256GA704 au dos du badge fait techniquement le show, l’utilisateur interagit avec un processeur virtuel 4 bits conçu par le légendaire Voja Antonic.

Les programmes peuvent être entrés dans l’ordinateur, petit à petit, à l’aide de la rangée de boutons tactiles situés à l’avant du badge. Chaque séquence de 12 bits, composée d’un opcode et d’un ou deux opérandes, est déposée à l’adresse mémoire indiquée par les LED du compteur de programme. Si vous faites une erreur (et vous le ferez), vous pouvez aller et venir dans le compteur de programme pour revoir et corriger les instructions données au CPU.

Pour vous aider, les 31 instructions acceptées par le CPU 4 bits du badge sont listées au dos de la carte. De plus, une fois que vous avez entré l’opcode binaire, une LED s’allumera à côté du mnémonique approprié sur le devant du badge. Bien que les notes sérigraphiées ne puissent pas être comparées à la documentation exceptionnelle que Voja a rassemblée, au moins vous aurez toujours une référence rapide.

La programmation est également facilitée par le fait que tous les opcodes ont une longueur comprise entre 4 et 8 bits. Alors qu’une machine comme l’Altair peut vous avoir demandé de déposer jusqu’à trois séquences binaires par instruction, les opcodes plus courts signifient qu’il reste toujours suffisamment d’espace pour entrer simultanément les opérandes requis.

Place à l’expansion

Fidèle aux premiers ordinateurs que le badge essaie d’imiter, il n’y a pas beaucoup de matériel embarqué. Isolément, tout ce que vous avez pour l’entrée sont les boutons physiques à l’avant du badge, et la sortie est limitée à ce que vous pouvez afficher à l’aide de la matrice de LED 8 × 16 qui fournit une fenêtre sur la mémoire du processeur. Un examen attentif de la documentation révèle qu’il existe un générateur de nombres pseudo-aléatoires sur lequel vous pouvez fouiller, mais ne vous attendez pas à plus de luxe que cela.

Mais ne vous inquiétez pas, nous ne vous laisserions pas sans un peu d’espace pour grandir. Comme on peut s’y attendre d’un badge d’événement électronique moderne, il y a un en-tête SAO (Simple Add-On) à 4 broches qui vous permet de brancher divers petits gadgets et do-dads. Les données I2C standard et les signaux d’horloge ont été remplacés par un simple UART dans ce cas, mais cela ne devrait pas rompre la compatibilité avec la plupart des modules complémentaires qui ne font guère plus que tirer l’alimentation du port de toute façon.

Il existe également un connecteur d’E/S dédié sous la forme d’un en-tête à pas standard à 12 broches le long du bord supérieur droit du badge. Cet en-tête partage les broches UART TX et RX avec le connecteur SAO, mais est capable de bien plus. D’une part, il sert d’interface ICSP (In Circuit Serial Programmer) du badge si vous souhaitez ou devez le reprogrammer. Mais plus intéressant encore, il offre quatre broches d’entrée et quatre broches de sortie accessibles dans vos programmes en lisant et en écrivant dans les registres de mémoire appropriés.

Partager c’est aimer

Le piratage de badges est une grande partie de l’expérience Supercon, et au cours de l’événement de trois jours, nous espérons voir toutes sortes de logiciels et de matériel intéressants développés pour cet ordinateur faux-rétro. Étant donné le temps relativement court dont vous disposerez, le travail d’équipe est fortement encouragé – n’hésitez pas à demander aux autres participants sur quoi ils travaillent pour voir si vous pouvez donner un coup de main.

Bien sûr, le développement collaboratif est un peu difficile si la seule façon de partager votre code est de griffonner du binaire sur des morceaux de papier. Alors que vous aurez notre respect éternel (et peut-être même gagnerez-vous un prix spécial) si vous parvenez à accomplir quelque chose de substantiel sur votre badge en utilisant uniquement les périphériques intégrés, nous ne sommes pas si méchants que nous le ferions Fabriquer tu fais comme ça.

Ainsi, les broches UART du port d’extension peuvent être utilisées pour télécharger un programme du badge vers votre ordinateur au moyen d’un adaptateur USB-série standard. Avec l’adaptateur déjà connecté, il vous suffit d’insérer le badge dans DIR mode (Direct) et appuyez sur la touche SAVE bouton.

Cela entraînera le badge à commencer immédiatement à cracher des données, vous devriez donc déjà avoir configuré votre côté récepteur et être prêt à partir avant d’appuyer sur le bouton. Sur une machine *nix, cela ressemblerait à ceci :

cat /dev/ttyUSB0 > out.hex

Si vous appuyez sur le LOAD bouton, le processus fonctionne en sens inverse. Un fichier hexadécimal envoyé depuis votre ordinateur sera chargé dans la mémoire du badge où il pourra être immédiatement exécuté. De cette façon, un programme entré manuellement dans un badge peut être rapidement sauvegardé et distribué à d’autres. Cela signifie également que si vous le formatiez correctement, vous pourriez écrire le code sur votre ordinateur et simplement l’envoyer au badge pour exécution…

Incidemment, alors que le badge ne peut avoir qu’un seul programme chargé à la fois, jusqu’à 15 peuvent être stockés sur le flash intégré. Ceci est accompli en tenant d’abord ALT et en utilisant le OPERAND Y pour faire défiler les emplacements de stockage disponibles, puis avec ALT toujours maintenu, en appuyant soit SAVE ou LOAD. Avec cette technique, vous pouvez garder vos propres programmes personnels stockés en toute sécurité pendant que vous expérimentez avec n’importe quel nouvel hexagone qui fait le tour.

Mettez la main sur un

Maintenant, la meilleure façon d’en obtenir un est de vous acheter un billet et de venir nous rejoindre à Supercon. Mais si vous ne pouvez pas venir, nous comprenons. Nous publierons bientôt les Gerbers, un émulateur de badge complet, et le code pour le PIC, alors restez à l’écoute.