Author: admin1957

  • Nuclear Invaders

    Un des premiers programmes conçu par Dan Cresp sur Oric, publié en Février 2013 et bien sur disponible sur oric.org dans la rubrique software. Comme vous l’avez deviné, avec son amour de la programmation et sa collection de micros, Dan a adapté son jeu sur plusieurs systèmes. Vous trouverez ci-dessous ses découvertes …

    Nous avons tous un équipement plus ou moins rétro, et la conception de ces programmes sont une bonne excuse pour pouvoir les utiliser et apprendre quelque chose à leur sujet.

    En règle générale, j’invente un jeu, ou adapte quelque chose d’existant, et le transfère sur 3 systèmes différents. Cela m’aide à comparer les performances et certaines fonctionnalités. Pour Nuclear Invaders, il existe une version pour DRAGON 32 (l’original, mais beaucoup plus simple) et pour MSX et ORIC. La meilleure des trois versions est sans aucun doute celle du MSX, mais la version ORIC a été meilleure que prévu.

    Un Dragon 32 en démonstration avec Nuclear Invaders

    En ce qui concerne l’ORIC, voici une partie des choses que j’ai apprises :

    • J’ai enfin appris à utiliser l’éditeur sans problèmes. Cela me rappelle beaucoup celui du ACORN BBC / ELECTRON.
    • Le programme a été entièrement développé sur un véritable ORIC-1 ; avec toutes les difficultés liées aux cassettes. Ainsi, si je l’enregistre en mode rapide avec l’ORIC-1, il ne se charge jamais bien. Si je le charge sur un ATMOS et l’enregistre rapidement avec l’ATMOS, l’ORIC-1 le charge sans problème. Curieux
    • Le programme a parfaitement fonctionné sur l’ORIC-1. Une fois passé à l’émulateur, l’OVNI ne s’est pas déplacé. Je l’ai essayé sous EUPHORIC (MSDOS) et ORICUTRON (Windows), en émulant ORIC-1 et ATMOS et cette partie ne fonctionnait pas bien. Je devais diviser la ligne 180 en deux (180 et 185) pour que cela fonctionne. Lorsque j’ai essayé sur ATMOS, j’ai constaté que cela ne fonctionnait pas non plus. Au final, le jeu garde la ligne divisée pour que le jeu fonctionne dans toutes les configurations.
    • En ce qui concerne le son, j’ai choisi d’utiliser les paramètres prédéfinis car leur modification pénalisait la jouabilité. Il y a de bonnes options sonores, mais en BASIC, il en coûte un max de les travailler.
    • Concernant la jouabilité, j’ai assez respecté la vitesse du jeu SPACE INVADERS, et nous sommes en BASIC !!!
      Le tir avance de 2 en 2 rangées, soit “curieusement” la séparation entre les envahisseurs. Cela permet de ne vérifier qu’une fois par cycle si vous touchez quelque chose. En outre, si le tir était plus rapide, la vitesse des envahisseurs devrait augmenter car le jeu serait trop facile. Presque tout a une explication

    Personnellement, j’aime davantage programmer en assembleur, mais il est clair que faire un jeu en BASIC est un défi particulier, car vous ne pouvez rien programmer. Vous devez très bien savoir si le projet est réalisable et très bien savoir le déboguer pour le lancer.

    Un Alien approche des réacteurs … la fin est proche !

    Notes finales

    La principale difficulté du jeu a été de parvenir à une bonne vitesse d’exécution, en tenant compte du fait que le jeu d’origine n’est pas particulièrement rapide. J’ai utilisé différentes techniques pour y parvenir. Parmi celles-ci, la sauvegarde des différentes animations des envahisseurs en fonction de leur position.

    Les graphismes ORIC sont composés d’une grille 6×8, 6 large par 8 haut. Comme aucun envahisseur n’occupe plus de 12 pixels, ils sont parfaitement positionnés. Pour le tank et l’OVNI je devais utiliser 3 caractères. J’ai redéfini les minuscules pour pouvoir lister le programme sans problèmes.

    L’écran de présentation est un “duplicata” du jeu d’origine, à l’exception du changement de nom du jeu. La forme de présentation est différente puisque tout est montré ici en une fois et non pas lettre par lettre.

    Ecran de présentation de Nuclear Invaders

    La boucle principale du développement va des lignes 100 à 260, soit 19 lignes au total. Ici, vous contrôlez le char, le tir, l’OVNI et un envahisseur. Comme le processus est rapide, tout se passe bien. Cependant, l’impossibilité d’utiliser ELSE en toute quiétude, ainsi que la limitation de la longueur des lignes ont rendu ce bloc plus compliqué que dans la version MSX.

    Pour détecter si le tir touche un ennemi, avant de montrer le tir dans sa nouvelle position, je regarde quelque chose, et si oui, je saute à la ligne 400. Ici, je vérifie verticalement si c’est l’OVNI, et sinon, c’est un envahisseur qui en position verticale, je calcule la ligne et en position horizontale la colonne.

    Dans cette version, je montre un précédent écran d’instructions où j’indique les touches de contrôle. Pendant ce temps, les graphiques redéfinissent et initialisent certaines matrices et variables.

    L’éditeur de l’ORIC est très similaire à ACORN BBC / ELECTRON, mais au lieu de la touche “COPY []”, le “CTRL + A” est utilisé ici. La différence est que dans ACORN, vous voyez ce que vous copiez dans le tampon, mais pas dans l’ORIC. Il est donc conseillé de vérifier avec un LIST de la ligne pour s’assurer que les modifications ont bien été enregistrées.

    Il y a un bogue important avec la commande ELSE du Basic de L’ORIC. Entre autres choses, il n’identifie pas bien à quoi le SI est associé et empêche le programme de le traiter correctement. Cela signifie que certaines lignes doivent être divisées en deux ou trois pour éviter des erreurs.

    En ce qui concerne l’enregistrement sur bande, l’ORIC-1 enregistre généralement mal en mode FAST (par défaut) et vous devez utiliser le paramètre «, S» pour le faire en mode SLOW, qui est beaucoup plus lent mais plus sûr. L’enregistrement rapide n’échoue pas dans l’ORIC ATMOS et l’ORIC-1 lui-même le charge sans problèmes.

    Pour ce qui est du son, domaine pour lequel je suis assez ignare, après plusieurs tests au cours desquels la performance d’ORIC est tombée trop bas, j’ai choisi d’utiliser les sons prédéfinis dont elle dispose. Les performances sonores de l’ORIC sont bonnes, mais leur utilisation est quelque peu fastidieuse.

    Avec la touche “ESC” on quitte le programme et en utilisant POKE # 26A, 3 activer le curseur et le clic de la touche.

    Quelques éléments concernant le programme

    La routine du jeu est divisée en 14 blocs

    • Déclaration de la matrice
    • Contrôle de notre tank
    • Contrôle de notre tir
    • Déplacement de OVNI
    • Déplacement des envahisseurs
    • Destruction d’un ennemi ou de l’OVNI
    • Perte d’une vie
    • Niveau de passage.
    • Présentation
    • Affichage de l’écran de jeu.
    • Chargement des graphiques. SPRITES et UDG.
    • Initialisation des variables et matrices du jeu.
    • Routines
    • Blocs graphiques.

    L’ensemble du programme occupe 79 lignes dont voici les principales :

    • 10 Définition des matrices du jeu.
    • 30 Routines d’appel pour lire les graphiques (3000), Affichage de la présentation (2000).
    • 100 Nous vérifions si notre char doit être déplacé, en le montrant dans la nouvelle position.
    • 130 S’il y a un tir à l’écran, nous le déplacerons, et nous verrons si un nouveau tir est réalisé (RETURN).
    • 170 S’il y a un OVNI sur l’écran, nous le déplaçons, et diminuons le compteur (W).
    • 200 Routine de déplacement des envahisseurs. Un envahisseur différent se déplace à chaque passage. D’abord, nous regardons s’il y a toujours des envahisseurs dans la position correspondante (3 par position), s’il y en a, nous avançons. Si la vitesse est assignée, nous la déplaçons, et si nous n’utilisons pas un nombre aléatoire, nous décidons de commencer à bouger. Pendant le mouvement, nous modifions son animation et voyons si il a atteint la centrale nucléaire.
    • 250 Compteur du prochain envahisseur à déplacer (M).
    • 260 Si tous les envahisseurs n’ont pas été détruits (T), nous retournons à REPEAT à 100, et s’ils ne restent pas, nous continuons jusqu’à 300
    • 300 Code de niveau de passe. Le passe est donné lorsque nous détruisons les 30 envahisseurs. Le contrôle de difficulté (C) indique que la largeur de la centrale nucléaire est augmentée.
    • 400 Cette routine est exécutée lorsque le tir détecte qu’il a touché quelque chose (sur 160). Ici, il est calculé si un envahisseur ou l’ovni a été touché et agit en conséquence. En 410, un envahisseur est détruit et en 450, l’OVNI est détruit.
    • 500 Routine en cours lorsqu’un envahisseur arrive à la centrale nucléaire. Un son est joué et une vie est supprimée. S’il reste des vies, nous recommençons le niveau et sinon, nous revenons à l’écran de présentation après une pause.
    • 2000 Écran de présentation du jeu
      La commande de déclenchement est enregistrée dans la variable (G).
    • 2100 Suppression de l’écran de présentation.
      Message joueur 1 pour être prêt et la centrale nucléaire est dessinée.
    • 2800 Positionnez et montrez les envahisseurs et notre tank à l’écran. Réinitialise la valeur de certaines variables.
    • 3000 Nous chargeons les graphiques des lignes de données dans la VRAM. D’abord, les SPRITES sont chargés, puis l’UDG.
    • 5000 Routine pour imprimer un numéro sur un marqueur.
      Passez la valeur dans (I) et la position dans (N).
    • 5200 Programme de suppression d’une partie de l’écran, en respectant les repères supérieur et inférieur.
    • 9000 Données du graphique UDG du jeu.
    • 9500 Données des envahisseurs selon la position et l’animation.
    Nuclear Invaders possède des sprites classiques et bien définis

    Le Jeu

    Les envahisseurs de l’espace sont de retour !!!

    En 1977, ils ont essayé d’envahir les villes de la Terre et ont échoué !
    Maintenant, ils sont de retour avec un plan diabolique : détruire les centrales nucléaires pour laisser la planète inhabitable.
    Avec l’aide de notre tank, nous devons éviter qu’ils atteignent leur objectif.

    Chaque niveau est composé de 30 envahisseurs (NDLR : je ne suis pas encore arrivé au bout des 30 premiers envahisseurs), après chaque vague il apparaîtra un centre plus grand. De ce fait, les envahisseurs doivent parcourir moins de distance pour atteindre et détruire notre planète.

    Bonus : Détruisez l’OVNI qui apparaît en haut pour obtenir des points supplémentaires.

    L’écran du 1er niveau.

    Quelques autres versions

    MSX, la plus belle version d’après Dan Cresp
    Nuclear Invaders sur ZX Spectrum
    Avec le CPC, le jeu en noir et blanc prend des couleurs !
    La version originale de Nuclear Invaders, sur Dragon 32
  • Daniel Crespo aka Dancresp, le collectionneur programmeur

    Nombre d’entre nous ont une petite collection d’ordinateurs, de consoles (enfin, ceux qui ont de la place car cela est plus encombrant que de collectionner les timbres). Si Fabrizio (l’auteur de Cross Shoot et de Cross-Chase) a choisi de porter son cross-développement une quantité impressionnante de machines, Dan porte ses créations sur quelques illustres ordinateurs qu’il affectionne particulièrement ZX Spectrum, MSX et bien sûr l’Oric

    Les années passent et il faut regarder vers l’avenir, mais faisons d’abord un petit tour dans le passé.

    Mon penchant pour l’informatique et les jeux vidéo a commencé à naître voici près de 35 ans, et depuis lors, j’ai formé des équipes, peu nombreuses et avec beaucoup d’efforts au début, mais c’est désormais plus facile.

    Début 2016, j’ai fait le point de mes priorités et de mes objectifs afin de coordonner mes actions et mes envies. Heureusement pour moi, ma passion pour ce monde informatique rétro est immense et j’ai résisté à l’envie de faire une crise et “tout laisser tomber”, J’ai donc repensé ce que je faisais et mes objectifs.

    Pour planter le décor, j’avais :

    • Environ 130 consoles, avec ou sans écran. À l’exception de deux ou trois, elles fonctionnent toutes. Incroyable !
    • Environ 100 ordinateurs et calculatrices programmables. À l’exception de deux ou trois, ils fonctionnent tous. Incroyable !!
    • Environ 160 portables, de type LCD, LED ou LSI. Sauf 3, ils fonctionnent tous. Incroyable, si si si …
    • Environ 1500 cartouches, CD et DVD d’origine. Rien ne manque ici !
    Les Game & Watch de la collection de Dan
    En sus des consoles et accessoires rétro, Dan possède plusieurs clones modernes
    Bien sûr, l’Oric est en bonne place dans sa collection

    Il n’est pas nécessaire de réfléchir beaucoup pour se rendre compte que, mis à part l’espace qu’ils occupent (j’ai la chance de ne pas souffrir de ce problème), il arrive un moment où l’on doit consacrer périodiquement du temps à les faire fonctionner un moment ou à régler de petits incidents qu’ils ont, cela me prend plus de temps que je ne le souhaite. (NDLR : La rénovation de nos micros passe bien souvent par le changement des condensateurs, l’un des organes les plus fragiles face au temps et de sus destructeur des circuits imprimés. Fort heureusement, l’Oric est peu sensible à ces phénomènes)

    Quelques-uns de ces équipements m’ont accompagné pendant une grande partie de ma vie et pour moi, leur valeur est tout simplement incalculable. Il en va ainsi pour mon ZX-81, mon Sony MSX HP-20P ou bien sûr à ma Game & Watch “Turtle Bridge” de Nintendo, ma Green House, mon Pong ou à mon Atari 2600. Et ils fonctionnent tous parfaitement.

    Autour de ce noyau informatique, beaucoup d’autres ordinateurs sont venus plus tard, certains massivement et parfois presque de manière compulsive. Certains m’ont offert de bons moments, d’autres ont été à peine utilisés. Cela m’a fait me demander s’il était nécessaire de les conserver, en particulier lorsque j’ai commencé à détecter, notamment avec les Game & Watch possédant un écran LCD, des défaillances irréparables.
    Ne nous leurrons pas, le reste, tôt ou tard, cessera de fonctionner.

    Gagner du temps avant que ces appareils finissent par se dégrader … Allez, merde ! J’aurais peut être mieux fait de collectionner des timbres.

    Qu’allons nous faire ?
    Comme je suis un homme de nature plutôt inquiète et que j’essaie de résoudre mes problèmes … j’ai lancé une série d’actions.

    Émulation

    Bien qu’au début, j’étais réticent, j’ai fini par y prendre goût. Ce n’est pas la même chose d’utiliser un émulateur sous MS-DOS ou sous Windows, et j’ai passé un bon moment à rechercher, obtenir et organiser des émulateurs de plus de 100 ordinateurs, pour la plupart des consoles, des systèmes portables et des différents systèmes d’exploitation.

    Ainsi, si certains équipements tombent en panne, je peux continuer à en profiter … A l’exception de l’Oric 1 et du ZX-81, tous les développements réalisés ont été programmés sur la plateforme d’origine. Jamais sur un émulateur ou avec des outils modernes de développement.

    Mon objectif principal est d’optimiser au maximum le BASIC de ces ordinateurs, en développant des jeux ou des applications avec une ergonomie professionnelle et une grande fluidité.
    La clé est de simplifier et de déboguer le code, en appliquant des techniques que j’ai développé et en expérimentant. Grâce à cela, les jeux comportent très peu de lignes, mais ils sont ludiques et rapides.

    Archéologie Rétro-Informatique

    Comme vous l’avez peut-être vu avec certains de mes articles consacrés aux équipements rétro-rétro (NDLR : Daniel est très actif sur www.retrowiki.es), de type IBM 1401, Kenbak-1, Programma-101 et les équipements Orao, Acorn System-1 ou Apple-1, j’adore obtenir des émulateurs de ces machines antiques (ou d’autres machines équivalentes) et rechercher sur Internet des documents permettant de produire quelque chose avec ces ordinateurs.

    Mes projets de Flow-matic, Math-Matic, Dartmouth Basic et les émulateurs de Kenbak-1 et Programma-101 ont été mes expériences les plus enrichissantes de ces dernières années. Il m’a fallu beaucoup explorer, faire des recherches et il faudra encore beaucoup d’explorations et de découvertes. Heureusement, grâce à Internet, cela ne coûte pas cher.

    Hardware

    A de très rares exceptions, je n’achète rien d’autre que des ordinateurs de plus de 20 ou 30 ans. Ainsi, je pense acheter un Apple II qui manque terriblement à ma collection.

    Au niveau des jeux vidéo, j’ai récupéré de nouvelles cartouches pour Megadrive, Atari 2600, Atari 7800, CBS Colecovision, et des cartouches de jeu Intellivision. J’ai également des consoles multi-systèmes telles que la Retron 3 ou la Game Box. Je les ai utilisées et j’en suis ravi.

    Je suis également de près les nouveaux équipements de type Spectrum Harlequin, basé sur FPGA, ou d’autres Raspberry et Arduino, entre autres.

    Réduire le stock de machines, d’interfaces et autres matériels

    C’est la partie la plus complexe.

    Après de nombreuses années à accumuler du matériel, du temps s’est écoulé et j’en ai conclu que la satisfaction que cette accumulation m’avait procurée dans le passé ne me satisfaisait plus.
    Donc, une partie de ma collection a été progressivement mise en vente, et je continuerais de la rationaliser ensuite

    Que personne ne se frotte les mains ni ne regarde le niveau de son compte en banque, car en principe je vais me débarrasser de tout le matériel dont je dispose, à l’exception du Spectrum, du ZX-81 et de l’Oric notamment. J’ai trop de choses, mais je ne vais pas faire des folies que je regretterai plus tard.

    Opérationnels ou non, ils m’accompagneront le reste de mes jours.

    Réorganiser mon sanctuaire

    J’ai un espace de 35 m2 qui est en train d’être complètement réorganisé. En 2016, je pensais me concentrer sur ce qui me plaisait vraiment mais finalement, ma collection 2019 a encore grandi.
    Au niveau des consoles, je suis généreux, et certaines ont déjà défilé jusqu’au parking, mais concernant les ordinateurs, je suis plus strict et ma garde rapprochée consiste essentiellement en mes ZX-81, Spectrum, MSX, Oric, Dragon-64, CPC-6128 + , C-64, Atari 800 et des équipements de poche. (NDLR : Effectivement, il lui manque toujours un Apple II. Si un jour Dan en récupère un, nul doute que les programmes seront adaptés)

    Finalement, je gagne beaucoup d’espace, et c’est tout sauf serré.

    En conclusion

    Quand j’aurai fini, et lorsqu’il me restera que peu de chose, je reprendrai une activité normale dans RetroWiki, parce que … non, je ne quitte pas l’univers du rétrogaming. A partir de 22h30, la famille dort et je passe 2 heures par jour dans le train. Le temps et la santé pour continuer à vous déranger avec mes “briques” pour beaucoup plus longtemps. Je le peux.

    Je n’arrête jamais de programmer sur ZX-81, notamment et bien que je veuille aussi enquêter sur des équipements particulièrement rares ou volumineux, etc. J’ai besoin de temps …

    Basic Videographie sur Oric

    • Lights Out (05/01/2012)
    • Nuclear Invaders (17/02/2013)
    • Galaxy Wars (14/09/2013)
    • Blasto (16/01/2014)
    • 6502 Assembler (20/05/2014)
    • Pipe-Mania (17/01/2015)
    • Space Invasion (21/01/2015)
    • Fungaloids (16/02/2015)
    • DBase II Lite (29/04/2015)
    • Averno (25/3/2019)
    • Solomon’s Key (17/05/2019)

  • Galaxy Wars

    Infos générales

    Ce jeu est une adaptation de la version précédemment programmée pour le COMMODORE-16 et le ZX-SPECTRUM. Pour cela, j’ai copié, ligne par ligne, le code de la version C-16, en y apportant de petites modifications car elles ont le même nombre de lignes et peuvent toutes deux utiliser ELSE.

    Galaxy Wars sur C-16, base du développement de la version Oric
    Une des premières versions de Galaxy Wars, sur ZX

    Pour la première fois, j’ai utilisé un émulateur pour développer le jeu : EUPHORIC sous MS-DOS. Le résultat est très satisfaisant puisque cet émulateur permet, en appuyant sur F3, d’avoir un clavier qui correspond à celui du PC, cela permet de taper un programme très rapidement et confortablement. Prendre un listing ou charger / enregistrer un programme est tout aussi simple.

    Les graphismes originaux, basés sur des largeurs de 8 pixels de base

    La seule complication lors du développement de cette version a été le besoin de coder à nouveau tous les graphiques, car l’ORIC utilise des caractères de 6 pixels de large et non de 8 comme le reste des ordinateurs. Ainsi, la conception du missile est légèrement plus étroite et les vaisseaux supérieurs occupent 3 caractères de large au lieu de 2. Quoi qu’il en soit, je l’ai fait et si vous touchez un navire du côté droit, vous ne le détruisez pas.

    Des graphismes “handheld”

    En ce qui concerne le son, j’ai repris les routines standards.

    Et en ce qui concerne l’aspect, grâce au système particulier de mémoire d’écran de ce système, c’est la seule version dans laquelle j’ai vraiment été capable de reproduire l’effet «cellophane», en émulant les rayures colorées.

    Ecarts à la version TAITO d’origine:

    • Cette version est un peu plus large et beaucoup moins haute puisque dans le jeu original l’écran est vertical.
    • Il y a moins de rangées d’astéroïdes, en raison de la taille verticale.
    • Pendant l’ascension du missile, nous pouvons le contrôler horizontalement, mais nous ne contrôlons pas la vitesse.
    • Les envahisseurs n’accélèrent pas lorsqu’il ne reste que quelques-uns d’entre eux.
    • Les astéroïdes ne descendent pas lorsqu’ils atteignent les extrêmes.
    • Les scores sont limités à 50, 100 et 150 points.
    • Il n’y a pas d’animations sur les ennemis.

    Le contrôle des ennemis est très simple. Il y a 6 bandes avec les ennemis dans la position correspondante. Les lignes paires tournent à gauche et les lignes impaires à droite.

    Le bloc principal du programme n’occupe que 18 lignes. À chaque passage, je déplace une rangée d’ennemis et contrôle un tir ennemi. Le compteur est commun dans les deux cas (A).

    Pour gagner de la vitesse, je me suis débarrassé des animations des ennemis. J’ai choisi d’utiliser les graphiques des ennemis dispersés.

    Lors de collisions, je vérifie seulement si la tête du missile touche quelque chose, mais pas la partie inférieure. En ce qui concerne les bombes ennemies, seul celui qui est actif vérifie s’il touche quelque chose. Cela rend le jeu plus rapide, mais il se peut que nous touchions quelque chose et que rien ne nous arrive. Comme le processus est rapide, il y a un risque … et il vaut mieux ne pas y jouer.

    En ce qui concerne les performances, cette version fonctionne aussi bien (sinon autre chose) que les deux précédentes (C-16 et SPECTRUM).
    La vérité est que, malgré ses bugs, ce BASIC tire plus que bien.

    Eh bien, rien de plus, je ne peux qu’espérer que cela vous plaise.

    Je vous invite à l’essayer.

    Quelques éléments concernant le programme

    Le programme principal est divisé en 10 blocs:

    • Déclaration de matrice. Appel aux routines principales.
    • Contrôle notre plateforme ou missile.
    • Contrôle des envahisseurs et des astéroïdes.
    • Contrôle des tirs ennemis.
    • Détection d’impact de missile. Touchez un astéroïde, un envahisseur ou un tir ennemi.
    • Perdre une vie.
    • écran de présentation.
    • Début du jeu.
    • Plusieurs routines.
    • Données avec les graphismes du jeu.

    Comment le programme fonctionne-t’il, avec ses 88 lignes ?

    • 10 – Nous définissons les matrices du jeu.
    • 30 – Initialiser l’enregistrement (R) et aller à la routine qui redéfinit les graphiques.
    • 50 – Allons à la présentation du jeu.
    • 100 – Nous déplaçons la plate-forme ou le missile dans la direction indiquée.
    • 130 – Si le missile a été tiré (T = 2), il passe à 160.
    • 140 – Si la touche RETOUR est enfoncée, nous tirons le missile et supprimons la plate-forme.
    • 160 – Nous supprimons le missile et modifions la position verticale (Y).
    • 170 – Si la pointe du missile touche quelque chose, nous sautons à 400.
    • 180 – Nous mettons le missile dans la nouvelle position.
    • 200 – Nous déplaçons l’une des 6 rangées d’ennemis ou d’astéroïdes dans la direction correspondante. (B = 1: Droite, B = -1: Gauche).
    • 220 – Nous imprimons la ligne de l’ennemi.
    • 250 – Nous voyons si l’une des 6 bombes ennemies est active.
    • 260 – Si ce n’est pas le cas, nous voyons s’il y a un envahisseur en position sur l’écran pour activer le tir.
    • 270 – Si le tir touche la plate-forme ou si le missile passe à 500.
    • 400 – Si la position Y est supérieure à 5, c’est que nous avons frappé avec un astéroïde ou tiré et sauté à 500.
    • 410 – Nous calculons la position de l’envahisseur détruit.
    • 420 – On met l’explosion, un son retentit et on calcule les points (50, 100 ou 150).
    • 430 – Nous supprimons l’envahisseur de la ligne et soustrayons un envahisseur des autres (Q).
    • 450 – Nous montrons les points et faisons une pause (5500) et mettons à jour le marqueur.
    • 470 – En passant le niveau, nous augmentons sa valeur s’il est inférieur à 5.
    • 500 – Nous mettons une explosion à la position du missile et reproduisons un son.
    • 520 – Nous mettons à jour le marqueur de vie.
    • 550 – S’il n’y a plus de vies, le jeu se termine.
    • 2000 – Écran de présentation du jeu.
    • 2050 – Appuyez sur une touche pour effacer l’écran (5400) et faire clignoter le marqueur du lecteur 1.
    • 2500 – Nous avons monté les bandes des envahisseurs.
    • 2510 – Routine générant de manière aléatoire des bandes d’astéroïdes. Fuller dans les niveaux avancés.
    • 2570 – Initialisation des variables principales de l’item.
    • 5000 – Changer les couleurs, masquer le curseur et désactiver les majuscules.
    • 5002 – Instruction Écran pendant la lecture des graphiques.
    • 5010 – La routine commence pour redéfinir le jeu de caractères.
    • 5020 – Nous sauvegardons l’attribut color de chaque ligne de l’écran dans la matrice C $.
    • 5040 – Initialise la matrice de la hauteur des différents ennemis V ().
    • 5050 – Initialise la position des bombes ennemies.
    • 5100 – Affiche le marqueur de score ou l’enregistrement.
    • 5400 – Routine d’effacement de l’écran activant les couleurs correspondantes par ligne.
    • 5600 – Affiche les 6 rangées d’ennemis dans leur position et avec la couleur correspondante.
    • 9000 – Ligne de données avec graphiques du jeu.

    Le jeu

    Ce jeu vidéo d’arcade a été développé par Universal et fabriqué par Taito en 1979.

    L’objectif du jeu est de détruire la flotte d’envahisseurs dans la partie supérieure de l’écran. Pour cela, nous contrôlons une plate-forme avec un missile. Lors du tir du missile, vous devez éviter les astéroïdes et les tirs ennemis et toucher un envahisseur.

    Contrôles:
    Appuyez sur Z ou X pour déplacer la plate-forme et le missile vers la gauche ou la droite. Appuyez sur la touche RETOUR pour tirer le missile.

    Quelques autres versions

    Comparaison de la version C-16 avec la version originale
    Le C-16 en action !
    Comparaison de la version ZX Spectrum avec la version d’arcade originale
    le ZX Spectrum en action
  • Visitons la Rom Monitoring (7e et dernière partie)

    Paru mag 164 page 6 https://www.oric.org/ceomag_download/index.php?action=&id=&exppath=/2003/ceomag/12_december

    par André C. et Claude S.Z

    Partie finale de la Rom (en FFC7-FFFF).a)

    Table de conversion Clavier/Ascii FFC7: 10 4C La touche ‘L’ de caractère Ascii normal #4C devient #10 normalement inutilisé (CTRL/P qui inverse le b2 de 026A). Le seul effet visible en pratique est qu’après un CTRL/T (mode minuscules) l’appui sur SHIFT+L n’afficherien alors que SHIFT+K par exemple affiche bien un ‘K’. Cette différence avec la Rom v1.1 ressemble bien à une bogue. Modification des vecteurs d’interruption

    b) Le vecteur d’interruption NMI, situé en FFFA-FFFB envoie normalement à l’adresse 0247 où se trouve l’adresse de la routine F8B2 (Warm Start qui correspond aussi aubouton Reset). Maintenant le détour par la page 2 a été supprimé : Le vecteur envoie directement en F8B2, supprimant ainsi tout détournement ou inhibition de ce Reset. En FFFA-FFFB les octets 4702 ont été remplacés par B2F8.c) Le vecteur d’interruption de Reset Système, situé en FFFC-FFFD renvoie normalement à l’adresse F88F où se trouve la routine Cold Start.

    Maintenant il envoie en F89A où se trouve la nouvelle routine simplifiée.En FFFC-FFFD les octets 8FF8 ont été remplacés par 9AF8.d) Le vecteur d’interruption IRQ, situé en FFFE-FFFF envoie normalement à l’adresse 0244 où se trouve celle de la routine EE22. Maintenant le détour par la page 2 a été supprimé : Le vecteur envoie directement en EE22, supprimant ainsi tout détournement. En FFFE-FFFF les octets 4402 ont été remplacés par 22EE. Le même type de prévention a été appliqué en C4B 4(001A, imprimer chaîne AY), C5E8 (023B, prendre un caractère au clavier), CCF4 (023E, vecteur imprimante), EE31 (024A, retour IRQ), F907 (0238, afficher caractère) et FA0 1 (0238, afficher caractère). BANC D’ESSAI A l’utilisation, cette Rom présente le très grand avantage de permettre une maîtrise quasi complète de la situation.

    Les outils de débogage qui ont été ajoutés (DUMP, DES, HDKMOD, CLEAN, SEARCH, MOVE et MON) font merveille. Et comme ils sont inscrits dans la Rom, ils sont disponible sen permanence. De ce point de vue la Rom Monitoring est un excellent outil de développement. La perte de certains caractères,notamment les minuscules peut être facilement contournée par leur chargement en Ram après le boot. Vous pouvez facilement récupérer le fichier nécessaire en exécutant un SAVE”MINUSC.CHS”,A#B708,E#B770 sur un Oric normal. Mais cette Rom a quand même quelques petits défauts.

    Citons en premier lieu, le non blocage du lancement AUTO lorsqu’il s’agit non plus de développer, mais de transférervos cassettes favorites sur disquette. Certes, on peut utiliser le Reset sous l’Oric et accéder à tout ce qu’il y a en mémoire. Mais ce n’est pas très pratique. Il est vrai que certaines protections reposent sur l’obligation d’exécuter le programme et nous avons fait l’expérience que les Roms ‘qui bloquent tout’ ne sont pas non plus d’un usage universel. Notez aussi que l’exécution d’un programme peut parfois détruire les vecteurs du Dos, rendant impossible la sauvegarde sur disquette… A propos de Dos, la Rom Monitoring n’est malheureusement pas compatible avec Sedoric et il faut se rabattre sur un autre Dos pour sauvegarder son travail. Enfin, l’affichage des adresses de début et de fin est très pratique, notamment parce qu’il se produit à la fin, au moment où il faut appuyer sur le Reset.

    Mais cet affichage présente l’inconvénient de polluer l’écran qui fait partie du programme qu’on cherche à récupérer. Il n’y a pas de solution simple, à part peut-être l’ouverture d’une fenêtre temporaire avec restitution ultérieure de l’écran. Mais cela aurait sans doute fait beaucoup de code à caser dans une Rom déjà pleine comme un oeuf !

    TRANSFERT K7 VERS DISQUETTE

    Si vous avez un problème pour transférer une de vos anciennes K7 sur disquette, nous vous invitons à relire notre article de synthèse paru dans le Ceo-Mag n°138, pages 6 à 9.Au fil de nos articles, nous vous avons parlé de plusieurs Roms susceptibles de vous aider : La Rom ‘Renifleuse’ (Ceo-Mag n°77, pages 3 et 4), dans laquelle les caractères minuscules ont été sacrifiés pour installer une routine qui affiche les adresses de début et de fin de fichier. Un Reset permet ensuite de sauver sur disquette en utilisant les adresses indiquées.La Rom ‘Déplombeuse’ (Ceo-Mag n°139, pages 6 à 8),dans laquelle le démarrage Auto a été neutralisé, ainsi que laroutine de ëvérification’ de la Ram (cette routine écrit des #AA puis des #55 qui écrasent tout), largement utilisée dans nombre de dispositifs ‘anti-copie’.La Rom ‘Suceuse’ (Ceo-Mag n°140, pages 7 à 10), qui a les mêmes propriétés que la ‘Déplombeuse’, mais en plus la commande EDIT a été remplacée par la commande SUCE, capable de lire octet après octet tout ce qu’il y a sur une K7 et de le copier en RAM sans chercher à savoir quoi que ce soit. B’te, mais efficace ! Enfin la Rom ‘Monitoring’ qui a fait l’objet de toute cette série d’articles, tant son contenu était riche.

    CONCLUSION

    Nous nous doutons bien que la plupart d’entre vous ont décroché depuis belle lurette, découragés par cette avalanche de code machine. Portant, le Ceo-Mag n’a pas pour unique but de distraire ses lecteurs. Comme l’ont remarqué beaucoup d’entre vous, le Ceo-Mag c’est la mémoire de l’Oric. Un hommage a été rendu à Jean-Jacques Jung, auteur de la Rom Monitoring. Espérons qu’un jour ou l’autre, certains pourront y puiser l’une ou l’autre des bonnes routines de Jean-Jacques. En attendant, n’hésitez pas à l’utiliser, même sans connaître le détail de ses rouages…

  • Les Chips 65xxx

    http://www.westerndesigncenter.com/

    Cet article est issu du mag 164 juillet page 7 & 8 (2003) : https://www.oric.org/ftp/ceo/ceomag/downloads///2003/ceomag/12_december/164-07-08.pdf

    D’après un e-mail de Fabrice F., rédigé à propos d’une commande groupée.

    – Processeur W65C02S (il tourne jusqu’à 14 Mhz !) : La version CMos du 6502. Moins consommatrice enénergie et jeu d’instruction étendu. Disponible en boîtier carré PLCC 44 broches pour les pros du hard ouen boîtier DIP 40 broches pour rentrer directement dans les Oric.

    – Processeur W65C816S (14 Mhz aussi) : La version 16 bits du 6502. Registres 8 ou 16 bits, modes d’adressages supplémentaires, jeu étendu, 16 Mo adressable, etc. Disponible en boîtier carré PLCC 44 broches pour les pros ou en boîtier DIP 40 broches. Mais attention, le brochage n’est pas complètement compatible avec l’Oric ! Si quelqu’un sait comment modifier l’Oric pour qu’il accepte un 65816, pensez à moi : J’en commande quelques-uns uns au cas où j’en fusillerais pendant mes essais !

    – Microcontrôleur W65C134S (8 MHz): Contient un W65C02S, plus 4Ko de Rom, 192 octets de Ram, 4timers 16 bits, 56 broches d’entrées-sorties, interface bus série, interface série asynchrone, contrôleurd ‘interruptions, chien de garde, signaux de sélection de boîtiers externes… Disponible en boîtier carré PLCC 68 broches pour les pros ou en boîtier QFP 80 broches pour les super-pros…

    – Microcontrôleur W65C265S (8 MHz): Contient un W65C816S (16 bits), plus 8Ko de rom, 576 octets de Ram, 64 broches d’entrées-sorties, 2 générateurs de son, 8 timers 16 bits, 4 interfaces série asynchrones,contrôleur d’interruptions, chien de garde, signaux de sélection de boîtiers externes… Disponible en boîtier carré PLCC 84 broches pour les pros ou en boîtier QFP 100 broches pour les super-pros…

    VIA W65C22S (il marche jusqu’à 10 MHz): La version CMOS du VIA 6522. Disponible en boîtier carré PLCC 44 broches ou en boîtier DIP 40 broches pour entrer directement dans les Oric.

  • Carte contrôleur Microdisc et Eprom 2764

    Cet article est issu du mag 164 juillet page 7 & 8 (2003) : https://www.oric.org/ftp/ceo/ceomag/downloads/2003/ceomag/12_december/164-07-08.pdf

    De Luc B. : J’ai décidé de me lancer dans la réalisation du contrôleur de disquette et suis preneur du plan du circuit imprimé.

    Réponse de André C. : Tu as bien-s ̊r vu les superbes articles deThierry dans le Ceo-Mag. Je t’encourage à lui écrire. Il aide déjà quelqu’un d’autre à réaliser une carte contrôleur. Et comme vous ‘tes tous les deux des gens sympas, je pense que vous allez vous entendre facilement. Je ne sais pas quelles facilités tu as pour réaliser un circuit imprimé à partir de ses tympons. Tu peux voir ça avec lui. En cas de besoin, j’ai une copie de ces typons: le fichier fait 1Mo et je pourrais te l’envoyer soit par la poste soit par e-mail. Pour la Rom de la carte contrôleur, je pourrais te la ́ shooter ª, mais je n’en ai pas d’avance. Il est encore possible de trouver dans le commerce des 2764 et des 27C64. Je crois que Thierry a utilisé une 27C64 et qu’il a eu quelques difficultés. Demande-lui s’il a essayé une 2764 avec son prototype. En principe cela devrait ‘tre mieux,car sa carte est une copie de la carte Microdisc d’origine qui utilise une 2764. Mais il a peut-être modifié quelques réglages pour utiliser sa 27C64. Dans mon contrôleur Microdisc, les 27C64 ne marchent pas,c’est pourquoi je pense qu’il a adapté quelque chose. Pour l’Eprom 2764, plutôt que d’en acheter uneneuve (dans les 30F et difficile à trouver), regarde si dans ton coin il n’y a pas un magasin d’occasion informatique ou un réparateur. Tu pourras probablement en trouver pour une bouchée de pain, car cela n’intéresse plus personne.

    Réponse de Thierry B. : Ok pour vous faire profiter de monexpérience sur la réalisation de la carte contrôleur :

    1) Je confirme qu’il s’agit d’une réplique de la carte contrôleur Microdisc mais sur un circuit imprimé simplifié donc réalisable par tout amateur en électronique.

    2) Luc, je peux t’adresser mes typons originaux si tu as du matériel pour insoler des plaques pré-sensibilisées.

    3) J’ai utilisé une 27C64-200 donc temps d’accès 200ns avec ma carte. J’ai ajusté quelques composants,tout cela est détaillé dans l’article publié dans le Ceo-Mag.

    4) Je n’ai pas essayé une vraie 2764. Effectivement cela devrait mieux marcher.

    5) Mais si on ne peut pas utiliser de 27C64, on doit pouvoir utiliser une 27C128-200 ou 27C256-200…

    Suite de Thierry [à propos de la nécessité d’utiliser un Amplibus avec sa carte équipée d’un 27C64] : Ma carte contrôleur fonctionne bien avec l’Amplibus simplifié, mais seulement lorsque le signal Phi2 n’est pas amplifié ! Lorsque Phi2 est amplifié, il est parasité. Je suppose qu’il s’agit d’un problème électromagnétique lié à la conception de la carte mais je n’ai pas eu le temps d’étudier le problème. Ma carte contrôleur fonctionne avec tous mes Oric, d’origine ou améliorés.

    Nouveau problème d’André : Je viens de tenter de transformer une carte contrôleur Microdisc en carte contrôleur Cumana (pour voir si c’est possible et comment Áa marche). Pour ce faire, j’ai shooté le fichier Cumana.rom distribué avec Euphoric dans une 27C64. Dans les Microdisc il y a des 2764, mais j’avais seulement une 27C64 CMOS sous la main. Résultat, j’ai réussi à booter une disquette Cumana une foispar hasard au premier essai et plus jamais par la suite, même avec un Amplibus. Et c’est un coup de pot, sinon, j’aurais pensé que c’était une idée merdique! Comme je sub-odorais que ça devait marcher et que d’autre part mon Jasmin 2 ne boote qu’avec un seul de mes Atmos et pas avec les autres, j’ai été chercher cet Atmos et j’ai testé. Ca marche dans 80% des cas. Fabrice a tourné plusieurs fois autour de l’idée depondre une nouvelle version de l’Eprom de la carte contrôleur du Microdisc, pour en corriger les bogues et la rendre compatible avec tous systèmes Oric. Que ferons-nous sans 2764 ?

    Le point de vue de Fabrice F. : Je pense que les problèmes de compatibilité rencontrés entre certains Oric et certains Microdisc viennent essentiellement du mécanisme utilisé pour s’accommoder des temps d’accès des vieilles Eproms (j’ai aussi rencontré des cartes mères Oric modifiées bizarrement pour amplifier le signal Phi2 et qui posaient problème). Je voudrais insister sur ce problème de temps d’accès : les Eproms 2764 utilisées à l’époque étaient particulièrement lentes. Celle qui équipe mon microdisc est à 450ns !. Si l’Oric avait une horloge équilibrée, c’est à dire des créneaux haut et bas de 500ns chacun, ça pourrait passer (tout juste)… Mais vous savez que l’horloge de l’Oric estrépartie différemment de sorte que l’Ula ait la Ram à sa disposition pendant les 2/3 du temps, et le Cpu pendant le 1/3 restant. Ce qui veut dire que le créneau de l’horloge qui donne l’usage du bus au Cpu ne Carte contrôleur Microdisc et Eprom 2764 Par Fabrice F., Thierry B., Luc B. et André C.8dure que 330ns environ… Du coup, les concepteurs du Microdisc ont construit un signal Phi2 décalé de façon à anticiper les accès à l’Eprom ! C’est le décalage de ce signal qui est délicat : Il peut facilement déborder sur l’utilisation du bus par l’Ula (sur le créneau d’avant ou sur le créneau suivant… d’o ̆ collision)ou n’être pas assez décalé pour donner suffisamment de temps à l’Eprom. Lorsque j’avais utilisé une eprom 16Ko dans un Microdisc pour y installer un Telemon modifié, il avait fallu que j’ajuste la résistance variable si je me souviens bien… Mais en plus, le décalage ne dépend pas que du temps d’accès de l’Eprom utilisée : Lorsque j’ai fait des essais avec des processeurs 65C02 certifiés pour marcher à 2, 3 et 4 MHz, je n’ai pas réussi à ajuster la résistance variable pour faire marcher le Microdisc avec le Cpu certifié 4 MHz. Tout ça parce que même en ayant un signal d’horloge d’entrée qui reste toujours le même (Phi1), les temps des créneaux de l’horloge Phi2 changent en fonction du processeur (c’est lui qui fabrique ce signal). Bref, pas glop… Thierry, à mon avis, il serait bon de supprimer ce circuit d’avance d’horloge dans ta nouvelle carte contrôleur, maintenant que les Eproms ont des temps d’accès de 250ns dans le piredes cas (et plus couramment 200, 150 ou 120ns ou même moins sur des grosses capacités) : La carte serait beaucoup plus simple et s’accommoderait mieux des différents processeurs et des différentes Eproms…C’était ma contribution à 2 centimes (d’euros) 🙂

    Réponse d’André : Fabrice, j’espère que tu peux attendre un peu pour tes 2 centimes d’euros. Pas cher d’ailleurs l’avis de l’expert, mais chut, il risque d’augmenter ses tarifs… Nous avons tendance à ne pas assez prendre en compte le genre de considérations, que tu as judicieusement rappelé. D’ailleurs, je crois me souvenir qu’il existe différentes manières d’amplifier Phi2 et que selon le dispositif utilisé on introduit un décalage différent dans le signal. Comme il est difficile de remonter le temps perdu, il me semble que la carte contrôleur se cale sur le créneau suivant, c’est à dire retarde jusqu’à la période suivante (rôle deRV1). Sachant que les SAV ont bricolé de toutes les manières les cartes mères pour qu’elles ́acceptentªle Microdisc (lui-même aussi bricolé), il n’est pas étonnant d’une part que certains ́couplesª dépareillés ne marchent pas (et comment retrouver l’ancien conjoint?) et d’autre part que le changement d’une ancienne Eprom pour une plus rapide entraîne à nouveau des problèmes trop difficiles à résoudre avec RV1 [et tu as également raison pour les problèmes liés au changement de microprocesseur]. Pour l’Eprom 16K que tuavais mis dans ton Microdisc, si tu ne l’as pas ́recycléeª, peux-tu regarder si c’était une 27128 ou un e27C128? J’ai vérifié de mon coté et mon Eprom marquée ́Bicedisª que j’avais shootée avec ton fichier pour faire cohabiter le Microdisc avec un émulateur de Telestrat sur Atmos (avec bascule entre Microdisc classique et émulation Telestrat par interrupteurs) est une 27C256 à 200ms. Et ça marchait

  • CEO-MAG 351-352

    Sommaire :

    04 John S. Sinclair Interview

    18 Interview de John S. Sinclair

    34 Journal de transferts : Zorgon’s Revenge (Demo Only)

    Edito

    IJK fut l’une des sociétés de production et de publication les plus emblématiques de l’Oric. A chacune de ses sorties, nous nous mettions à rêver et courions chez notre revendeur préféré (bien qu’il exista déjà un monde parallèle dans les cours de lycée) pour acquérir la perle encensée par les magazines de l’époque ; Tilt en tête. Steve avait soulevé un coin du voile voici 15 ans déjà. Avec ces articles fabuleux, remplis d’anecdotes, Simon nous propose un CEO-MAG hors du temps qui comblera également les anglophones. Un numéro hors pair qui figurera en bonne place dans ma bibliothèque. Merci Simon. Bonne découverte. Didier

    [wpdm_package id=’2626′]

    [wpdm_package id=’2624′]

    [wpdm_package id=’2662′]

    Téléchargement ouvert à tous

  • Exclusive : An Interview of John S. Sinclair

    Hi, Andre, I’ve been contacted by John Sinclair, who wrote Xenon 1 etc for IJK. Got some interesting information from him and so I asked if he would be willing to do an interview for CEO. He accepted. I’ll cut and paste some of the interesting stuff below. Regards, Steve M.

    (Xenon-1 cassette labels – refers to my Collectors Corner articles)

    From John Sinclair

    Sorry to be the bearer of bad news, but the IJK labels changed from black or blue on white to silver when we made more money and could afford more expensive labels. 9 King street was our first address.

    The pre-production sample of Zorgon is indeed a rare beast. Duplidata was an associated company to IJK. There would have been about 10 produced and some were sent to reviewers in plain boxes. You must have one of these.

    For your info, both Xenon and Zorgon were crossassembled and downloaded to the Oric using a BBC micro with a torch disk drive unit. I was 16 at the time, and getting rather tired of doing games, after a long career of writing BBC games !!!
    My first program was for the Tangerine, a UK ´Appleª made by some of the people that formed Oric.

    [Next …]

    The silver ones were later, when we started to manufacture the cassettes ourselves. They were self-adhesive so we didn’t need a machine to put them on. This is probably why they look early. They probably even rarer, cause we got a machine eventually and I think they went back and white again. The address is the give away. We sold 120,000 copies so plenty of money was made.

    We put all our money into a company called Duplidata as tax was 60% back then, who eventually duplicated disks and distributed for all the big names. I then put mine into Tetra Systems to make stuff for people with disabilities, I then merged with SRS Technology to do the same thing. We floated on Aim two years ago. So not too bad.

    The thing I learned from an early age is the value of a good royalty agreement. I work part time for them now, designing home control hardware (mainly for the fun of it).

    We always cross-compiled our games. It gave a distinct advantage working on new hardware. People forget when seeing Xenon now, when in the life of the Oric it was created. There were no details of firmware or hardware available to us. Oric were linked with Tansoft. This is where the single button thing came from. We found a memory location that changed when the keyboard scan had finished, we used that.

    However Xenon caused quite a stir, and I was whisked down to Oric and given ‘royal’ treatment. Even had a ride in the famous Ferrari. I had a crush on Rosalind Zawadska who was assigned to ‘look’ after me. That’s where Princess Roz came from in Zorgon.

    All Oric were developed on the Beeb. I then went onto C64 games, that were developed on the first PC with a hard drive PC XT. I’m looking for the source code now. I have all the PC stuff (C64), but the Beeb disks I think have gone. I have the original framed art work for the inlays somewhere.

    The movement was smooth because we created 6 animated icons slightly shifted to give pixel movement. This also took up a big chunk of memory, so it wasnít possible to make the games quiet as large and playable as I would have liked. We were also one of the first companies to realise the value of a good game intro and game inlay, as this was just about the only bit of a game that would be seen in a computer dealer. Current games have now taken this to the max.

    If you look at the logo, you’ll find IS JS KS. I’m JS, my uncle Ian is IS and my dad Keith is KS, we were ‘IJK’ the company.

    Glad you enjoyed them. I don’t mind reliving those days one bit. They were FUN!!!

    Cheers
    John S Sinclair

  • FDC 1793 et Read Track

    Par Simon

    Ou l’aventure des déboires avec les disquettes, partie 1 d’une possible longue série !

    Quel est le besoin ?

    Depuis quelques années me tourne en tête l’idée d’un outil de transfert de disquettes Oric vers PC. Readdsk est déjà très puissant sur PC, mais l’idée est d’utiliser le matériel Oric à la fois pour les non-bricoleurs qui ne voudraient pas désosser un drive 3 pouces et le brancher dans un PC, mais aussi parce que seuls les PC vieillissants sont encore capables de gérer un lecteur de disquettes. Savedisk, sorti en 2005 (cf. CEO-Mag n° 182, de juin 2005), répondait en partie à cette idée en permettant de lire, secteur par secteur, une disquette Sedoric, puis de la sauver sur PC par… Le port cassette ! Et ensuite de refaire un fichier .DSK pour émulateurs.

    L’idée suivante était de rendre cet outil universel, en faisant en sorte qu’il ne se préoccupe pas du système de la disquette lue (Sedoric, Randos, Oric Dos, Stratsed, FTDos, XL-Dos, …). Il existe une commande au niveau du contrôleur de disquette du Microdisc (le FDC 1793), qui permet de lire une disquette piste entière par piste entière, indépendamment du format. Cela permet d’embarquer tous les secteurs et toutes les informations entre les secteurs, d’un seul coup, et donc a priori de gérer tous les DOS possibles tant que l’on trouve un moyen de gérer le nombre de pistes et de faces.

    La galère commence

    Las ! En testant cette commande (avec un gros coup de pouce de Fabrice), je me suis vite rendu compte d’un problème: a priori aléatoirement, des octets de valeur $C2 s’inséraient dans les données, voire les écrasaient. Cela ruinait la fiabilité. Pensant à un problème matériel (drive, disquette ?), j’ai varié les sources: drives 3″ ou 3.5″, test lors d’une visu sur du matériel de Thierry… Sans résultat probant: toujours des dizaines ou centaines de $C2 !

    Pourtant, j’étais très intrigué car Nibble, l’éditeur de disquettes, est capable de lire et copier piste par piste, sans erreur. En regardant une piste dans Nibble et en comptant (un par un…), je pouvais voir beaucoup moins de $C2 que lorsque je faisais la lecteur moi-même… Quant à Euphoric, il rend une lecture parfaite de la piste.

    Mais c’est quoi ce bazar ?

    Passablement découragé, j’ai sollicité tranquillement les forums Oric, et au fil du temps et des d’échanges, a émergé une analyse d’un “bug” sur le contrôleur de disquette Atari ST (par Claus Brod), utilisé pour protéger des disquettes contre la copie. Il ressemble furieusement au problème sur Oric !

    Schématiquement, lorsqu’il lit une disquette piste par piste, le contrôleur est en permanence à la recherche d’octets de synchronisation sur la disquette. Ces octets de synchro forment une suite de bits qui permet au contrôleur de caler le démarrage de sa lecture d’une piste. Comme il ignore la longueur d’une piste, le contrôleur sera en permanence ” à l’écoute” de cette séquence pour savoir si une nouvelle piste démarre.En détail, voici les différentes synchro qui existent sur une disquette:

    • IAM – Index Access Mark (C2C2C2FC) marking the start of a track
    • IDAM – ID Access Mark (A1A1A1FE) marking the start of a header field (Sector ID)
    • DAM – Data Access Mark (A1A1A1F8 or A1A1A1FB) marking the start of a Data field (Sector)

    Les C2 et A1 sont de plus, si j’ai bien compris, enregistrés sur la disquette avec une petite erreur volontaire, pour les démarquer d’octets de données.

    Mais malgré cette précaution, une séquence de bits de synchro peut être présente au beau milieu des données d’un secteur, à partir d’une combinaison d’octets qui n’ont rien à voir. Et elle peut tromper la lecture qui va penser déceler un octet de synchro ! Sur Atari ST, c’est la séquence 000101001 qui serait en cause; je n’ai pas vérifié sur Oric.

    Ce bug ne se produit pas avec les commandes de lecture par secteur (lesquelles ne recherchent pas de synchro piste !).

    Voilà a priori l’origine des $C2 aléatoires ! Euphoric n’a pas ce problème car j’imagine que la lecture d’un fichier DSK sur le PC ne nécessite pas ce décodage bas niveau.

    Magic Nibble

    Et Nibble alors, pourquoi les $C2 sont moins visibles ?

    Eh bien, Dominique m’a transmis il y a quelques mois une photocopie du manuel de Nibble. Ce dernier montre que ses auteurs ont bien rencontré des difficultés dans la lecture par piste, et explique le contournement du problème: la piste est lue, mémorisée, puis chaque secteur de la piste est relu individuellement. Cette lecture par secteur remplace celle faite en mode piste ! Ainsi les données des secteurs sont épargnées par les $C2 parasites.

    Voilà la solution d’un mystère… Et une piste (sans jeu de mots !) pour poursuivre le copieur de disquettes universel sur Oric ? A noter que sur Jasmin, qui utilise un autre FDC (FDC 1770), le problème serait identique, mais je n’ai pas vérifié !

    Documents expliquant le mystère de la commande Read Track sur Atari ST:

  • Concours CEO New Year 2019

    Un concours … pour que tous les Oriciens prennent leur clavier et concrétisent une idée, même la plus simple sur l’Oric. Tout programme fonctionnel proposé (en anglais ou en français) sera publié et participera au challenge. N’hésitez pas à venir poser des questions sur le forum associé au CEO, le site de rencontre des amateurs francophones de l’oric ou sur le forum anglophone dédié à l’Oric. Les Oriciens sont également présents sur les réseaux sociaux : Facebook Oric Fans et Facebook Oric Owners où sont plutôt présents les anglophones.

    Tous nos remerciements à l’équipe de Coté Gamers sans laquelle ce concours n’aurait certainement pas eu lieu.

    Retrouvez les logiciels présentés dans un numéro du CEO-MAG spécial, en accès libre.

    Les résultats

    Retrouvez les logiciels du concours CEO NY2019 dans les softwares archivés sur oric.org

    Les lots pour les 2 vainqueurs : vainqueur adhérent 2018 du CEO : un livre de édité par «Coté Gamers» vainqueur non adhérent : un abonnement au CEO-MAG pour l’année 2019

    DBug a remporté le livreAbonnements remportés par Fabrizio et Totoshampoin

    Participants et Logiciels inscrits

    AndreC : Jazz’Oric (02/11)

    AndreC : VisuCar (09/12) – Pour Atmos et Microdisc

    Dbug : QuantumFX (20/12)

    Romuald : HitOric (26/12)

    Toto et DrPsy (27/12)

    Romuald (28/12)

    Laurent (31/12)

    Fabrizio (31/12)

    Ivan (31/12)

    Règlement :

    Article 1 : Le CEO organise ce concours doté de prix récompensant 2 programmes (qu’ils soient des utilitaires, éducatifs, démo …) : un prix pour les membres du CEO en 2018, un prix pour les personnes non membres du CEO.

    Article 2 : Ce concours est ouvert à tout auteur de logiciel quelque soit le matériel de marque Oric sur lequel il est fonctionnel. L’envoi par mail avant le 31/12/2018 du bon de participation, du logiciel et de son code source (avec éventuellement des bonus tel que dessins, copies d’écran) constitue l’acte de candidature

    Article 3 : Les auteurs recevront un mail de réception de leur participation. La liste des logiciels enregistrés sera visible sur la page du site du CEO : https://oric.bqtt.net/doku.php?id=concours-new-year-2019

    Article 4 : Le jury validera la participation au concours et la publication dans le CEO-MAG. Seront notamment exclus les logiciels déjà diffusés avant la date du 31/10/2018, et les logiciels violant de manière visible la législation francaise.

    Article 5 : Sur une configuration de base Oric 48ko avec lecteur de disquettes ou de cassettes (sans autre extension tel que joystick, synthétiseur vocal…), le jury composé de membres du CEO déterminera les meilleurs logiciels dans la catégorie jeux, utilitaires, éducatif, démo… Il déterminera ensuite les deux grands vainqueurs qui recevront chacun un prix

    Article 6 : Les résultats du concours seront annoncés lors de la visu hivernale 2019 du CEO. Les prix alloués seront remis au plus tard un mois après la visu.

    Article 7 : Sauf autorisation explicitement établie sur le bon de participation, seul le pseudo sera associé à la diffusion du logiciel et affiché dans le magazine. La diffusion des logiciels particpants au concours se fera sous la licence creative commons CC-BY-NC 2.0 et la diffusion du numéro spécial du CEO-MAG se fera sous forme dématérialisée avec une licence creative commons CC-BY-NC-ND 4.0.

    Bulletin de Participation

    Vous trouverez dans le lien ci-dessous le bulletin de participation.

    A télécharger, remplir avec adobe reader et nous retourner accompagné de votre logiciel et sources à l’adresse concours2019(at)oric.org