Category: Ceomag

  • Initiation à Orix

    Qui travaille sur Orix

    Actuellement, Assinie et moi travaillons dessus. Des tests ont été fait pour faire tourner glOric. Il y a beaucoup de choses de faites, mais elles sont surtout en béta.

    Que permet Orix ?

    Orix est un ensemble de binaires/kernel qui permet de gérer un shell et des routines d’accès au hardware de la carte twilighte. L’objectif est de faire tourner tout ce qu’on veut sur l’oric quelques soit l’OS initial, ou le support (tap/dsk etc).

    Une première démo est sortie il y a en 2017. Cette démo était plus un proof of concept car beaucoup de choses étaient faites par bidouilles.

    Certaines ROM en plus du shell sont disponibles avec leur programme associé :

    • un basic 1.1 modifié pour charger des .tap à partir de la sdcard. Une version existe pour charger sur le port USB avec une clé USB. Il suffirait de charger cette ROM en ROM ou en RAM (car la twilighte board pourrait charger n’importe quelle ROM dans ses 64 banques.
    • le forth modifié pour accéder à la SDCARD, ce n’est ni plus ni moins que teleforth
    • Monitor est un moniteur qui est en réalité teleass en version light car il n’y a pas l’assembleur embarqué pour l’instant

    Quelques commandes linux/unix sont présentes :

    • ls : affiche la liste des fichiers
    • man : affiche la doc d’une commande
    • ./ : lancement d’une commande du répertoire courant
    • cp : copie un fichier
    • mv : déplace un fichier
    • env : permet de voir quelques variables d’environnement
    • sh : qui permet de lancer des script shell minimalistes
    • meminfo : affiche la quantité de mémoire disponible et la quantité de mémoire restante
    • lsmem : affiche l’occupation de la mémoire par les process
    • ps : affiche la liste des process
    • exec : permet de lancer des commandes
    • touch : créé un fichier

    Plusieurs binaires sont disponibles en plus des commandes type linux/unix qui sont propre à Orix

    • bank : affiche les banques disponibles et leur signature
    • help : affiche les commandes en bash et en ROM (avec un paramètre -b pour afficher les commandes de la banque passée en paramètre)
    • viewhrs : permet de voir des images en hires
    • bootfd : démarre le bootsector d’une disquette : ne fonctionne que sur telestrat.
    • twil : permet de piloter la carte twilighte (swap du jeu de banking, passage en SRAM ou en ROM sur les 4 dernières banques de 16KB chacune, affichage du firmware de la carte)
    • vidplay : affiche des vidéos en streamant à partir de la sdcard
    • gunzip : binaire pour décompresser
    • kernupd : pour mettre à jour la rom en direct sur atmos.

    Où en est on sur Orix ?

    Beaucoup de choses sont faites, mais il y a beaucoup de bugs. Tout le monde peut participer, le code est disponible sur github. Le hardware n’est pas ouvert, mais le code oui. Il est possible de faire des ROMs simplement, de rajouter des binaires, travailler sur les process, la mémoire, les drivers.

    Premiers pas sur Orix

    A partir du moment, où vous avez le prompt (sur réel ou Oricutron), commençons par lister les ROM dispos :

    # bank

    Ok mais je n’ai que 7 banques d’affichées ! On me disait que j’avais 32 banques !

    Le choix a été fait de n’afficher que 7 banques tout le temps, mais de jouer sur les banques 4,3,2,1 pour afficher les banques supplémentaires. Ceci afin de garder le fonctionnement iso entre le Telestrat et atmos.

    Basculons de jeu de banques pour la banque 4,3,2,1 : cela ne fonctionne pas avec Oricutron, mais sur réel oui : les banques 4,3,2,1 affichent des signatures différentes :

    # twil -s1
    # bank

    Si dessous la vidéo montre le fonctionnement de la carte est du switch de banque. C’est comme si sur telestrat, nous changions physiquement la cartouche port droit, sauf que c’est ici sans arrêt de machine, car c’est le hard et le soft qui gèrent tout cela.

    En effet, pour garder une compatibilité avec le telestrat, il a été décidé de n’afficher que 7 banques. Aussi, le kernel qui est issu de telemon, ne gère que 7 banques. Pour ne pas à avoir tout à modifier, la twilighte card fonctionne dans le mode “7 banques” tout le temps à l’affichage. A l’avenir, il sera possible de présenter 31 banques. mais cela nécessitera une modif du kernel et du firmware de la carte.
    Aussi, le paramètre “twil -s” accepte une valeur entre 0 à 8. La valeur 4 est un peu spéciale : elle affiche en banque 4,3,2,1 une banque en plus, puis le kernel, puis le basic1.1 puis le shell.

    Démarrer un fichier .tap

    La rom basic11 ne sait gérer que du tap dans un seul fichier. Le multitap ne fonctionne pas. C’est une limite sofware. En revanche, il est possible de charger plusieurs .tap dans le programme basic : un “10 cload “toto.tap”” sera chargé. C’est le cas pour zip&zap par exemple. Prenez des fichiers .tap, et mettez les à la racine de la sdcard. Puis taper :

    # basic11

    La rom basic 11 a démarré

    il suffit de faire le cload du fichier déposé à la racine de la sdcard, le programma va démarrer tant qu’il n’est pas en multitap.

    Comment utiliser Orix actuellement ?

    Actuellement, il n’y a l’émulation que du contrôleur sdcard sur Oricutron. Ce qui veut dire que la partie swap de banques et accès à la RAM supplémentaire n’est pas possible sur Oricutron. Néanmoins, il est déjà possible de l’utiliser. Sur Oricutron, il y a déjà les roms de dispos. Il suffit de démarrer Oricutron en mode telestrat, en mettant en banque 7, le kernel, en banque 6, la rom basic11 modifée et le shell en banque 5

  • Bogue PRINT@

    par André C.

    Etat de la question

    Le manuel de l’Atmos présente l’ajout du paramètre “@X,Y;” à la syntaxe de la commande PRINT comme une simple option supplémentaire par rapport au PRINT de l’Oric-1, permettant d’afficher aux coordonnées X,Y de l’écran. PRINT@X,Y;plist n’est pas présenté comme une nouvelle commande, mais comme une simple extension de syntaxe.

    D’autre part, rappelons que si on place un “;” à la fin d’une commande PRINT, les coordonnées X,Y de la “case” qui suit le dernier caractère affiché sont mémorisées pour l’impression suivante. Il est alors possible d’utiliser ces coordonnées pour une autre commande d’affichage. Pour le dire plus simplement, après le “;” final, le curseur reste à clignoter au bout du dernier affichage et représente le prochain point d’affichage.

    Ce que ne dit pas le manuel

    Dans certains cas, il peut y avoir un conflit entre les paramètres “@X,Y;” et le “;”final. En effet, au niveau du code, lorsqu’un paramètre “@X,Y;” a déjà été détecté au début de l’analyse de syntaxe, un paramètre “;” en fin de ligne n’est ni rejeté, ni traité correctement.

    En pratique

    Lorsqu’on utilise une série de PRINT@X,Y;”CHAINE”, pour chacune des commande PRINT@, la chaine mentionnée est bien affichée aux coordonnées X,Y indiquées, pas de problème. Si la longueur de la chaîne est supérieure à la place disponible, l’affichage se poursuit tout naturellement à la ligne suivante.

    Si pour une raison quelconque on est amené à mélanger des commandes PRINT@ avec d’autres commandes d’affichage,  on risque de rencontrer des problèmes. Voyons ce qu’il en est avec un exemple.

    Soit le petit programme ci-dessus.

    La chaîne figurant à la ligne Basic 10 comporte 30 caractères. Le premier caractère, un “2”, sera affiché dans la “case” de coordonnées X=2, Y=10. Le dernier caractère, un “1”, sera affiché dans la “case” X=31, Y=10. A cause du “;” final, le curseur restera à clignoter sur la case suivante. (Le déroulé du programme est trop rapide pour voir ce curseur clignotant, sauf si on place une commande GET R$ en fin de ligne).

    La ligne Basic 15 affiche “OK” au curseur, c’est à dire au point X=32, Y=10. Ici encore, le curseur restera en attente sur la case suivante  à cause du “;” final.

    La ligne Basic 20 devrait commencer l’affichage de la chaîne “SALUT LES GARS!” (15 caractères) de la “case” de coordonnées X=16, Y=10 et la terminer à la “case”  X=30, Y=10. Au lieu de ça, seul “SALUT ” est affiché correctement, le reste de la chaîne, soit “LES GARS!”, est rejeté au début de la même ligne n°10 de l’écran et, curieusement, pas à la ligne suivante.

    Vous me direz que le “;” n’a logiquement rien à faire à la fin du PRINT”OK” et que cela relève d’une faute de conception du programme Basic. Peut-être. Mais la commande PRINT proprement dite est mal codée : Lors de l’analyse de syntaxe, la rencontre d’un paramètre “@X,Y;” devrait entraîner la neutralisation des coordonnées X,Y en cours et leur remplacement par celles indiquées par “@X,Y;”.

    Si on retire le “;” après le PRINT”OK” l’affichage rentre dans l’ordre et redevient ce qu’il doit être.

    Ceci montre bien qu’il ne faut pas utiliser de “;” à la fin d’une commande PRINT@, sauf raison particulière et en toute connaissance des risques.

    Il n’est pas toujours simple de comprendre ce qui se passe. Ainsi, si on garde le “;” après le PRINT”OK”, mais que l’on supprime le “;” de la ligne Basic 10, alors la chaîne “SALUT LES GARS!” s’affiche correctement. Le truc, c’est qu’entre temps les paramètres X,Y ont été régénérés lors du retour à la ligne pour afficher “OK”. Même si le curseur reste à clignoter après le “K” de OK, le PRINT@ qui suit opère sans problème.

    Autre petite curiosité, lorsqu’on déplace progressivement l’affichage de la chaîne “SALUT LES GARS!” vers la droite en augmentant la valeur de X à la ligne Basic 20, on observe une rupture pour X=34. Pour X=33, le reliquat “LES GARS!” est rejeté au début de la même ligne de l’écran, alors que pour X=34, il est affiché au début de la ligne suivante, comme il se doit !

    Il n’existe pas de commande LPRINT@, donc pas de problème de ce côté-là.

    Oups !

    J’ai fait en dernier ce que j’aurais dû faire en premier : Vérifier si la bogue “PRINT@;” était déjà connue. Et oui : Vous pouvez consulter le CEO-mag n°10, page 9 de mars 1991, qui en donne une autre démonstration (article de Roger B.).

    Conclusion

    Comme vous l’avez vu, la situation peut devenir complexe quand la syntaxe d’une commande est mal gérée. Il est difficile de prévoir à l’avance le résultat final. Ceci vaut évidemment pour toutes les commandes Basic de l’Oric réputées pour leurs bogues. A la liste IF THEN ELSE, RND(), POS(), CLOAD, POINT(x,y), ‘ (apostrophe pour REM), EDIT, DRAW, il faut donc ajouter PRINT@;

    Salut et Oricité !

  • Récupérez les caractères redéfinis de tous les logiciels : 1 – Méthode

    par André C.

    Dans les deux articles précédents (“Récupérez les écrans des logiciels protégés : 1 – Méthode” et ” 2 – Application : Démo Talisman”) nous avons vu comment mettre à profit le dump de la mémoire généré par les émulateurs. Cela s’applique aussi à la récupération des polices de caractères. A priori, on pourrait croire que la procédure ne présente aucun intérêt pour les programmes non-protégés, puisqu’on peut déjà accéder au contenu de la mémoire. Mais, comme vous le verrez, il peut être indispensable d’établir un rapport entre ce qu’on voit à l’écran et ce qu’il y a en mémoire. D’où l’intérêt du dump.

    Limites et difficultés

    Souvent, les caractères ont été redéfinis en vue de créer une police de caractères (par exemple pour faire un écran-titre). Mais ce n’est pas toujours le cas et même si vous parvenez très facilement à récupérer les jeux 0 et/ou 1, vous ne serez pas forcément au bout de  vos peines :

    1. En effet, les caractères sont souvent redéfinis en vue d’être assemblés pour former des sprites. Il faut donc savoir comment ça s’organise. Solution : Le débogueur de votre émulateur Oric (touche F11 avec Euphoric) vous permet d’examiner l’écran et de comprendre comment sont formés les sprites (avec quels caractères et quelle disposition).
    2. Autre difficulté, les programmes redéfinissent souvent les caractères au fur et à mesure des tableaux du jeu. Un bon exemple est donné par “The Hellion” (voir les articles “Les 101 écrans de The Hellion” de Simon G. (CEO-mag n°240 à 274). Il faut donc déclencher un dump de la mémoire au moment où les nouveaux caractères à récupérer apparaissent à l’écran (touche F9 avec Euphoric).
    3. Enfin, si en général tout va bien avec les programmes Basic, les choses se compliquent souvent avec les programmes écrits en langage machine. En effet, les auteurs optimisent forcément leur code et sont amenés à stocker les caractères/sprites dans un format différent du format habituel et d’utiliser des routines d’affichage spécifiques. Il va sans dire que dans ces cas-là, il faudrait beaucoup investir dans la matière grise…

    La méthode de récupération

    C’est exactement la même procédure que pour les écrans. Seules les adresses changent.

    Comme vous le savez, l’Oric comporte deux jeux de caractères :

    1. Le jeu 0 dit “normal”, situé de #B500 à #B7FF (3 pages de #100 octets), qui compte 96 caractères du code Ascii 32 (espace) au code Ascii 127 (rectangle noir de 6×8 pixels utilisé pour le curseur).
    2. Le jeu 1 dit “semi-graphique”, situé de #B900 à #BAFF (2 pages de #100 octets), qui ne compte que 64 caractères du code Ascii 32 (espace) au code Ascii 95 (rectangle noir de 6×8 pixels, identique au code Ascii 127 du jeu 0).

    Attention, il s’agit des adresses initiales, au boot, c’est-à-dire en mode TEXT. Si le programme passe en mode HIRES, les deux jeux sont déplacés respectivement vers la zone  #9900 à #9BFF pour le jeu 0 et vers la zone #9D00 à #9EFF pour le jeu 1 (voir les tableaux ci-après).

    Fabriquez les en-têtes appropriés

    Pour les 2 jeux de caractères et pour les 2 modes d’écran, il faudra donc prévoir 4 modèles d’en-tête, par exemple avec le petit programme SAUVJEUX suivant (voir le fichier .zip joint à cet article) :

    100 TEXT
    110 CSAVE"SAVJ0TXT",A#B500,E#B7FF
    120 CSAVE"SAVJ1TXT",A#B900,E#BAFF
    130 HIRES
    140 CSAVE"SAVJ0HRS",A#9900,E#9BFF
    150 CSAVE"SAVJ1HRS",A#9D00,E#9EFF
    160 PING
    En-tête de fichier cassette pour le jeu des caractères normaux en mode text
    En-tête de fichier cassette pour le jeu des caractères semi-graphiques en mode text
    En-tête de fichier cassette pour le jeu des caractères normaux en mode hires
    En-tête de fichier cassette pour le jeu des caractères semi-graphiques en mode hires

    Pour avoir un en-tête proprement dit, récupérez les octets du début du fichier .tap, allant du #16 initial au #00 (inclus) situé juste après le nom du fichier. Dans les conditions décrites, chaque en-tête aura au final une longueur de 23 octets. A l’issue de ce petit travail, vous disposerez donc de 4 modèles d’en-tête (voir les 4 figures ci-dessus) que vous garderez précieusement. Les 4 fichiers .tap correspondants sont dans le zip joint à cet article.

    Récupérez les DUMPs

    La procédure de récupération des jeux de caractères est très simple. Les consignes qui suivent concernent Euphoric, mais des fonctions analogues sont disponibles avec les autres émulateurs.

    1. Lancez Euphoric et chargez le logiciel à traiter. Si besoin, lancez l’exécution.
    2. Guettez le moment où les initialisations semblent terminées et où les caractères à récupérer apparaissent à l’écran et pressez la touche F9 pour générer un dump mémoire.
    3. Pressez immédiatement la touche F11 pour figer l’exécution du logiciel et renommez le fichier DUMP généré (sinon il serait écrasé au prochain appui sur F9).
    4. Eventuellement pressez à nouveau la touche F11 pour relancer l’exécution et guettez le tableau suivant. Etc.

    Note : Il pourrait aussi être utile de garder des recopies d’écran afin de pouvoir identifier s’il s’agit d’un écran TEXT ou HIRES (pas toujours évident). Profitez également de l’appui sur F11 pour examiner le contenu des zones #BB80-#BFDF (écran TEXT) ou #A000-#BFDF (écran HIRES).

    Et enfin, récupérez les jeux de caractères

    Il n’est pas toujours facile de déterminer si ce sont les caractères du jeu 0 ou du jeu 1 (ou des 2) qui ont été redéfinis, ni si le programme tourne en mode TEXT ou en mode HIRES. Dans l’expectative, on sera parfois conduit à récupérer plusieurs jeux à l’aveuglette et à juger ensuite des résultats.

    Dans votre éditeur hexadécimal :

    1. Ouvrez le modèle d’en-tête correspondant à la zone à récupérer. CTRL+A puis CTRL+C pour copier les 23 octets du fichier.
    2. Ouvrez un nouveau document. CTRL+V pour y coller l’en-tête. Editez les 8 caractères de forme “SAVJxxxx” pour renommer votre fichier .tap
    3. Ouvrez le fichier DUMP à traiter. Sélectionnez les #0300 (jeu 0) ou #0200 (jeu 1) octets correspondant au jeu ciblé à partir de l’adresse de ce jeu (voir le tableau ci-dessous), puis tapez CTRL+C pour copier la zone sélectionnée.
    4. Pour vous éviter de sauvegarder inutilement un jeu de caractères qui n’a pas été redéfini, demandez à votre éditeur hexadécimal de calculer la checksum de la zone sélectionnée et comparez avec la valeur indiquée dans le tableau ci-dessous (valeurs pour les jeux natifs d’origine Oric).
    5. Allez dans le nouveau document, à la fin de l’en-tête, CTRL+V, pour y coller le jeu.
    6. Sauvegarder votre jeu au format .TAP par exemple sous le nom TOTOJ0.TAP.
    7. Examinez le jeu sauvegardé à l’aide de l’un des nombreux programmes de redéfinition ou de visualisation pour Oric ou à l’aide du programme OricExplorer de Scott Davies.

    Configuration Atmos ou Atmos+Microdisc+Sedoric

    Type de jeu Mode écran Aller à l’offset Octets à sélectionner Checksum Atmos Checksum Sedoric
    Jeu 0 TEXT #B500 #300 #3F70 #4026
    Jeu 1 TEXT #B900 #200 #3F00 #3F00
    Jeu 0 HIRES #9900 #300 #3F70 #4026
    Jeu 1 HIRES #9D00 #200 #3F00 #3F00

    La checksum du jeu 0 sous Sedoric est différente car 6 caractères ont été redéfinis :    à ç é ù è et ê.

    Dans la deuxième partie de cet article, je prendrai deux exemples, “Rush Hour” et “The Hellion”, pour illustrer pas à pas la procédure de récupération des jeux de caractères.

    à suivre…

  • CEO-MAG 358

    Edito

    L’année 2020 est très prometteuse. Pour commencer, si vous ne les avez pas vus lors de vos lectures du net, vous allez découvrir les deux premiers softs de l’année. Gageons qu’il y en aura d’autres.

    Pour la première fois, le CEO-MAG va quitter son aire historique de téléchargement et sera disponible aux adhérents sur le site oric.bqtt.net/ uniquement.
    Quelques adhérents (une bonne quinzaine) vont donc devoir changer leurs habitudes, créer un compte sur le magnifique site crée par Jérome pour télécharger le mag
    Gageons qu’en même temps, tous découvrirons le forum, les articles en ligne et la possibilité de les commenter, et sans aucun doute apprécierons la machine à remonter le temps et retournerons quelques années en arrière pour lire quelques OUM récemment scannés et qui sont … sauf erreur de ma part, une exclusivité sur le site.

    Enfin, si vous avez oublié, je vais prochainement quitter la rédaction du mag. Bien sur, la transition vers un probable nouveau rédac’chef se fera mais ce mag est l’avant dernier dans ce format ; et probablement dans la phase de transition à venir, la fréquence de publication du pdf sera moins régulière (ces derniers temps, les mags étaient sortis dans le courant du mois)

    A tous, je souhaite une bonne lecture de ce pdf, et de longues heures de navigation sur le site qui compte déjà 45 articles en ligne, et qui devrait bientôt recevoir les nouveaux articles et de nouveaux scans exclusifs.

    [wpdm_package id=’2614′]

    [wpdm_package id=’2616′]

  • Fifteen Puzzles

    Avec RadarOric, Fifteen Puzzle est un des premiers jeux de l’année 2020. Rax et Iss nous ont concocté un magnifique jeu de réflexion. J’avoue n’avoir jamais été fan de ce type de jeu car ces puzzles type Rubik’s Puzzle et consorts ne m’ont jamais trop réussi. Cette sortie est donc l’occasion de découvrir le genre et surtout les méthodes qui me permettent enfin de finir ces casse-têtes.

    Petit historique pour commencer …

    Ces jeux de réflexion ou l’on pousse des pièces pour les remettre dans l’ordre est également appelé “taquin” (NDLR : Rax et Iss le sont ils ?).
    Ce solitaire se présente sous la forme d’un damier et a été créé vers 1870 aux États-Unis. Comme toujours dans les domaines du jeu, le concept est associé à une théorie mathématique qui a été publiée par l’American Journal of mathematics pure and applied en 1879 (franchement, je préfère être publié dans le CEO-MAG). En 1891, alors que le jeu passionne, son invention est revendiquée par Sam Loyd. En fait, le premier jeu de taquin connu date de 1880 et il est de Noyes Chapman. Sam Loyd l’a popularisé. Sans internet, le jeu a tout de même mis quelques mois à se répandre dans les chaumières.
    La version la plus classique est composée de 15 carreaux numérotés de 1 à 15 qui glissent dans un cadre prévu pour 16 (sur une matrice de 4×4). Il faut donc que le joueur remette dans l’ordre les 15 carreaux à partir d’une configuration initiale quelconque.

    Le principe a été étendu à toutes sortes d’autres jeux. La plupart sont à base de blocs rectangulaires plutôt que carrés, mais le but est toujours de disposer les blocs d’une façon déterminée par un nombre minimal de mouvements. Le Rubik’s Cube est aujourd’hui considéré comme l’un des «descendants» du taquin.

    Le Concept

    Le jeu qu’il proposait était le 14-15. Il s’agissait de remettre les pions mobiles dans l’ordre séquentiel correct. Loyd promettait un prix à celui qui y arriverait. Il était, en fait, infaisable … car les pavés 14 et 15 étaient inversés.

    L’insoluble taquin de Loyd

    Pour répondre au petit casse-tête de Sam Loyd, nous allons étudier comment les configurations du taquin changent par les mouvements autorisés. Il sera plus facile de travailler avec des nombres disposés à la queue-leu-leu plutôt que rangés dans un tableau. Voici comment nous rangeons les nombres : à une position du taquin, on associe la liste des numéros que l’on rencontre en parcourant les cases le long du chemin indiqué ci-dessous. On ne tient pas compte de la case vide. Le chemin vert ressemble à une file d’attente aux guichets d’une gare, entre des barrières qui zigzaguent, n’est-ce pas ?

    On obtient ainsi un rangement des nombres de 1 à 15. Par exemple, le rangement associé à la configuration de départ du taquin est “4 – 3 – 2 – 1 – 5 – 6 – 7 – 8 – 12 – 11 – 10 – 9 – 13 – 14 – 15”.
    Le rangement des nombres de 1 à 15 ne détermine pas complètement la configuration du taquin, car il ne donne pas d’information sur la position de la case vide. Mais comme on peut promener la case vide le long du chemin par les mouvements autorisés du taquin, peu importe : si l’on peut arriver à l’une des configurations donnant un certain rangement, on pourra aussi arriver à toutes les configurations donnant le même rangement.

    Le critère le plus important pour qualifier le taquin est le dérangement. Le « dérangement » est le nombre de paires inversées pour obtenir une séquence croissante de 1 à 15. Dans le cas simple ci-dessus du Taquin de Loyd, seule la paire 14-15 est inversée (le brigand). Le dérangement est donc de 1, donc impair. La plupart du temps, calculer le dérangement est fastidieux mais il permet de vérifier que le jeu est soluble. En effet, si le dérangement est impair, les pièces ne peuvent pas être repositionnées dans l’ordre désiré. D’un rangement R donné des nombres de 1 à 15 (ou de 1 à un entier quelconque) par rapport au rangement par ordre croissant. On dira qu’une paire de nombres présente une inversion dans le rangement R si le plus grand des deux nombres vient avant le plus petit dans R. Par exemple, dans le rangement suivant des nombres de 1 à 9

    On a prouvé par ordinateur que le jeu de taquin n’exige jamais plus de 80 mouvements.

    Fifteen Puzzle

    Le jeu proposé par ISS et Rax est magnifique. Moderne, en Hires et agrémenté au choix de bruitages et de musique, il met en oeuvre plusieurs designs ; des classiques dés numérotés de 1 à 15 à de beaux puzzles qui tirent parti des capacités graphiques de l’Oric (NDLR : Ils auraient quand meme se mettre à la page de l’égalité homme-femme).

    L’écran titre annonce la couleur et sert de mode d’emploi
    Oh mon bateau oh oh oh !
    Quel est donc ce virtuose du dessin sur Oric : Rax ou Iss ?
    Il n’y a pas à dire, ils nous régalent avec ce soft

    Pour finir en toute tranquillité ce puzzle, sans altérer l’oeuvre des auteurs.

    Ici, point de peek, de poke, de call … il y a une méthode infaillible que j’ai réussi à mettre en oeuvre sans mettre en oeuvre de compétences oriciennes.
    Partons du principe que la case vide est placée en bas à droite du puzzle.

    1. remettre le jeu dans l’ordre ligne par ligne en commençant par la ligne du haut. répéter la manip pour la seconde ligne.
    2. quand il ne reste plus que les deux lignes du bas mélangées, les réordonner colonne par colonne en commençant par celle de gauche.
    3. lorsque les 2 colonnes de gauche sont ordonnées, il ne nous reste plus qu’à conclure en mettant en ordre les 3 derniers carrés à leurs places respectives.
    Etes vous prêts à relever le défi ?

    Bien sur, les experts de ce type de jeu boucleront l’énigme rapidement est en un nombre minimal de coups mais cette méthode est simple à mémoriser et aboutit dans tous les cas (si la solution est possible)

    Les puzzles basés sur des images sont bien plus difficiles à résoudre…
  • Bonnes pratiques d’utilisation du site CEO

    Le site CEO est relativement complexe au premier abord. Voici quelques bonnes recettes pour s’y retrouver et participer activement.

    Naviguer dans le site

    La barre de menu supérieure est définie en fonction des droits de l’internaute
    La barre de menus du milieu donne l’accès aux articles dans les différentes catégories. Les articles vus dépendent du profil du lecteur (membre du CEO, …)

    Utiliser le forum

    En dehors de la zone réservée aux membres du CEO, le forum est accessible en lecture à tous, et en écriture aux internautes inscrits et validés (membres ou non du CEO)

    Rubriques du forum réservées aux membres du CEO

    Avec ses différentes rubriques, la partie forum (certes différente d’un forum de type PhPBB) doit permettre des échanges complets entre les Oriciens inscrits sur le site et susciter l’intérêt des visiteurs.

    A vous de jouer …

    Rédiger un article

    La rédaction d’article est possible pour les personnes ayant un profil de contributeur ou de rédacteur. Les articles rédigés pouvant être soumis à relecture ; et l’équipe de gestion du site se réserve le droit de modifier les catégories et mots-clés choisis, pour conserver une lisibilité d’ensemble des articles.

    Le lien “ajouter un article” permet de rédiger et proposer un article sur le site et pour l mag.

    Lors de la rédaction d’article, le système découpe l’écran en 2.
    A gauche, le contributeur rédige son article basé sur des blocs qui peuvent être des textes de différentes formes, des tableaux, des images téléchargées ou issues de la base
    A droite, l’utilisateur a tous les réglages disponibles pour le bloc (texte, image …) en cours de rédaction.

    Un clic sur “document” dans la colonne de droite (switch “document” / “bloc”) donne au rédacteur de l’article les différents réglages accessibles pour poster son article et éviter qu’il soit perdu parmi les dizaines d’articles qui inondent déjà notre jeune blog.

    Tout commence avec la date de publication et les mots clés
    puis l’étiquette, une image à choisir et si l’article est réservé aux membres du CEO.

    Les choix que l’auteur d’un article doit réaliser :

    • Définir le futur de son article :
      • L’article est réservé aux adhérents du CEO : Cocher la case “Adhérent CEO” en bas de la section “document”
      • L’article est destiné à être publié dans le CEO-MAG, l’auteur coche la catégorie CEO-MAG, et éventuellement l’année de publication. Si l’auteur souhaite un mois de publication précis, il peut sélectionner la date de publication de l’article en haut de section document et remplacer “immédiatement” par une date de début de mois qui correspond en théorie à un prochain mag (le numéro du mag de publication se retrouve dans les étiquettes de l’article – par exemple ceomag353).
    • Définir comment retrouver son article après sa publication :
      • Sélectionner les mots clés nécessaires qui permettent de retrouver l’article dans le menu
      • Tel des mots-clés, mettre les étiquettes permettant une sélection plus fine dans les recherches d’articles

    En fonction des droits du contributeur / rédacteur, la case bleue en haut de page est “publier” ou “envoyer à la relecture” pour finaliser l’étape de préparation de l’article.

    Quelques conseils pour les catégories :

    Des catégories sont réservées pour un usage précis :

    • Focus : Permet d’afficher à la une en grand l’entete de l’article
    • Urgent : Génère un bandeau déroulant avec le message flash du titre
    • Association : Mot clé réservé aux informations liées au fonctionnement de l’association.

    Les autres catégories sont à choisir soigneusement … Bon courage pour vos futures rédactions.

  • Fungaloids

    Informations générales

    Ceci est une nouvelle version de l’un des jeux préférés de Dan Cresp pour le ZX-81, adapté d’abord sur MSX et SHARP MZ-700,

    Fungaloids, sur Sharp MZ-700

    Dan a décidé de créer une version “Cellophane Edition” pour ORIC, pour laquelle il a travaillé davantage sur la partie graphique et adapté le jeu à 36 colonnes au lieu de la version originale ou de 40 sur le MZ-700.

    D’un côté, Dan aurait aimé avoir un jeu différent au niveau des couleurs, mais les limitations de l’ORIC ne l’ont pas permis. Il a donc décidé de le présenter tel quel, ce qui lui donne un aspect très rétro. Ce résultat est magnifique.

    Les performances de l’ORIC sont très bonnes pour certaines choses, tel que le traitement des polices de caractères, mais en retrait pour d’autres aspects, ce qui fait que le jeu n’est pas aligné avec la fluidité que souhaitée. Comme tous les ennemis sont représentés par un seul personnage, Dan a décidé de passer directement sur l’écran vidéo par des POKE, au lieu d’utiliser le PLOT. Cela a simplifié le code et amélioré les performances.

    La boucle principale se répète jusqu’à ce que nous perdions la seule vie que nous ayons. A chaque passage, nous ne déplaçons qu’un des ennemis, sélectionné aléatoirement avec un nombre compris entre 0 et 2 :

    • 0 : Nous levons ou baissons la barrière d’énergie au hasard.
    • 1 : Au hasard, nous élevons ou abaissons l’un des navires ennemis.
    • 2 : Pour les fongoïdes, nous calculons un grand nombre aléatoire. S’il est inférieur à 6, nous faisons croître le Fungaloid correspondant et sinon nous ne faisons rien. Cela les fait progresser plus lentement, mais au fur et à mesure que le jeu avance, le nombre que nous calculons diminue et, par conséquent, augmente sa vitesse et sa difficulté.

    Pour détecter les collisions, j’utilise certaines variables qui indiquent la position absolue dans la mémoire de l’écran sur laquelle se trouve l’aile gauche de notre navire, ou notre tir. En accédant à la mémoire vidéo avec un PEEK, nous pouvons voir que nous jouons. Cela nous évite de nombreux calculs et cela reste assez précis.

    Dans le jeu original, il faut survoler un Fungaloid et lui tirer dessus. Ici, pour gagner de la vitesse, j’ai choisi de lui faire tirer dessus en détruisant un fragment de Fungaloid. Donc, je prends le même code qui me dit que Fungaloid est parvenu à poser sa balle sur le sol correspondant.

    La vérité, c’est que Dan aurait aimé apporter quelques modifications, mais il a choisi de conserver l’esprit du jeu original. Bien que complètement programmé en BASIC, le jeu a atteint une vitesse très convenable et vous permet de jouer parfaitement. Bien sûr, comme pour les autres logiciels crées par Dan Cresp, le son reste le point faible.

    Je vous invite à l’essayer

    Quelques informations à propos du programme

    Dan a divisé le programme en 11 blocs:

    • Déclaration de la matrice et début du jeu.
    • Contrôle de notre vaisseau.
    • Déplace les ennemis.
    • Contrôle du tir.
    • Contrôle du projectile ennemi.
    • Fin du jeu.
    • Niveau de passage.
    • présentation
    • Afficher l’écran de jeu et initialiser les variables.
    • Plusieurs routines.
    • bloc de données.

    L’ensemble du programme occupe 82 lignes.

    Ci dessous, le principe des différentes parties du programme:

    • 10 – Nous définissons les matrices du jeu.
    • 100 – Nous lisons le clavier: si aucune touche n’est enfoncée, elle passe à 170, mais le navire est supprimé de l’écran.
    • 160 –Nous vérifions la position du navire. S’il y a autre chose que des espaces, passez à 600.
    • 200 – Code déterminant quel ennemi nous devons nous déplacer: 0- Barrière énergétique, 1- Navires ennemis et 2- Fungaloids.
    • 210 – Routine de mouvement de barrière d’énergie.
    • 240 – Programme de déplacement d’un des trois navires.
    • 270 – Programme de déplacement de l’un des six Fungaloids.
    • 300 – Contrôle de notre tir.
    • 400 – Commande de déclenchement fongoïde.
    • 450 – Nous regardons les 3 personnages qui sont dans la position de notre vaisseau. S’ils ne correspondent pas au navire, cela signifie que nous sommes entrés en collision avec quelque chose et que nous sautons à la fin de la partie, sinon le système revient au début de la boucle.
    • 600 – Fin de partie.
    • 700 – Niveau de réussite.
    • 800 – Divers programmes: charger des munitions (820), charger du carburant (850), montrer le score (880).
    • 900 – Routine pour imprimer notre vaisseau dans la position correspondante.
    • 2000 – Écran de présentation.
    • 2500 – Nous dessinons l’aire de jeu.
    • 2800 – Initialise les variables du jeu.
    • 3000 – Nous chargeons les graphiques et initialisons certaines variables.
    • 9000 – Données des positions verticales initiales des 6 fongoïdes.

    Le jeu

    Le jeu original a été publié en 1982 et fut programmé pour le ZX-81 étendu à 16K.

    Le but du jeu est de détruire les Fungaloids avant qu’ils n’atteignent le haut de l’écran. Ces plantes poussent et produisent des spores qui nous détruisent si elles nous parviennent. Nous devons éviter d’entrer en collision avec eux ou avec les différents ennemis de la région.

    Notre seul navire a une capacité limitée de carburant et de munitions et nous devons périodiquement faire le plein dans les zones correspondantes.

    En détruisant tous les segments des Fungaloids, nous recevons 100 points, nous passons le niveau et la difficulté augmente.

    Près de la base de certains Fungaloids, il y a des constructions. Si nous en détruisons un, nous perdons 20 points.

    Le jeu se termine si nous perdons notre seule vie ou si nous perdons tous les points.

    Contrôles : Q-A-O-P pour déplacer le navire et ESPACE pour tirer.

    D’autres versions …

    Fungaloids sur ZX-81, la version originale
    Fungaloids sur le MZ-700
    Et pour finir, sur le MSX
  • Récupérez les écrans des logiciels protégés : 2 – Application, Démo Talisman

    par André C.

    Je ne peux pas résister au plaisir de vous montrer les écrans que j’ai pu récupérer à partir du fichier TALISMAN_DEMO.WAV de Simon G. A ma connaissance il n’existe pas de fichier .TAP ou .DSK pour cette démo et je l’ai choisie pour illustrer la simplicité de la procédure de récupération des nombreux écrans Hires qu’elle contient. Cet article montre des recopies d’écran, mais vous trouverez tous ces écrans au format .tap dans le zip joint à cet article.

  • CEO-MAG 357

    Sommaire :

    Edito Janvier 2020.

    Au nom du Comité, des rédacteurs du CEO-MAG, je vous souhaite une bonne année 2020, pour vous et vos proches.

    La souscription au CEO lancée et suivie avec brio par René, notre trésorier adjoint est un franc succès. A ce jour, c’est 55 adhérents, Oriciens actifs qui ont renouvelé leur adhésion et marqué leur intèrêt dans les services proposés par l’association ; dont j’en rappelle quelques uns : visu ouverte à tous et l’occasion de faire réparer du matériel, le mythique magazine CEO-MAG, la distribution de logiciels estampillés CEO (même si avec internet, nous sommes tous facilement des auto-éditeurs), l’accès à des archives sur le site oric.org et dans sa section CEO-MAG qui dispose également d’un forum avec une partie privée et une partie publique. Les bases sont lancées.

    Parmi les 55 adhérents, il y a 4 nouveaux adhérents pour 2020 dont certains sont très actifs et tentent de nouvelles expériences sur notre machine favorite. Bienvenue à vous. Le dernier «trombinoscope» remontait à 2015. Une version à jour sera proposée dans un prochain mag, ainsi que quelques infos sur le contenu et le fonctionnement du site oric.bqtt.net/ monté par Jérome. J’espère que cela motivera les adhérents n’ayant pas encore créé leur profil sur le site à le faire, pour réagir en ligne aux articles proposés. Ce premier numéro est plein de découvertes proposées par nos rédacteurs les plus prolixes et Dominique nous a concocté un nouvel article pour les amoureux du fer à souder.

    Bonne lecture et rendez-vous le 1/2 à Paris.

    [wpdm_package id=’1919′]

    [wpdm_package id=’2586′]

  • Radar Oric

    Un nouveau jeu de réflexion d’ André C.

    Prévu à l’origine pour être un cadeau de Noël, ce programme a connu un peu de retard à force de le peaufiner.  Mais bon, il est maintenant disponible et vous le trouverez dans le zip accompagnant cet article, ainsi que sur mon site, à l’adresse http://andre.cheramy.net/telechargement/Programmes/choix.htm

    De quoi s’agit-il ?

    C’est une sorte de bataille navale, mais dans le jeu classique (en vigueur dans les cours de récréation et qui se joue sur une grille papier),  deux protagonistes s’échangent des missiles pour couler les bateaux de l’adversaire et (cf. “touché”, “en vue” et “dans l’eau”). Dans les équivalents numériques le jeu est souvent réduit à un seul joueur contre l’ordinateur.

    Dans Radar Oric, il n’y a aucun risque de recevoir des missiles sur vos bateaux, car vous n’avez pas de bateaux. C’est votre QG qui est attaqué par une flotte ennemie et pour vous défendre, vous disposez d’un tout nouveau radar couplé à un ordinateur dernier cri, l’ Oric. Votre tâche est de localiser exactement la position de tous les bateaux ennemis, puis de déclencher un feu apocalyptique qui les anéantira vite fait bien fait avant qu’ils aient eu de temps de dire ouf ! Oui, je sais les bateaux ne peuvent pas dire ouf, mais bon…

    Le jeu proprement dit

    Votre rade est représentée par une grille de 10×10 cases où les 10 bateaux de la flotte ennemie se sont faufilés, profitant d’un épais brouillard. Heureusement, il y a quelques trous dans ce brouillard, dans lesquels vous pouvez apercevoir des bouts de navires ou… de l’eau ! Mais c’est tout (voir la figure ci-dessous).

    Pas facile de savoir où sont les bateaux ennemis ! Heureusement encore, votre super Radar Oric est capable de scanner cette grille et de vous indiquer combien d’éléments de bateaux se trouvent dans chaque ligne et dans chaque colonne (voir les chiffres rouges à gauche et sous la grille). Heureusement encore, votre super Radar Oric est capable de scanner cette grille, ligne par ligne et colonne par colonne, et de vous indiquer combien d’éléments de bateaux s’y trouvent (voir les chiffres rouges à gauche et sous la grille).

    Un peu de réflexion vous permettra de déduire la localisation exacte des 10 bateaux ennemis. Dernier petit service offert par votre Radar Oric : il vous indiquera si vous vous êtes planté dans votre raisonnement ou si les bateaux sont bien là où vous pensez.

    Si c’est correct, il ne vous restera plus qu’à les anéantir et l’ennemi n’aura même pas le temps de comprendre ce qui lui arrive. Le résultat est garanti en un rien de temps !

    Hélas, l’ennemi a la peau dure et il ne va pas tarder à vous envoyer une nouvelle flotte. Sacrebleu, il va encore falloir se creuser les méninges !

    Mais tout est bien qui finit bien, il arrivera inexorablement un moment où l’ennemi sera à court de bateaux et où aurez définitivement  gagné.

    Chaque flotte ennemie est composée des 10 bateaux suivants

    • Un porte-avions (4 cases)
    • Deux croiseurs (3 cases)
    • Trois destroyers (2 cases)
    • Quatre Sous-marins (1 case)

    Cet effectif vous est rappelé au-dessus de la grille et vous sera utile pour vous aider à trouver où peuvent se tenir les bateaux.

    Les commandes disponibles

    • Les quatre flèches pour déplacer le curseur dans la grille.
    • Les chiffres de 1 à 8 pour marquer la case au curseur selon ce que vous pensez qu’elle contient.
    • La touche “R” pour recommencer la grille au début, si vous êtes trop embrouillé.
    • La touche “S” pour sauvegarder la partie en cours afin de la reprendre plus tard.

    Correspondance entre les touches 1 à 8 et le marquage des cases

    1. Case indéterminée
    2. De l’eau
    3. Corps de bateau
    4. Sous-marins
    5. Extrémité gauche d’un bateau
    6. Extrémité droite d’un bateau
    7. Extrémité basse d’un bateau
    8. Extrémité haute d’un bateau

    A tout moment, vous pourrez consulter le pense-bête, situé à droite de la grille (chiffres bleus suivis d’une icône).

    Enfin, le n° de la flotte qui vous attaque est visible  juste au-dessus de ces chiffres (par exemple le 4 sur la figure ci-dessus indique que vous vous défendez contre la 4e flotte ennemie).

    Toutes les grilles du jeu ont bien sûr une solution et une seule.

    A vous de jouer !