QL-Könane, un jeu traditionnel pour Sinclair QL

Et c'est encore une participation aux « Retro Programmers United for Obscure Systems » cette fois à la découverte du Sinclair QL. Je ne connaissais pas du tout le Sinclair QL. Enfin si, de nom et de photo. Mais je n'en ai jamais vu en vrai et forcément jamais pianoté dessus, ni utilisé. C'était une découverte totale.

Un changement de classe de machine aussi. Jusqu'à maintenant, RPUfOS avait toujours sélectionné des machines 8 bits avec des capacités assez limitées. Ici, un processeur presque 16 bits, de la mémoire à foison et un support magnétique intégré. Le grand luxe !

Le jeu de Könane

Pour cette édition et sur cette machine complètement inconnue pour moi, avec aucune idée des performances atteignables, aucune idée des capacités graphiques, aucune idée du système... j'ai hésité entre une aventure graphique et un jeu de pion. Le temps passant, faire des illustrations à peu près potables (ou trouver un …

Lire la suite →

Récréation 3D, Tortue Jeulin - Les fichiers

En janvier 2020, j'avais publié une image d'un rendu de Tortue Jeulin T2 fait avec Blender. Cela m'avait servi dans le cadre d'une vidéo sur le langage de programmation Logo.

Il m'a été demandé une ou deux fois si je pouvais mettre le modèle à disposition, la dernière fois hier. Après y avoir un peu réfléchi, j'ai nettoyé les fichiers puis les ai exporté en FBX et en GLB pour les mettre à disposition sous licence CC-BY 4.0 (ce que cela signifie est dans le fichier README.md de l'archive).

Précisions :

  • ce modèle a été fait à partir de photographies pas toujours nettes, et de deux modèles légèrement différents. Le résultat est donc proche, mais ne correspond pas à une reproduction fidèle.
  • c'est un modèle pour du rendu offline, avec des modificateurs appliqués qui ont généré beaucoup de faces, particulièrement sur les câbles enroulés (à vue de nez, 40 …
Lire la suite →

Carré coloré, petit jeu en Forth, le début

Je lisais un de ces nombreux anciens livres présentant des petits jeux à recopier en BASIC : « Astounding Games for your Apple Computer ». Et de fil en aiguille, ou d'errance mentale, probablement parce que je développe un Forth sur Famicom, j'en suis arrivé à cette évidence : adapter au moins l'un de ces programmes en Forth.

Tous les jeux ne sont pas très bons dans ce livre, même si ce type de jeux m'amusait bien à l'époque, c'était probablement en grande partie par le côté découverte et émerveillement. La sélection fut donc rude, mais mon choix est finalement tombé sur « Rainbow Square Dance », page 32, présenté comme un Rubik's Cube à plat (une grille plutôt qu'un cube donc)

Le jeu

Sur une grille de 5 par 5 cases colorées, le but est de ramener l'état à un damier où chaque ligne est d'une seule couleur. Il est possible à chaque tour de …

Lire la suite →

Forth sur 6502, épisode 16

La création interactive

Forth n'est pas seulement un langage, c'est aussi (et avant tout ?) un environnement interactif de développement. Il est possible dans une session de compiler des mots additionnels au dictionnaire. Le mot principal pour opérer est :.

Par exemple :

: AJOUTE_2 2 +

Cela définit un mot qui ajoute 2 à la valeur au sommet de la pile.

100 AJOUTE_2 .

... affiche donc 102 à l'écran (le mot . affiche le contenu du sommet de la pile en tant que nombre).

Structure d'un mot

Il avait déjà été question de la structure d'un mot dans un Forth 8 bits classique lors de la partie 6 de ces articles. Ça remonte un peu. On peut aussi trouver des éléments dans la documentation de Pampuk Forth que j'avais écrite il y a un moment.

Rapidement, un mot est composé d'un NFA (longueur du nom et drapeaux, ainsi que le nom), d'un LFA (lien vers le …

Lire la suite →

Forth sur 6502, épisode 15

Le bout

Dans la partie 12 de cette série d'articles, j'annonçais m'attaquer à l'interprétation d'une ligne de Forth. Dans la partie 15... j'en vois le bout !

Forcément, avec la boucle QUIT, le mot INTERPRET forme le moteur de la partie interactive de Forth. Dans l'article précédent, j'avais énuméré tous les mots nécessaires à l'implémentation de NUMBER, élément manquant pour INTERPRET en mode d'interprétation (sans compilation). Et je terminais par si tout s'aligne parfaitement...

... quelques heures plus tard, en mettant au point NUMBER, je m'aperçois que je me suis trompé dans l'implémentation de DIGIT. Je n'avais pas écrit la signature en commentaire, codant de mémoire... et oubliant donc que la BASE qu'utilise DIGIT est un paramètre sur la pile, et non la variable directement. Ce fut vite corrigé.

J'ai aussi découvert que la chaîne du dictionnaire était cassée et que CFA était laissé de côté. Ce n'est pas la première fois …

Lire la suite →