Blog

  • Journal du hard (21) Cartouches TELESTRAT(VIII) BIG cartouche avec RAM

    Par Claude S et André C

    https://www.oric.org/ftp/ceo/ceomag/downloads/1999/ceomag/06_june/110-10-13.pdf

    COMMENT ÉQUIPER LA BIG-CARTOUCHE AVEC DE LA RAM ?

    Pour être vraiment universelle, la “big-cartouche” doit aussi accepter de la RAM. Premier problème, trouver une puce de RAM de 64 koctets (512 kbits), compatible avec le circuit imprimé de François S. c’est à dire avec le brochage des EPROM de la famille 27xxx. Il existe de nombreux types de RAM et en ce qui nous concerne, nous avons besoin de RAM statique sans rafraîchissement, c’est à dire appartenant aux familles 43xxx ou 62xxx comme celles livrées par ORIC ou encore à la famille 55xxx qui est également compatible.

    Revenons en aux puces de 32 koctets de RAM. Il serait bien sûr possible de souder en parallèle, broche à broche deux RAM 62256 ou 55256 ou 43256, comme c’est le cas dans les cartouches RAM d’origine ORIC, mais, comme nous l’avons déjà indiqué à plusieurs reprises, nous sommes opposés à cette stratégie qui rend très difficile la maintenance (l’usage de deux supports de circuit intégré est impossible pour cause d’encombrement excessif).

    Comme pour les EPROM, il serait intéressant d’utiliser des puces de 64 koctets à 28 broches. Mais hélas, il n’existe pas de 43512, 62512 ou 55512. Nous sommes donc obligés d’utiliser des RAM de 128 koctets (c’est à dire 128 x 8 = 1024 kbits) à 32 broches de type 431000, 551001, 621000, 621001 ou 628128 selon le fabriquant.

    Bien sûr, nous n’avons besoin que la moitié de cette RAM, puisque pour faire 4 banques de 16 koctets il faut 64 koctets soit 64 x 8 = 512 kbits. Mais nous allons en profiter pour faire une double cartouche: un interrupteur permettra de passer d’une extension RAM 64K à l’autre (pour simplifier nous dirons d’une demi- RAM à l’autre). C’est votre TELESTRAT qui va être content de récupérer 64K de plus!

    Si vous êtes bricoleur, rien ne vous empêche de basculer entre les deux demi-RAM à l’aide du signal PB5, comme nous l’avons fait avec la ROM de I’ATMOS. Votre TELESTRAT disposera alors de 128 koctets de RAM, accessibles par programmation. Mais pensez tout de même à vérifier si le soft du TELESTRAT respecte PB5 (voir ce que nous avons fait pour I’ATMOS dans la rubrique “SEDORIC? DO IT YOURSELF” n°20, CEO-MAG n°90 d’octobre 1997, pages 9 et 10).

    BROCHAGE COMPARATIF DES EPROM ET DES RAM

    Nous avons réussi à utiliser une TC551001-70 et une D431000ACZ-70 (32 broches, 128 koctets). Mais finalement, la 621001 (même brochage) semble plus courante et donc plus facile à trouver. La figure 15 vous montre les brochages comparatifs des 62256 (identiques aux 43256 utilisées en paire dans les cartouches RAM d’origine Oric), 621001 (que nous préconisons) et de l’EPROM 27C010 (pour mémoire, puisque c’est notre circuit de référence, celui pour lequel la carte et le support de la “big-cartouche” avaient été conçus).

    Prenez quelques minutes pour comparer le brochage de la RAM 621001 à celui de l’EPROM 27010. Cinq broches seulement different:

    1. La broche n°1: Rafraîchissement des données (ex mode programmation, devenu inutile!).
    2. La broche n°29 devient WE au lieu de A14.
    3. La broche n°3 devient A14 au lieu de A15.
    4. La broche n°31 devient A15 au lieu de ROMDIS (également inutile!).
    5. Et enfin la broche 30, qui était non connectée, reçoit une nouvelle fonction CE2.

    LE SCHÉMA DE LA BIG-CARTOUCHE RAM

    Nous avons expliqué dans le Journal du Hard précédent, comment utiliser 8 diodes pour décoder les désirs du TELESTRAT et lui présenter la banque qu’il demande. Notre figure 12a reste valable du point de vue théorique. Seuls changent les noms des banques (1 à 4 au lieu de 4 à 7) et par conséquent des CS (CS0 à CS6 au lieu de CS0 à CS3) changent.

    Passons donc directement à notre schéma mi-théorique mi-pratique. Ce type de représentation doit maintenant vous être familier. Au menu, comme précédemment, relier les broches du connecteur TELESTRAT à celle du circuit intégré, tout en assurant le décodage des lignes de contrôles CS3 à CS6 Pas de nouveauté en ce qui concerne la masse, les lignes A0 à A13 et les lignes de données. Peu de modifications pour le reste des connexions.

    Les lignes d’adressage A14, A15 et A16

    1. Tout d’abord, A16 (qui “divise” la RAM en deux “demi-RAM”) est soit tirée au +5V à travers une résistance de 4,7 kohms, soit mise à la masse par un interrupteur. Si vous envisagez d’utiliser le signal PB5 de votre TELESTRAT pour basculer entre les deux demi-RAM, un simple fil devra relier cette ligne A16 à la broche n°15 du 6522 (voir le Journal du Hard n°9).
    2. L’emplacement des lignes A14 et A15 est différent entre les EPROM et les RAM (figure 15). Mais en fait, comme nous l’avons expliqué à plusieurs reprises, le TELESTRAT n’utilise que les lignes d’adressage AO à A13 (pour lire et écrire dans l’espace d’une seule banque à la fois soit 16 koctets). Les deux lignes d’adressage A14 et A15 permettent de “diviser” la demi-RAM en 4 banques de 16 koctets. Le niveau de ces lignes A14 et A15 est manipulé à l’intérieur de la cartouche en fonction de l’état des lignes de commandes pilotées par le TELESTRAT. Le fait qu’elles aient changé de place n’est pas très grave et ne demandera en pratique qu’un peu d’adaptation.

    En effet, s’il était impératif de respecter un certain ordre des banques à l’intérieur de EPROM, ce n’est plus nécessaire dans le cas présent : les banques peuvent être placées dans le désordre à l’intérieur de la RAM. Cela tombe bien, car nous allons devoir adapter le circuit imprimé de François S (conçu pour le brochage des 27xxx) à un brochage légèrement différent (celui des 62xxx, 43xxx et 55xxx). Notre seul souci sera donc de faire en sorte que cette adaptation soit la plus simple possible.

    MÉCANISME DE SÉLECTION DES BANQUES n° 0 à 3

    Le choix entre les 4 banques est contrôlé par les signaux CS3, CS4, CS5 et CS6 (voir le deuxième tableau du Journal du Hard n°15). La banque n°1 est opérationnelle lorsque CS6 est tiré à la masse, la n°2 lorsque c’est CS5, la n°3 quand c’est CS4 et enfin la banque n°4 est sélectionnée si est au niveau bas. Voyons cela concrètement.

    Au repos, les broches A14 et A15 sont tirées au niveau haut par une résistance de 4,7 kohms. C’est le quart le plus haut de la demi-RAM qui est “sélectionné”, mais en fait, il n’est pas en ligne car le Chip Enable n’est pas validé. Suivez sur la figure 16. La broche CE1 est maintenue au niveau haut (puce non sélectionnée) par une résistance de 4,7 kohms.

    Lorsque l’un des 4 signaux CS3, CS4, CS5 ou CS6 est mis à la masse par le TELESTRAT, la diode correspondante, c’est à dire l’une des diodes du premier groupe (n°l à 4), devient conductrice et tire la broche CE1 au niveau bas, ce qui valide la puce (oui, toute la puce, mais seule une demi-RAM est “sélectionnée” par action de l’inter sur A16). Ce niveau bas de CE1 ne se répercute pas sur les autres lignes, car les 3 autres diodes de ce premier groupe ne peuvent conduire à contre sens.

    Lorsque la ligne de commande CS6 est mise à la masse par le TELESTRAT, A15 est alors tirée au niveau bas, grâce à la diode n°8 qui devient conductrice.

    Si CS5 est mise à la masse, alors A14 est tirée au niveau bas, grâce à la diode n°6.

    Mais quand la ligne CS4 est mise à la masse, les deux lignes A14 et A15 sont misent ensemble au niveau bas (diodes 5 et 7).

    Vous pouvez vérifier que CS3 se contente de valider la puce et donc que la banque correspondante (n°4) se trouvera tout en haut de la demi-RAM (A15 haut et A14 haut). La banque n°2 viendra ensuite (A15 haut et A14 bas) puis la banque n°1 (A15 bas et A14 haut) et enfin la banque 3 (A15 bas et A14 bas).

    Enfin, une nouvelle broche WE (Write Enable, validation de la RAM en écriture) fait son apparition par rapport aux EPROM. Le circuit imprimé n’avait pas été prévu pour et là encore, il faudra effectuer une petite adaptation. Cette broche WE est directement pilotée par le TELESTRAT, qui la met au niveau bas lorsqu’il veut écrire dans la RAM.

    MISE EN PRATIQUE

    Puisque vous n’aurez qu’une seule cartouche RAM à construire, inutile de modifier le tracé du circuit imprimé de la big-cartouche pour ce nouveau brochage. Il suffira de couper 3 pistes et d’ajouter quelques straps, pour adapter le circuit originel de François S .Vous devrez donc distinguer deux types de “big-cartouche”: celles pour EPROM et celles pour RAM

    Finalement, la figure 17 révèle l’implantation d’une 621001 sur le circuit imprimé de la “big-cartouche”. Les modifications à faire sont minimes, mais le nombre de composants est assez élevé: un interrupteur (d’aussi petite taille que possible), une capacité de 100nF, 4 résistances de 4,7 kohms, 8 diodes de type 1N4148 (ou une des nombreuses diodes équivalentes, mais de petite taille si possible), un support de circuit intégré à 32 broches, une RAM 621001, 431000, 551001, 621000 ou 628128 et l’outillage de base habituel

    Effectuez les 3 coupures en premier, puis construisez votre cartouche en suivant ligne après ligne le schéma de la figure 16. C’est le seul moyen de minimiser les erreurs. Rappelons en effet un point crucial Selon toute vraisemblance, sauf si vous êtes un professionnel, les traversées de votre carte n’ont pas été métallisées La continuité électrique doit donc être assurée en plaçant une cosse (ou un simple bout de fil) dans les trous correspondant à chacune de ces traversées et à souder cette cosse sur les pistes des deux cotés de la carte. D’où la nécessité de suivre le schéma de principe! Il faudra tout réviser dans le détail avant de procéder aux essais.

    LES ESSAIS

    Nous avons perdu beaucoup de temps faute d’avoir effectué les bons essais. Ne faites pas comme nous. En effet, qui dit extension RAM, dit RAM-DISK et c’est bien tentant de se contenter de créer un disque virtuel D, puis d’écrire quelques fichiers dessus et de faire un DIR. C’est bien, mais ce n’est pas suffisant Bootez plutôt votre TELESTRAT avec une cartouche TELE-ASS à gauche et votre big-RAM à droite. Et procédez aux essais suivants:

    1. Choisissez l’option TELE-ASS.
    2. Tapez BANK1 puis MODIF #C000 puis CTRL/A puis le message “Ceci est la banque 1” (ou ce que vous voudrez) puis ESC (tout ceci pour écrire un message identifiant la banque 1).
    3. Procédez de même avec les trois autres banques: BANK2 … “Ceci est la banque 2” etc…
    4. Retapez tour à tour BANK1, BANK2, BANK3 et BANK4, suivi d’un DUMP #C000 et vous devez retrouver vos 4 messages au bon endroit. Si ce n’est pas le cas, re-vérifiez votre cartouche, il doit y avoir une diode soudée au mauvais endroit. Un peu de réflexion devra alors vous guider.
  • Journal du hard (18)Cartouche Telestrat, extension ram 64K

    Article issu de : https://www.oric.org/ftp/ceo/ceomag/downloads///1999/ceomag/03_march//107-04-06.pdf

    Par Claude S et André C

    Et pour commencer, un petit ERRATUM. Le troisième schéma (Cartouche de type 3 banques) de la figure 4, du Journal du Hard n°16 comporte une erreur. En effet, la résistance 4,7 Kohms ne doit pas être reliée à la broche 27 (A14), mais à la broche 28 (+TV). Les lecteurs attentif on réctifié d’eux-mêmes, d’autant que les schémas situés de part et d’autre montraient eux, la bonne connexion !

    L’EXTENSION RAM 64K Version 1.0 pour ORIC TELESTRAT

    Cette extension RAM fut une bien belle invention permettant de faire cohabiter les DOS et les applications sur le port gauche et 4 banques de 16Koctets de RAM sur le port droit. La mention “version 1.0” rappelle que cette cartouche RAM était livrée, non seulement avec une notice de 12 pages, mais aussi avec une disquette contenant des programmes pour exploiter cette extension mémoire.

    Par exemple, INSTAL.COM permet d’installer un disque virtuel occupant toute la RAM (en théorie 64koctets soit 256 secteurs mais en pratique seulement 248 secteurs car la gestion de ce disque virtuel consomme un peu de mémoire). INSTALTEL.COM permet d’installer la banque TELEMATIC en RAM. En effet, la cartouche RAM prend la place de la cartouche TELEMATIC dans le port droit. La mémoire utilisée pour la banque TELEMATIC est prise sur le disque virtuel dont la capacité diminue de 32 secteurs (8 koctets).

    D’autres utilitaires ou informations, permettent de gérer cette extension RAM à partir du Langage Machine ou à partir du langage FORTH (accès direct aux banques de mémoire dans les deux cas). Enfin, des programmes supplémentaires permettent de gérer le disque virtuel (par exemple pour pouvoir utiliser la commande COPY dans ce contexte spécial) et une fonction de récupération de disque virtuel après un reset (mais pas une extenction).

    Quel luxe de disposer de mémoire supplémentaire : le TELESTRAT affiche bravement 128 koctets de RAM ! L’extension RAM autorise aussi l’utilisation d’un disque virtuel beaucoup plus véloce qu’un disque réel : pour lire 100 fiches de 100 caractères, le RAM-DISK met 6s au lieu de 80s pour le lecteur de disquette !

    Comment est faite la cartouche ?

    Elle utilise le même circuit imprimé que les cartouches d’EPROM et est équipée de deux circuits intégrés de type 43256 ou 62256 soudés en parallèle, broche à broche, comme dans le cas des cartouches à 3 banques (STRATORIC par exemple). Toutes les broches, sauf les broches 1 et 20 …

    Comme dans le cas des EPROM, la broche 20 correspond à la fonction CE (Chip Enable, c’est à dire validation du circuit intégré). La broche 1 est l’homologue de la broche 27 des EPROM, c’est la ligne d’adressage A14, le principe pour piloter les 4 banques est identique à ce que nous avons décrit précédemment pour une cartouche à 4 banques. Et pour cause, puisque c’est une cartouche à 4 banques ! Seuls changent certaines numéros de broches du circuit intégré et du connecteur de cartouche (puisqu’il s’agit maintenant d’une cartouche pour port droit).

    Voici donc une comparaison cartouche “64K EPROM” versus cartouche “64 K RAM”. Puisqu’il faut pouvoir booter, l’eprom est évidemment destinée au port gauche et la RAM ne peut être présente que sur le port droit.

    Type de cartouche2 EPROM 27256 (cartouche gauche)2 RAM 43256 (cartouche droite)
    numéro des broches du circuit intégré20 (CE) Chip Enable
    27 (A14) ligne adress.
    20 (CE) Chip Enable
    1 (A14) ligne adress.
    27 (WE) Write Enable
    Numéro des broches du connecteur de la cartouche2B (CS0) -> banque 7
    1A (CS1) -> banque 6
    2A (CS2) -> banque 5
    3A (CS3) -> banque 4
    3A (CS0) -> banque 4
    2B (CS0) -> banque 3
    1A (CS0) -> banque 2
    2A (CS0) -> banque 1
    2B (CS0) Write Enable
    Détrompeur du connecteurA l’emplacement de la broche 4A l’emplacement de la broche 14

    L’interconnexion de la puce et du connecteur est réalisée par le même circuit imprimé, qui n’a subit que de légères modifications dont le principe est donné à la figure 7. La réalisation pratique est faite avec des fils “volants” et une piste coupée I Le condensateur de lOOnF était absent sur la cartouche de RAM que nous avons autopsiée et c’est un tort. Par contre un fil fin relié à la masse a été ajouté, qui court le long du “ventre” de la RAM B et qui sert de blindage protégeant contre les champs électromagnétiques générés par la carte mère. C’est un peu rustique et il serait possible de faire mieux, par exemple avec une feuille métallique.

    RÉALISATION PRATIQUE

    Trois cas de figure :
    a) Vous partez de rien et alors nous vous conseillons plutôt d’attendre un de nos prochains articles qui décrira la “big-cartouche” de François S Cette “big-cartouche” représente vraiment la solution idéale
    b) Vous avez une cartouche RAM grillée. Il vous faudra remplacer les 2 puces en employant la manière forte que nous avons décrite précédemment (à base de pince coupante et de mine de mini-critérium). Si ce genre d’opération vous térrifie, appeler-nous à votre secours.
    c) Vous voulez ré-utiliser une cartouche grillée de type EPROM. Vous aurez à la transformer en cartouche RAM Cette opération n’est pas difficile, mais il faut avoir un peu de pratique de l’électronique II vous faudra remplacer l’EPROM (ou les EPROM) par deux RAM 43256 ou 62256 (pour la procédure d’ “extraction” des puces voir notre article précédent). Puisque l’étendue des travaux à effectuer dépend du type de cartouche dont vous partez (cartouche à 1,2, 3 ou 4 banques), nous nous contenterons de lister les connections dont il faut vérifier l’existence et qu’il faut éventuellement effectuer si elles ne sont pas présentes (suivez sur la figure 7, sinon vous ne comprendrez rien) :
    1 ) Liaison de la broche B2 (CS4) du connecteur de la cartouche à la broche 20 (CE) de la RAM A par l’intermédiaire d’une diode 1N4148 (située à l’emplacement marqué “D2” sur le circuit imprimé)
    2) Liaison de la broche A1 (CS5) du connecteur de la cartouche à la broche 20 (CE) de la RAM A par l’intermédiaire d’une diode 1N4148 (située à l’emplacement marqué “D1” sur le circuit imprimé) En outre, la broche A1 (CS5) sera également reliée directement à la broche 1 (A14) de la RAM A (faire tout simplement un petit pont de soudure entre la piste concernée et la broche 1).
    3) Liaison broche A2 (CS6) du connecteur à la broche 20 (CE) de la RAM B par l’intermédiaire d’une diode 1N4148 (en “volant” : une patte de la diode est soudée sur A2, l’autre est prolongée par un fil “F” qui passe coté composants au travers d’un des nombreux oeillets de la carte, avant d’être soudé sur la broche 20 de la RAM B)
    4) Liaison broche A3 (CS3) du connecteur à la broche 20 (CE) de la RAM B par l’intermédiaire d’une diode 1N4148 (également en “volant”. une patte de la diode est soudée sur A3, l’autre est soudée au fil “F” ci- dessus En outre, la broche A3 (CS3) sera également reliée directement à la broche 1 (A14) de la RAM B (fil “volant”).
    5) Liaison directe de la broche B3 (WE) du connecteur aux broches 27 (WE) des deux RAM (fil “volant” direct).
    6) La broche 20 (CE) de la RAM A sera également tirée au +5V par une résistance de 4,7 kohms (située à l’emplacement marqué “R1” sur le circuit imprimé)
    7) De même la broche 20 (CE) de la RAM B sera tirée au +5V par une résistance de 4,7 kohms (soudée directement entre les broches 20 et 28 de la RAM B).
    8) Un condensateur de 100 nF doit être présent à remplacement marqué “C1” sur le circuit imprimé
    9) Un blindage (un simple fil semble suffire !) sera connecté à la masse (par exemple en partant du pied de “C1” le plus proche des connecteurs de la cartouche) et installé sur le “ventre” de la RAM B (un peu de colle permet de le maintenir en place sur la puce).
    10) La piste du circuit imprimé qui connectait les broches 1 des deux puces au +5V sera interrompue (un petit coup de meule ou de cutter à l’emplacement indiqué dans la figure 5 de notre article précédent).
    Voilà, cela fait un peu bricolage, mais c’est exactement ce qui sortait de l’usine Oric ! Comme il y a longtemps qu’on n’en trouve plus sur le marché, il faut bien se charger soit même de la modification. Notez qu’il vous faudra souder les RAM, car il est impossible de placer un support de circuit intégré des deux cotés du circuit imprimé (encombrement rédhibitoire).
    Vérifiez aussi que votre cartouche RAM a bien le détrompeur pour port droit. Il existe malgré tout quelques cartouches d’origine Oric qui furent correctement construites, c’est à dire avec un seul détrompeur ! Si ce n’est pas le bon, il vous faudra effectuer un trait de scie à l’emplacement de la piste 14 (mini-meule ou à la rigueur scie à métaux) pour pouvoir insérer votre cartouche RAM dans le port droit.
    Pour tester et utiliser votre cartouche, vous aurez besoin de la disquette “EXTENSION RAM64K” ou de la cartouche TELE-ASS pour port gauche Si vous n’êtes pas un as de la programmation, n’hésitez pas à nous appeler au secours

  • Librairie du CEO

    https://ceobeta.oric.org/doku.php?id=private:librairie

    par André C.

    Trois nouveaux titres sont téléchargeables dans la Librairie du CEO. Ces 3 titres sont disponibles au format PDF et ont été OCRisés, ce qui améliore les recherches par mots. Ce sont :

    • Oric et son micro-processeur 6502, François Normand & Frédéric Blanc, Micro-Programmes 5, 1984. Le fichier disponible « pèse » 74,7 Mo.
    • Tout savoir sur Atmos, Roger Politis & Bruno Vanryb, Eyrolles, 1984. Le fichier « pèse » 64,0 Mo.
    • Programmation Structurée en Assembleur 6502, Jean-Pierre Malengé, Louis Andréani et Philippe Collard, Masson, 1987. Le fichier « pèse » 48,1 Mo.

    Ceci porte à 77 le nombre de livres de la bibliothèque du CEO. En voici la liste :

    • 60 Solutions pour Oric-1 + Atmos, Rémy Schulz, Micro-Systèmes / ETSF, 1985
    • A la découverte du Telestrat, Patrice Guerrin, Oric International, 1987
    • Apprendre le Basic sur Oric, H. Cohen Solal, ASN Diffusion, 1983
    • Atmos F83 v2.0 Mini-manuel utilisateur, Michel Zupan, 1987
    • Atmos Forth programming manual, Andy Biggs et Paul Kaufman, 1984
    • Atmos-Oric1, manuel de référence, André Chenière, IS Editions, 1984
    • Atmos-Oric1, manuel de référence 2, travaux pratiques, André Chenière, IS Editions, 1985
    • Au coeur de l’Oric Atmos, Gilles Bertin, A. R. G. Informatique, 1984
    • Clefs pour l’Oric (Oric-1 et Atmos), Emmanuel Flesselles, PSI, 1984
    • Codigo Maquina Oric-1 Atmos, Ramon Cererols, 1984
    • Cumana Disk Drive Guide, 52 pages, Cumana Ltd, 1985
    • Des extensions à construire pour votre Oric Atmos, Patrick Garec, Cyril Vignet, Eyrolles, 1985
    • Euphoric et Ftdos Jasmin, Roger Barbier, Club Europe Oric, 2001
    • Euphoric Reference Manual v0.99n, Fabrice Francès, 1999
    • Euphoric Reference Manual v1.019, Fabrice Francès, 2014
    • Extension Ram 64 Ko pour Oric Telestrat V1.0, Fabrice Broche, Oric International, 1987
    • Forth 83-standard v2.4 pour Telestrat, Thierry Bestel, 198x
    • Forth pour Oric, Oric France & Soracom Editions, 1983
    • Getting more from your Oric, Henry Hicks, Sigma Technical Press, 1984
    • Interfaces pour Oric-1 et Atmos, M. Levrel, Soracom Informatique, 1984
    • Jeux sur Oric, David Chane-Hune et François Darbois, Edimicro, 1983
    • L’assembleur de l’Oric-1 et Oric-Atmos, Programmation en langage machine, Marcel Henrot, PSI, 1984
    • L’Oric à nu, Fabrice Broche, Soracom Informatique, 1986
    • Le T-DOS et ses fichiers pour Oric-1 et Atmos, P. Beaufils & C. Arnaud, Tran, 1984
    • Learning to use the Oric 1 computer, Steven Blake, Gower Publishing Company, 1983
    • Manuel d’utilisation du Microdisc Oric et du Sedoric, F. Broche & G. El Andaloussi, 1985
    • Manuel de Oric Atmos, Ian Adamson, ASN Diffusion, 1984
    • Manuel de référence Euphoric v0.99n, Fabrice Francès, 1999
    • Manuel de référence Euphoric v1.019, Fabrice Francès, 2014
    • Manuel de référence Oric LISP, Fabrice Francès, 1986-1995
    • Manual for Cumana DOS and Disassembly for RipDOS v2.9, Jim Polmear, 2006
    • Manuel Randos v1, résumé de Fabrice Francès, 1998
    • Manuel Randos v2, Fabrice Francès, 1998
    • Manuel technique pour les ordinateurs Oric-1 et Oric Atmos (trad. Romuald Liné), Oric Int. Ltd, 1984
    • Manuel technique pour les ordinateurs Oric-1 et Oric Atmos Compl. (trad. R. Liné), Oric Int. Ltd, 1984
    • Manuel Tele-Forth v1.2 Langage pour Oric Telestrat, Ch. Lavarenne et Thierry Bestel (v 1.2), 1995
    • Microtan 65 – BASIC User Manual, Tangerine Computer Systems Limited, 19xx
    • Microtan 65 – Quick Guide, Tangerine Computer Systems Limited, 19xx
    • Microtan 65 – Tandoc, issue3, Microtan owner user group, 19xx
    • Microtan 65 – Tandos 65 manual, Tangerine Computer Systems Limited, 1982
    • Microtan 65 – Tandos Commands, Fabrice Francès, 19xx
    • Microtan 65 – TANEX Manual (OCR), Tangerine Computer Systems Limited, 19xx
    • Microtan 65 – Tangerine User Group newsletter 26, TUG, 1982
    • Microtan 65 – User Manual, Tangerine Computer Systems Limited, 1979
    • Microtan 65 – XBUG Manual (OCR), Tangerine Computer Systems Limited, 19xx
    • NMOS 6510 Unintended Opcodes no more secrets, Groepaz/Hitmen, 2014
    • Oric Atmos and Oric 1 Graphics and Machine code techniques, Geoff Philips, McGraw Hill, 1984
    • Oric Atmos complément au manuel de programmation BASIC, I. Adamson & L. Agostini, ASN, 1984
    • Oric Atmos Manual, Ian Adamson, Pan Books / Oric Products International Ltd, 1984
    • Oric Atmos vos programmes, Michel Bussac & Gil Espèche, Cedic/Nathan, 1984
    • Oric Atmos, votre micro-ordinateur, Michel Bussac, Cedic/Nathan, 1984
    • Oric et son micro-processeur 6502, François Normand & Frédéric Blanc, Micro-Programmes 5, 1984
    • Oric MCP40 colour printer operation manual, Oric Products International , 1983
    • Oric MCP40 imprimante couleur, manuel d’utilisation, ASN diffusion, 1983
    • Oric Microdisc Manual, Oric Products International, 1984
    • Oric Telestrat, Index de l’Hyper-Basic, Fabrice Broche & George El Andaloussi, Oric Int., 1986
    • Oric Telestrat, manuel des applications télématiques, Pascal Cusset, Oric International, 1986
    • Oric, l’histoire sans fin, 2e édition, Jonathan Haworth (trad. A. Gilbert, R. Barbier et L. Chiacchiérini)
    • Oric, the story so far, second edition, Jonathan Haworth, 1989-1992
    • Oric-1 Basic programming manual, John Scriven, Ed. for Oric by Sunshine Publications Ltd, 1983
    • Oric-1, manuel de programmation Basic, John Scriven, ASN Diffusion, 1983
    • OricLISP Reference Manual, Fabrice Francès, 1986-1995
    • Package Stratoric V1.0 pour Oric Telestrat, Fabrice Broche, Oric International, avril 1987
    • Petit Manuel de Sedoric 3.0 et de ses utilitaires, André C., CEO-mag 176, décembre 2004
    • Programmation Structurée en Assembleur 6502, J.-P. Malengé, L. Andréani & Ph. Collard, Masson, 1987
    • Sedoric 3.0 à nu, André Chéramy, CEO, 1998
    • Sedoric 3.0 and utilities Short Manual, André C., trad. Laurent C. & J. Haworth, CEO-mag, nov 2004
    • Service manual for the Oric-1 and Oric Atmos microcomputers, Oric Products Int. Ltd, 1984
    • Tele-Ass – Assembleur symbolique pour Oric Telestrat, Pierre Grenet, Oric International, 1987
    • Telestrat – Système m’était conté, Guillaume Meister, Compaction-Software, 1990
    • Telestrat à coeur ouvert, Guillaume Meister, AEDIT, 1988
    • Telestrat, Manuel d’utilisation v1.2, Oric International / Eureka Informatique, 1986
    • Tout savoir sur Atmos, Roger Politis & Bruno Vanryb, Eyrolles, 1984
    • Visa pour Oric, Frédéric Blanc et François Normand, Soracom/ASN Diffusion, 1983
    • XL Dos Extended Basic Dos, D.Sebbag et F.Broche, 198x

    Pour télécharger sur la page du CEO : vous devez vous munir de l’identifiant et du mot de passe que vous utilisez habituellement pour télécharger votre CEO-mag.
    Tous ces livres et manuels Oric sont également disponibles (site miroir) sur la page :

    http://andre.cheramy.net/telechargement/Librairie/wxcv.htm

  • Retour sur la mise en œuvre du PSG AY3-8912

    par Andre C.

    Dans certaines de mes expérimentations musicales récentes (par exemple MereMichel2, qui utilise la commande SOUND), j’ai été amené à ajouter un CALL#C4B7 en fin de programme. Il s’agit d’une sorte de pseudo END qui permet de sortir du programme en évitant le “Ready” et surtout le parasite sonore qui l’accompagne (une sorte de “PEUP”). Impossible de trouver la cause de ce parasite.

    En cherchant autre chose, je suis tombé sur la citation suivante : “Le fait crucial suivant ne figure dans aucun manuel : Au boot et lors de chaque retour à l’interpréteur BASIC, le canal 1 est validé (mais ni le 2, ni le 3, ni le bruit). C’est comme si un PLAY 1,0,0,0 était exécuté. Ceci explique pourquoi les essais que l’on peut faire sur le canal 1 ne marchent pas toujours lors de leur mise en application ultérieure. Par exemple au “Ready”, un MUSIC 2,3,10,9 ne produit rien, alors que MUSIC 1,3,10,9 produit bien un LA de l’octave 3. Si le bit 3 de #26A est à zéro (bruit clavier actif) alors PLAY 1,0,0,0 est envoyé à chaque “Ready”. Si le bit 3 est à un (clavier muet) alors c’est le dernier PLAY qui reste valide (comme en mode programme) tant qu’on n’envoie pas un nouveau PLAY ou qu’on ne coupe pas l’alimentation électrique du PSG.

    Ceci se trouve dans l’article “PLAY, MUSIC, SOUND, une mise au point effectuée par André C., Dominique P. et Claude S.” (CEO-mag n°119, pages 25-39). En fait, Dominique est le père de cette observation étonnante, ce qui explique peut-être que je ne l’avais pas gardée en mémoire.

    Le fait crucial suivant ne figure dans aucun manuel : Au boot et lors de chaque retour à l’interpréteur BASIC, le canal 1 est validé (mais ni le 2, ni le 3, ni le bruit). C’est comme si un PLAY 1,0,0,0 était exécuté. Ceci explique pourquoi les essais que l’on peut faire sur le canal 1 ne marchent pas toujours lors de leur mise en application ultérieure. Par exemple au “Ready”, un MUSIC 2,3,10,9 ne produit rien, alors que MUSIC 1,3,10,9 produit bien un LA de l’octave 3. Si le bit 3 de #26A est à zéro (bruit clavier actif) alors PLAY 1,0,0,0 est envoyé à chaque “Ready”. Si le bit 3 est à un (clavier muet) alors c’est le dernier PLAY qui reste valide (comme en mode programme) tant qu’on n’envoie pas un nouveau PLAY ou qu’on ne coupe pas l’alimentation électrique du PSG.
    Ceci se trouve dans l’article “PLAY, MUSIC, SOUND, une mise au point effectuée par André C., Dominique P. et Claude S.” (CEO-mag n°119, pages 25-39). En fait, Dominique est le père de cette observation étonnante, ce qui explique peut-être que je ne l’avais pas gardée en mémoire.


    Comme ce phénomène me chiffonnait toujours, j’ai effectué quelques recherches. Voici les observations que j’ai pu faire :
    1) Les sons parasites produits dépendent de la configuration. On peut bien sûr les entendre avec un Atmos seul (configuration 1), mais ils sont plus importants dans la configuration Atmos+Microdisc+Sedoric (configuration 2). Ainsi, dans la configuration 2, si l’on remplace le CALL#C4B7 final par un END, le programme modifié produit un “PEUP” en rendant la main. Par contre avec la configuration 1, le même programme modifié de la même manière rend la main sans produire de parasite sonore. Curieux non?
    2) Les sons parasites produits dépendent des commandes utilisées. Par exemple, les deux programmes MereMichel1 et MereMichel2 sont quasi identiques et produisent les mêmes sons, sauf que le premier utilise la commande MUSIC et reste silencieux après le retour au “Ready” (configuration 2), alors que le second utilise la commande SOUND et nécessite l’ajout du fameux CALL#C4B7 pour bloquer le disgracieux “PEUP”(toujours avec la configuration 2).
    3) La manière dont on termine le programme joue aussi. Curieusement, ajouter une commande END en fin de programme est souvent toxique. Si nécessaire, mieux vaut sortir avec un CALL#C4B7 ou alors effectuer un reset des registres du PSG (voir plus loin la routine RSETPSG).
    4) Si on utilise un Oric réél ou un émulateur.
    Je ne suis pas allé plus loin dans la recherche des causes du phénomène, découragé par l’hétérogénéité des conditions dans lesquelles il se produit.
    Mais le problème vient sans doute en grande partie du fait que les 14 registres du PSG sont latchés (verrouillés), ce qui veut dire que la valeur qu’on y écrit y reste jusqu’à ce qu’on en écrive une autre ou que l’on coupe le courant.
    Selon la configuration, les commandes musicales utilisées et la manière dont on termine le programme, il est difficile de savoir ce qu’il y a dans ces 14 registres. Certes un PLAY 0,0,0,0 semble tout couper, mais en apparence seulement car seul le registre 7 est mis à jour, sans nettoyage des 13 autres registres. Ce registre 7 sert à valider les canaux actifs. Les bits 0, 1 et 2 contrôlent respectivement les canaux 1, 2 et 3 ; les bits 3, 4 et 5 mixent le bruit blanc aux canaux 1, 2 et 3. Attention, pour valider un canal, il faut mettre le bit correspondant à 0. Par conséquent la commande PLAY 0,0,0,0 envoie la valeur #3F (111111 en binaire) dans le registre 7 ce qui bloque toutes les sorties ! Je ne suis pas à l’origine de cette conception tordue et j’espère que vous avez suivi !
    Quand on revalide un canal (ou quand on retourne au “Ready”, ce qui revalide le canal 1), on peut alors entendre s’exprimer ce que le PSG a dans le ventre, même si ce n’est ni voulu, ni agréable !
    Je ne vois qu’une seule solution à ce problème : neutraliser tous les registres du PSG !

    Registre 0 et 1 : Tonalité canal 1 (de #00 à #0FFF) mettre à #0000
    Registre 2 et 3 : Tonalité canal 2 (de #00 à #0FFF) mettre à #0000
    Registre 4 et 5 : Tonalité canal 3 (de #00 à #0FFF) mettre à #0000
    Registre 6 : Tonalite bruit blanc (de 0 a $1F) mettre à #00
    Registre 7 : Contrôle des canaux en service (de #00 à #3F) mettre à #3F
    Registre 8 : Volume canal 1 (de #00 à #10) mettre à #00
    Registre 9 : Volume canal 2 (de #00 à #10) mettre à #00
    Registre 10 : Volume canal 3 (de #00 à #10) mettre à #00
    Registre 11 et 12 : Durée du son (de #00 à $FFFF) mettre à #0000
    Registre 13 : Forme de l’enveloppe (de #00 à #0F) mettre à #00

    Ceci peut se faire à l’aide de la petite routine en assembleur RSETPSG ci-dessous :

    ; Routine RSETPSG pour neutraliser les 14 registres du PSG AY3-8912
    ; Cette routine sera appelée par CALL STP (soit #980E si la routine est implantée en #9800)
    org $9800 ; Exemple d'adresse d'implantation de la routine
    DATA db $00, $00, $00, $00, $00, $00 ; Tonalite canaux A, B et C (de 0 a $0FFF)
    db $00 ; Tonalite bruit blanc (de 0 a $1F)
    db $3F ; Canaux C+br, B+br, A+br, C, B, A)
    db $00, $00, $00 ; Volume canaux A, B et (0 a $0F, -> enveloppe si $10)
    db $00, $00 ; Durée du son (de 0 a $FFFF)
    db $00 ; Forme de l'enveloppe (de 0 à 7)
    STP ldx #LOW DATA ; Adresse des 14 valeurs
    ldy #HIGH DATA ; à envoyer au PSG
    jmp $FA86 ; Routine en Rom "écrire dans les 14 registres du PSG"
    EOF


    Il est évidemment possible de POKEr les octets correspondants avec un programme Basic :

    100 FOR K=#9800 TO #9814:READ V:POKE K,V:NEXT
    200 DATA 0,0,0,0,0,0,0,#3F,0,0,0, 0,0,0,#A2,#00,#A0,#98,#4C,#86,#FA
    300 SAVE"RSETPSG",A#9800,E#9814

    La routine est relogeable si on assemble le programme source à une autre adresse ou si on met à jour manuellement les octets du LDX #00 (ici #A2,#00) et ceux du LDY#98 (ici #A0,#98) afin de cibler la nouvelle adresse d’implantation.
    La différence entre ces 2 CALL est que le CALL#C4B7 (routine de la Rom) rend la main (sans afficher le “Ready”), alors que le CALL#980E (routine RSETPSG en Ram) permet de rester dans le programme et éventuellement d’en sortir plus proprement. Ces deux remèdes devraient résoudre vos éventuels problèmes. N’hésitez pas à faire connaître vos tribulations musicales…

  • Blasto

    Mars 2014, l’acte 4 des développements retrouvés de Dan Cresp sur Oric. Cette fois-ci, le développement a été limité au Commodore, au MSX et la notre petite machine en rouge et noir

    Infos générales

    Le développement de la version ORIC est issu de la version MSX.

    Le MSX, armé de son Z80 et son Basic Microsoft

    En l’absence de temps libre, l’auteur a profité de trajets en train pour programmer le jeu avec la version MS-DOS de l’émulateur EUPHORIC. En effet, la saisie de programme est très facilitée avec cet émulateur qui accepte l’utilisation du clavier au format du PC (NDLR : j’ai toujours été ennuyé avec le clavier proposé par Oricutron sur la ROM Atmos de base). Le TAP a été crée avec “Oricutron” sous Windows, j’ai généré le listing dans un fichier texte et je l’ai commenté plus tard.

    Le listing de cette version est très similaire, et certaines parties sont identiques, à celle de la version MSX ; tout en prenant en compte les particularités de chaque système. Ainsi, l’adresse de la mémoire vidéo et la méthode de lecture des commandes du navire ont été modifiées. Certaines lignes ont été dépliées pour éviter des problèmes avec le “bogue” de l’instruction ELSE de l’Oric.

    C’est un excellent exemple pour comparer les performances de ces deux systèmes, et bien que les deux versions fonctionnent parfaitement, le MSX a dû “ralentir” pour éviter que ce ne soit trop rapide tandis que pour l’Oric, cela n’a pas été nécessaire.

    À cet égard, je dois reconnaître que même si la vitesse est parfaite, je m’attendais à de meilleures performances coté ORIC. Gardez à l’esprit que, dans les deux versions, POKE se trouve directement dans la mémoire vidéo pour gagner du temps et qu’il n’y a pas beaucoup de lignes de code à exécuter, sauf dans le cas d’une explosion dans une mine ou d’une mine à chaînes, et dans l’ORIC, il en jette juste assez.

    Vous êtes plutôt Oric ou Arcade ?

    Principaux écarts par rapport à l’arcade d’origine:

    • Le jeu original autorise 2 joueurs simultanés et un seul ici.
    • L’écran a 28 lignes et ici il y en a 26 (22 en MSX).
    • Dans le jeu original, il y a 84 mines et ici 78 (64 en MSX), l’aire de jeu étant un peu plus petite.
    • Les graphiques sont légèrement différents de la version originale.
    • Cette version ne permet pas l’utilisation du joystick.

    Pour le reste, la mécanique du jeu a été pleinement respectée.

    Les petites choses de la version ORIC
    Comme toujours lors de la programmation sur l’ORIC, les graphismes ont dû être repensés car au lieu de la matrice habituelle de 8×8 pixels, nous passons à une matrice de 8×6. Ainsi, l’explosion (qui occupe 9 blocs) a dû être coupée à 6 pixels horizontalement, le navire a dû être redessiné pour le laisser dans une taille réelle de 5×5 pixels et les mines ont une apparence différente.

    La magnifique aire de jeu de l’Oric

    Étant donné que l’ORIC dispose d’un mode texte de 26 lignes et de 40 colonnes, l’apparence de la zone de jeu est presque identique à celle de la version arcade.

    Pour le contrôle du navire, le clavier est lu à l’aide d’un “PEEK 520”, ce qui évite les problèmes de boîtier.

    Et pour le son, une fois encore, j’ai tiré les prédéfinis de l’ORIC.

    Réaction en chaîne
    Le jeu est techniquement très simple et la seule difficulté est de savoir comment résoudre le problème des explosions de mines à chaînes, car il peut facilement y avoir 2 mines ou plus ensemble. Pour cela, j’ai créé une matrice de 78 éléments (un par mine) avec deux pointeurs: “M” et “N”.

    Lorsque notre tir détecte que nous avons touché une mine, il augmente le pointeur «N», enregistre sa position dans la matrice et l’efface de l’écran. Les positions autour sont examinées ci-dessous. Chaque fois qu’une autre mine est trouvée, la même action est effectuée.

    A la ligne 140, nous voyons si le pointeur “M” est inférieur à “N” et si c’est vrai, nous allons à la routine qui les fait exploser, en augmentant le pointeur “M”.

    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 a été divisé en 10 blocs:

    • Déclaration de matrice. Appel aux routines principales.
    • Contrôle des navires.
    • Contrôle du tir.
    • Fin du jeu.
    • Le coup a touché quelque chose.
    • Détruire une mine.
    • Perdre une vie.
    • Présentation et début du jeu.
    • Plusieurs routines.
    • DATA avec les UDG du jeu et la conception de la zone de jeu.

    L’ensemble du programme occupe 73 lignes.

    Ensuite, j’indique le principe des différentes parties du programme:

    • 10 – Nous définissons les matrices du jeu.
    • 50 – Accédez au sous-programme qui lit les graphiques, redéfinit les caractères et définit les variables globales et le mode vidéo.
    • 100 – Début de la boucle principale.
    • 102 – Le clavier est consulté et si aucune touche n’est enfoncée, il passe à 140.
    • 110 – Le navire se déplace en fonction de la touche enfoncée.
    • 140 – S’il y a une mine en attente d’exploitation, reportez-vous à la routine 350 correspondante.
    • 150 – Contrôle de tir. S’il est actif, passez à 160 et si ce n’est pas le cas, vérifiez si le déclencheur a été enfoncé
    • 160 – Déplacez le coup en fonction de sa direction.
    • 190 – Le temps disponible pour terminer le jeu est réduit.
    • 200 – Si le temps le permet, passez à 100.
    • 205 – Fin de partie où il est contrôlé si le record est dépassé et si toutes les mines ont été détruites.
    • 300 – Contrôle que vous avez touché le coup.
    • 350 – Routine qui contrôle la destruction des mines à chaînes.
    • 400 – Une mine a explosé à proximité et notre navire est détruit.
    • 2000 – Écran initial du jeu.
    • 2500 – Initialise les variables pour le jeu et la routine qui place les mines.
    • 2600 – Position initiale de notre navire.
    • 2700 – Routine qui montre le labyrinthe de points à l’écran, sans les mines.
    • 3000 – Sélection des couleurs, effacement de l’écran, masquage du curseur et masquage des «CAPS» supérieurs.
    • 3010 – Lire les données UDG.
    • 3015 – Lecture des DONNEES des segments de l’aire de jeu.
    • 5100 – Routine montrant le marqueur de point.
    • 5400 – Routine indiquant la fin du jeu ou un message de jeu gratuit.
    • 9000 – DONNÉES avec graphiques UDG.
    • 9100 – DATA avec les différentes lignes qui composent l’aire de jeu.

    Le jeu

    Ce jeu vidéo pour systèmes d’arcade a été développé en 1977 par la société Gremlin.

    L’objectif du jeu est de détruire toutes les mines du champ de mines avant la fin du temps imparti. Pour cela, nous avons un navire que nous pouvons déplacer à travers les zones vides de l’écran et qui peut tout détruire. Il faut faire attention, car lorsque les mines explosent, elles détruisent ce qui les entoure.

    Si nous atteignons notre objectif, nous aurons un jeu gratuit.

    Contrôles:

    • Contrôler le navire avec Q – A – O – P.
    • Appuyez sur la “espace” pour tirer.

    Quelques autres versions

    Blasto sur MSX
    et sur Commodore
  • Une petite curiosité dans Théoric

    par André C.

    Une info erronée et hop, la légende est en marche!

    L’article bien connu “Votre Oric fait du bruit” paru dans Théoric n°1, page 6 concerne l’Oric-1 mais en fait ça marche aussi (avec plus ou moins les mêmes résultats) sur l’Atmos. L’auteur (anonyme) est parvenu à produire des sons avec des CALL inappropriés dans la Rom. Je dis inappropriés car les adresses signalées comme produisant des sons (et effectivement ça marche) tombent souvent au milieu d’une routine (et même entre opcode et argument), voir au milieu d’une table de data (un CALL dans les data, faut le faire!). Incroyable, mais authentique !

    Le fait que l’Oric puisse produire des sons lorsqu’on fait n’importe quoi est plus que surprenant. En fait l’auteur a fait plein d’essais et ne rapporte que ceux “qui marchent”. Si vous avez du temps à perdre, vous pouvez chercher à comprendre pourquoi ça ne plante pas avec les exemples cités.
    La mode de la chasse aux sons était lancée. Par la suite, des auteurs un peu plus rationnels ont cherché à produire des sons en exploitant la routine #FA6C (Oric-1) ou #FA86 (Atmos). Cette routine, appelée “Envoyer 14 paramètres au PSG 8912“, exploite les registres X et Y du 6502, qui ciblent l’adresse d’une table contenant 14 paramètres pour les registres du PSG 8912. La routine se charge donc d’écrire ces 14 paramètres dans les 14 registres du PSG.
    Là ou çà cloche, c’est que ces auteurs ont utilisé les valeurs de X et Y, non pas comme adresse d’une table de paramètres, mais comme paramètres en soit. Les articles “Bruits sur Oric-1” de Bruno Trinquier de la Valette (Théoric n°4 page 56), “Bruits sur Atmos” de Bruno Bouchaud (Théoric n°7, page 39) souffrent de cette erreur. Il ne suffit pas de donner une valeur de #00 à #FF aux registres X et Y pour obtenir 65 536 possibilités de bruits! Ce n’est que par hasard que l’adresse ciblée par X et Y tombe dans une zone de la mémoire qui contient 14 valeurs acceptables par le PSG. Dans la plupart des cas, ça ne marche pas ou ça donne des bruits inexploitables ou ça plante!
    En effet, les 5 sous-programmes PING, SHOOT, EXPLODE, “Bruit clavier touches normales” et “Bruit clavier touches de contrôle” utilisent cette routine couplée à 5 tables de 14 paramètres appropriés à chacun de ces 5 sons. Notez que ZAP utilise également cette routine couplé à une 6e table de paramètre, mais cette commande est compliquée par un post traitement du son.
    Heureusement, plusieurs lecteurs de Théoric ont signalé le problème et l’article “Toujours des bruits” de Gilles Clavequin (Théoric n°11, page 36 et 37) remet un peu d’ordre dans tout cela. Cet auteur reprend la liste des 14 registres du PSG, rappelle à quoi ils servent et la gamme de valeurs possibles que l’on peut y écrire. Quelques exemples illustrent cette petite introduction théorique. L’auteur fournit quatre tables de 14 paramètres (2 pour l’Oric-1 et 2 pour l’Atmos), permettant de générer deux nouveaux sons PONG et PCHHH. Ces tables sont mises en oeuvre grâce à la routine “Envoyer 14 paramètres au PSG8912“. Il faut bien sûr implanter tables et routine en Ram pour découvrir ces nouveaux sons. Vous trouverez le programme de Gilles Clavequin dans le fichier PONGPCHHH.TAP accompagnant cet article.
    Pour en revenir aux expériences de Bruno Trinquier de la Valette et Bruno Bouchaud, ces auteurs ont quand même réussi à repérer (parmi les 65 536 possibilités de bruits !) quelques sons intéressants. Pour quelqu’un de patient, il serait possible d’aller voir ce qu’il y a dans la mémoire aux adresses correspondantes et de recopier soigneusement les 14 octets qui s’y trouvent. Cela pourrait servir de base à la mise au point de sons plus propres en peaufinant les valeurs pour qu’elles soient mieux adaptées aux registres correspondants du PSG. Bon courage et n’oubliez pas de partager vos trouvailles…

    Mise en oeuvre du fichier PONGPCHHH.TAP correspondant au listing de Théoric n°11 : Avec Oric-1 faire CALL#A000 pour obtenir un PONG et CALL#A007 pour obtenir un PCHHH (qui ressemble plutôt à TCHHH). Avec Atmos faire CALL#A00E pour obtenir un PONG et CALL#A015 pour obtenir un PCHHH.

    Bibliographie

    N’hésitez pas à consulter les excellents articles parus dans le CEO-mag sur la production des sons par l’Oric et notamment, parmi de nombreux autres :

    • “Interruptions musicales” de Dominique P. (n°99, pages 20 à 22).
    • “PLAY, MUSIC, SOUND” d’André C., Dominique P. et Claude S. (n°35 à 39).
    • “Musique Maestro !” de Mickaël P. (n°143, pages 18 à 20; n°144, pages 13 à 15).
    • “Assembleur et sons sur Oric-1/Atmos” de François L. (n°22, pages 5 et 6).
    • Les articles de Jean-Marie H. (n°26, page 13; n°27, page 16; n°29, page 9; n°31, page 6; n°34, page 13; n°35, pages 13 et 14; n°37, page 10; n°38, pages 7 et 8; n°42, page 9).
    • “Musique pour votre Oric” d’Alain W. (n°79, pages 4 à 6; n°80, pages 6 et 7; n°81, pages 11 et 12; n°82, pages 11 et 12).
    • Sans oublier la série “Musique Maestro ! initiée par Dominique P. et Claude S., “consacrée à l’Atmos stéréophonique.
  • CEO-MAG 355

    [wpdm_package id=’2461′]

    [wpdm_package id=’2468′]

    [wpdm_package id=’6788′]

    Sommaire :

    • Blaguons avec Y.D.
    • VisuCar 
    • Blasto 
    • Submarinos
    • DStore / DRecall (1/2) 
    • Blackpool Tower 

    Edito Novembre 2019.

    Le duo infernal Rax / Iss a encore frappé ! Peu de temps après la sortie de Bocco’s Adventures, ils nous proposent de redécouvrir un soft remarquable : Sea Battle. A tester sans attendre.

    Pour la première fois depuis bien longtemps, le renouvellement non automatique des adhésions au CEO est mis en place. Vous avez certainement recu un mail vous sollicitant pour votre réadhésion moyennant une cotisation de 10 €. Avec les visus, le mag et le site oric.bqtt.net/, toute une panoplie de services et de partages se met en place. Alors, si vous êtes toujours accro à l’Oric, rengagez-vous et surtout participez. Allez vous inscrire sur oric.bqtt.net/ (pour l’instant le blog est à l’adresse ceobeta.oric.org) pour accéder aux articles disponibles sur le site, devenez rédacteur et écrivez également des articles.

    Pour conclure, préparez vos Oric. Le CEO n’hiberne pas et vous donne rendez vous à la prochaine visu. Date à retrouver dans les bons forums, et bien sur le prochain CEO-MAG …

  • CEO-MAG 354

    Sommaire :

    • Lecteur de carte micro-SD Erebus
    • Fonctionnement de la pile matérielle du 6502 (6)
    • TXT2BAS ou comment disposer de plus de 80 caractères par ligne Basic
    • Kit pour Jeux de Cartes
    • Bocco’s Adventure
    • Pictoric : la conversion Hires en 2019
    • Invasion : Simple Art Demo
    • Cannonade / Oric Pot review
    • Escape from Alpha Centauri

    Edito Octobre 2019.

    Bonjour à tous, J’ai mis de coté les articles concernant la production de Daniel, quelques semaines le temps de rattraper mon retard.

    Ce mois ci est plein de surprises, à commencer par la mise à disposition par Kenneth de son player de fichier TAP. Avec le cumulus, cette extension est un must pour nos oric. Les autres domaines, softwares ressuscités, cross-développement, programmation du 6502 ne sont pas en reste avec les bons articles de nos auteurs favoris. Merci à eux.

    Je profite de cet édito pour dire que j’envisage de prendre ma retraite de rédac’chef. Au plus tard en Mars 2020, il faudra trouver un autre rédac’chef ou valider dans le CEO une nouvelle formule moins contraignante. J’aurais alors 6 ans de mag, soit 68 numéros! En effet, j’ai de plus en plus de difficultés à boucler mes mags dans les délais et il en va de même pour toutes mes envies et occupations diverses.

    J’ai donc besoin de retrouver un peu d’air. Candidats, faites chauffer vos CV.

    Bonne lecture.

    [wpdm_package id=’2553′]

    [wpdm_package id=’2550′]

    [wpdm_package id=’2665′]

  • CEO-MAG 353

    Sommaire

    Page 04 : Double Largeur
    Page 06 : Fonctionnement de la pile matérielle du 6502 (5)
    Page 08 : Dan Cresp, le collectionneur programmeur !
    Page 12 : Lights Out
    Page 16 : Nuclear Invaders
    Page 20 : Galaxy Wars
    Page 24 : Wumpus

    Editorial

    Il y a des joueurs qui ne s’arrêtent jamais et qui, je les remercie, me font parvenir des screenshots de leurs derniers exploits. Ainsi André vient d’exploser ses scores à Pac-Girl et Vexed1. Merci à lui pour ces nouvelles contributions. Finalement, je capitule. Je n’ai encore pas réussi à sortir le mag dans les temps. Cet été, j’avais été particulièrement prolixe et préparé le spécial «Programmez vos jeux en basic avec Dan Cresp» et je dois capituler. Malgré le retard, le mag dédié à Dan n’est finalement pas sorti et sera donc décomposé sur plusieurs numéros. Pendant ce temps, le blog du CEO s’enrichi et de plus en plus d’articles sont disponibles. Bonne lecture et bon courage à tous les développeurs et bricoleurs Oriciens.

    [wpdm_package id=’2564′]

    [wpdm_package id=’2565′]

    [wpdm_package id=’2664′]

  • Lights Out

    Après quelques softwares développés sur d’autres plateformes, ce logiciel marque les débuts de Dan Cresp en programmation sur l’Oric. Produit début 2012, la vision de Dan est exceptionnelle sur cette adaptation. Romuald réalisera fin 2018 une nouvelle adaptation de ce jeu de réflexion dans le cadre du concours CEO NY2019.

    Généralités

    Le jeu est une conversion informatique de la machine “LIGHTS OUT” de la maison TIGGER. Très addictif, c’est le premier jeu que Dancresp a réalisé pour l’ORIC, et c’est une adaptation du même jeu programmé pour le THOMSON MO5 fin 2011. Cette version est un peu plus rapide, mais elle a perdu la simplicité d’action liée à l’utilisation du crayon optique.

    Le MO5 de Daniel, équipé de son crayon optique … en pleine action

    L’adaptation à l’Oric est une réussite car son BASIC est assez complet et rapide et le programme de fait est agréable à utiliser. Le développement sur l’Oric m’a exigé de me familiariser avec son éditeur “étrange”, que j’ai finalement utilisé sans problèmes majeurs. D’autre part, j’ai découvert et commencé à maitriser son système de gestion de la couleur “particulier”. En fonction de ce que vous voulez faire, c’est complexe et peut limiter le développement. Enfin, il est curieux de pouvoir utiliser des caractères de double hauteur. Pour résumer, cette “expérience initiatique” se poursuivra.

    Dans le chapitre bizarreries de l’Oric, la fonction CHR a une fonction différente suivant que vous l’utilisez dans des lignes PLOT (pour indiquer une couleur) et PRINT.

    Pour conclure, disons que chaque être humain devrait avoir la possibilité, ne serait-ce qu’une fois, d’utiliser le clavier de l’ORIC ATMOS qui est un des meilleurs que j’ai pu utiliser.

    Je vous invite à l’essayer.

    Lights Out sur l’Oric Atmos de Daniel, une belle adaptation

    Quelques éléments à propos du programme

    Le programme principal est décomposé en 9 parties :

    • Déclaration de variables, initialisation du jeu et calibrage du stylet.
    • Impression des marqueurs de jeu.
    • Sélecteur de carte correspondant.
    • Envoi à l’affichage du tableau actuel et du numéro de mouvement.
    • Contrôle de clé.
    • Contrôle de l’investissement des lumières correspondantes.
    • Inversion d’une lumière.
    • Impression du tableau avec les lumières.
    • Données des 10 premiers et tableaux de bord et données d’aide de la course.

    Les variables suivantes sont utilisées:

    • M$ = Matrice où sont stockés les 10 premiers tableaux.
    • S$ = Chaîne où le tableau actuel est enregistré.
    • A$ = Carte de lumière.
    • W = Matrice où les premières analyses sont enregistrées en cas d’aide.
    • L = plateau de jeu actuel.
    • M = numéro de mouvement.
    • H = compteur d’aide.
    • F = Lumière à inverser, ou boucles
    • X = position horizontale du pointeur.
    • Y = Position verticale du pointeur.
    • P = compteur de lumière.
    • B = Nombre de lumière qui a été pressée.
    • N = Nombre de lumière lors de l’impression du tableau.

    Les mécanismes du jeu original ont été condensés en seulement 42 lignes de code.

    Le code, simple et efficace, résumé par Dancresp
    • 100 – Définition des matrices du jeu.
    • 110 – Début des variables et charge les lignes DATA dans les matrices.
    • 200 – Couleurs du jeu, et nous faisons disparaître le curseur.
    • 210 – Impression de titres double format en utilisant les séquences “d’échappement” correspondantes.
    • 220 – Copyright au bas de l’écran.
    • 230 – Impression des textes “(H) ELP!” et “(R) ESET”.
    • 300 – Impression de marqueur de niveau.
    • 310 – Position du pointeur, nombre de mouvements (M) à 0 et si le niveau est supérieur à 10, sautez à la ligne 330.
    • 320 – Décomposez les 25 voyants de la matrice (M?) Dans la matrice S? Et réglez le compteur d’aides (H) sur 1.
    • 330 – Génère une carte de manière aléatoire et définit le compteur d’aide sur 3, qui est désactivé.
    • 400 – Imprimez le tableau avec les 25 voyants et s’il n’y en a pas, passez à la ligne 300.
    • 410 – Imprimez le numéro de mouvement.
    • 500 – Imprimez le pointeur sous la lumière correspondante.
    • 510 – Lisez le clavier. Si une touche est enfoncée, supprimez le pointeur mais relisez le clavier.
    • 520 – Si vous appuyez sur “O”, déplacez le pointeur vers la droite.
    • 530 – Appuyez sur “P” pour déplacer le pointeur vers la gauche.
    • 540 – Appuyez sur “Q” pour déplacer le pointeur vers le haut.
    • 550 – Appuyez sur “A” pour déplacer le pointeur vers le bas.
    • 560 – Si vous appuyez sur la touche espace, désactivez l’aide, calculez la lumière sélectionnée et passez à 600.
    • 570 – Si vous appuyez sur “H” et que le nombre de mouvements est inférieur à 3, lancez-vous pour nous.
    • 580 – Appuyer sur “R” réinitialise le tableau.
    • 590 – Si vous appuyez sur “S”, le curseur s’affiche et vous quittez le programme, mais passe à 500
    • 600 – Inverser la lumière sur laquelle il a été appuyé.
    • 610 – Si la lumière n’est pas dans la première rangée, inversez la lumière ci-dessus.
    • 620 – Si le feu ne se trouve pas dans la dernière rangée, inversez le feu en dessous.
    • 630 – Si le feu ne se trouve pas dans la dernière colonne, inversez le feu à droite.
    • 640 – Si le feu ne se trouve pas dans la première colonne, inversez le feu à gauche.
    • 650 – Ajoutez un coup (M) et passez à 400.
    • 700 – Si le voyant indiqué par F est allumé (= 1), définissez-le sur 0 mais sur 1.
    • 710 – Le sous-programme se termine.
    • 800 – Réglez le compteur de lumière (P) sur 0 et N = 1.
    • 810 – Début de la double boucle qui imprime le tableau.
    • 820 – Si la lumière à régler est active, la couleur rouge est activée, mais la couleur blanche est activée.
    • 830 – Imprimez le fichier à la position correspondante. Il a une taille de 3×3.
    • 840 – Augmentez le nombre de jetons (N) et fermez les boucles.
    • 850 – Fin du sous-programme.
    • 900 – Données des planches. Chaque tableau consiste en une chaîne de 25 chiffres 1 ou 0 indiquant l’état de l’un des voyants. Ensuite, deux nombres correspondant aux 2 premiers cycles que la machine proposera en cliquant sur “AIDE!” Sont transmis. S’il n’y a pas d’aide, mettez comme 0,0.

    Le Jeu

    L’objectif du jeu est d’éteindre toutes les lumières rouges sur le plateau de jeu. Nous contrôlons le pointeur qui apparaît sous l’un des 25 carrés du tableau. En appuyant sur Espace, vous modifierez l’état de ce carré et des 4 carrés adjacents ; celui du dessus, du dessous, de droite et de gauche.
    En appuyant sur la touche “H” (HELP), l’ordinateur choisit les 2 premiers mouvements, à condition qu’ils soient les premiers. Appuyez sur la touche “R” (RESET) pour revenir à la position initiale du tableau.

    Le jeu a 10 niveaux prédéfinis, et à partir de là, l’ordinateur génère des tableaux aléatoires sans aide disponible

    Quelques autres versions

    La version originale de Lights Out créee par Dan, sur Thomson
    A découvrir sur ZX-80
    En Hires et plus récente, le Lights Out de Romuald