Category: Hardware

  • Adaptateur de joystick «Stingy» pour Oric

    Pour les chanceux qui possèdent un ordinateur Oric, une solution permet de résoudre le problème d’absence de connecteur DB9 sur Oric qui gâche le plaisir de profiter de jeux plus réalistes avec une manette comme le proposaient d’autres fabricants d’ordis ou de consoles de l’époque. Maintenant, ce petit cordon permet d’adapter un joystick de type Atari ou Amstrad CPC sur un ordinateur Oric-1/Atmos.

    “Stingy” adaptateur joystick pour Oric

    L’adaptateur possède les avantages suivants :

    • Pas de circuits intégrés : On utilise des diodes.
    • Pas de circuit imprimé : Les composants sont dans la coquille de la prise DB9.
    • Pas de déformation du son pour les jeux prévus avec l’interface IJK.
    • Compatible avec la manette au standard CPC Amstrad : Le 2e bouton de tir est différencié du 1er, il n’y a pas encore de jeux pour, mais on peut détecter le 2e bouton.

    Pour réaliser l’adaptateur il faudra vous procurer :

    • 7 diodes de type 1N4148.
    • 1 connecteur DB9 mâle à souder vers fils avec sa coquille.
    • 1 nappe 20 fils avec son connecteur HE10 2×10 bornes pour connecter sur le port imprimante de l’Oric.
    • 1 morceau de 10 cm de gaine de vieux cordon chargeur USB en caoutchouc.

    Commencez par couper les pattes des diodes pour avoir une longueur totale de 12mm. Séparez les fils de la nappe sur une longueur de 25mm à l’aide d’un cutter puis coupez les fils aux longueurs indiqués sur la photo.

    Le fil le plus long sera le no1 (fil repère reconnaissable à sa couleur différente des autres). Couper la gaine en caoutchouc en morceaux de 8mm et dénudez les fils 1,3,5,7,9,11,15 de la nappe et enfilez les bouts de gaine sur les fils, soudez le coté opposé à la bague noire des diodes aux fils sauf le fil no1. Déplacez les gaines pour recouvrir les soudures et la moitié des diodes.

    • Soudez le côté restant de la diode du fil 13 sur la borne 8 du connecteur DB9 en y joignant le fil no1 de la nappe.
    • Le coté restant de la diode du fil 15 sur la borne 7.
    • Le coté restant de la diode du fil 7 sur la borne 6.
    • Le coté restant de la diode du fil 11 sur la borne 1.
    • Le coté restant de la diode du fil 9 sur la borne 2.
    • Le coté restant de la diode du fil 5 sur la borne 3.
    • Le coté restant de la diode du fil 3 sur la borne 4.

    Enroulez la nappe pour faire entrer les diodes et le connecteur DB9 dans sa coquille.

    Après avoir connecté le joystick et l’adaptateur sur le port imprimante de l’Oric, vous pouvez tester le bon fonctionnement de l’ensemble en chargeant dans l’Oric l’un des jeux suivants :

    • Don’t Press The Letter Q
    • Zebbie
    • Damzel In Distress

    Pour les jeux utilisant le joystick avec l’interface IJK, la routine du jeu procède comme suit :

    Envoi d’un « 0 » sur la sortie STROBE de l’imprimante de l’Oric, ce qui active l’interface IJK pendant une durée déterminée. L’adaptateur STINGY se comportera différemment, il restera actif pendant toute la durée du signal bas de STROBE et le joystick unique sera toujours sélectionné quelque soit le numéro de joystick choisi par la routine IJK.

    • Le bit 5 passe à 0 pour indiquer la présence de l’adaptateur.
    • Le bit 0 passe à « 0 » si manette poussée à droite.
    • Le bit 1 passe à « 0 » si manette poussée à gauche.
    • Le bit 3 passe à « 0 » si manette poussée en bas.
    • Le bit 4 passe à « 0 » si manette poussée en haut.
    • Le bit 2 passe à « 0 » si appui sur bouton de feu1.
    • Si le joystick 1 est sélectionné par la routine, le bit 6 passe à « 0 » si appui sur bouton de feu2 (CPC Amstrad).

    Vous constaterez en fouillant dans la logithèque Oric qu’il n’y a pas beaucoup de programmes qui utilisent le standard IJK pour la manette, pourtant, la connexion discrète sur le port imprimante laisse la place au port d’extension libre pour y connecter un lecteur de disquettes ou de carte SD. Le code qui permet d’utiliser les adaptateurs IJK est facilement insérable dans les logiciels qui ne marchaient qu’en mode clavier, ce qui permettra de rendre aux jeux d’action Oric le bâton de joie qui leur manque cruellement.

  • Les sons préprogrammés de l’Oric (fin)

    3 – ZAP et OUPS

    Introduction

    Ces deux derniers sons ont une structure différente de celle des 5 sons préprogrammés précédents. Ils n’utilisent pas d’enveloppe, mais font appel à des boucles de temporisation pour contrôler l’évolution du son.

    LA COMMANDE ZAP

    Voici la routine copiée et adaptée de la Rom :

    Voici ce que révèle le bloc des 14 paramètres :

    -Contrôle des canaux en service : R7 = #3E, soit 0011 1110. Seul le canal 1 est activé.

    -Période du canal 1 : R0/R1 = #0000. Soit une fréquence infinie que le PSG 9812 ne peut générer !

    -Aucun bruit blanc n’est généré car R6 = #00.

    -Volume du son du canal 1 : R8 = #0F (le maximum). Aucune enveloppe n’est mise en jeu.

    Au premier abord, les paramètres de ZAP sont surprenants ! Le PSG est initialement mis en position de générer des ultra-sons, ce qu’il ne sait pas faire. Mais dans le code qui suit le chargement des 14 paramètres, une boucle est générée, comprenant une temporisation de 1,28 ms et une incrémentation de la période du 1er canal. Cette boucle tourne jusqu’à ce que la période atteigne #0070 ce qui correspond à 554 Hz : Le PSG génère donc un son de plus en plus grave. Le processus se termine alors on envoyant #00 (volume sonore nul) dans le registre R8.

    Si on augmente la temporisation par un facteur 10, afin de mieux percevoir ce qui sort du PSG au début de ZAP, on se rend compte que des criailleries atroces sont générées, comme si on était en train d’assassiner votre Oric ! Heureusement, avec la temporisation normale de ZAP, elles sont trop brèves pour être perçues. Mais il aurait été plus propre d’initialiser la période de départ du canal 1 avec une valeur un peu plus haute que  #0000 !

    Variantes

    La plus évidente est de réduire le volume sonore qui est actuellement au maximum. Un POKE # 982E suivit d’une valeur de #00 à #0F permet de l’ajuster finement.

    Ceci mis à part, les autres possibilités de modifications sont infinies grâce au concept de temporisation permettant d’introduire une modification des paramètres du PSG9812. Rien n’empêche de compliquer le profil du son produit. ZAP est de loin le son préprogrammé le plus intéressant de l’Oric.

    Pour l’heure, nous serons plus modestes et fixerons une période de départ autre que #0000 et une période d’arrivée autre que #0070. Nous pourrons aussi modifier la temporisation, c’est-à-dire la durée de chaque fréquence générée, et par suite la durée totale du son produit.

    Comme précédemment, la procédure consistera à charger ZAPLM en Ram et à POKEr les valeurs à modifier. Cette routine est localisée de #9800 à #9833 et les adresses à POKEr sont les suivantes :

    En #982E : Paramètre R8. Le volume du son du canal 1.

    En #9808 : Octet de poids faible de la période de départ (limitée à #FF, car un seul octet est pris en compte).

    En #981C : Octet de poids faible de la période finale (idem un seul octet pris en compte).

    En #9813 : Le nombre de tours de la boucle de temporisation. Dans l’état actuel de la routine (une boucle de 256 réitérations), il est seulement possible de réduire cette durée. Pour l’augmenter, il faudra mettre en place une deuxième boucle.

    Le programme ZAP1.BAS offre quelques échantillons tout prêts tandis que ZAP2.BAS permet d’expérimenter soi-même de nouveaux sons, en ajustant le volume sonore, la temporisation, les périodes de départ et de fin.

    Quelques remarques :

    -La durée des sons produits est très variable compte tenu de la gamme des fréquences à parcourir.

    -Les sons produits vont de l’aigu vers le grave. Or les sons aigus semblent moins audibles que les graves (à moins que ce ne soit un problème personnel). Il s’en suit que toutes les variantes se ressemblent car elles finissent par des sons graves mieux perçus.

    LA COMMANDE OUPS

    Voici le code d’OUPS transposé et adapté pour l’Atmos à partir du code original d’OUPS pour Telestrat :

    Voici ce que révèle le bloc des 14 paramètres :
    -Contrôle des canaux en service : R7 = #3E, soit 0011 1110. Seul le canal 1 est activé.
    -Période du canal 1 : R0/R1 = #0046 (environ un LA de l’octave 4).
    -Aucun bruit blanc n’est généré car R6 = #00.
    -Volume du son du canal 1 : R8 = #0F (le maximum). Aucune enveloppe n’est mise en jeu.
    Le PSG 9812 génère un LA de l’octave 4 avec un volume sonore maximum suivit d’une temporisation de 0,12 s avant que finalement le canal 1 soit inactivé. Simple non ?

    Variantes

    OUPS repose sur 3 paramètres : Période et volume du son, durée de la temporisation. La période du canal 1 (R0/R1) peut être comprise entre #0000 et #0FFF. Le volume sonore (R8) est ajustable de #00 à #0F. La durée du son peut varier de 1,28 ms (avec Y=1) et 0,33 s (avec Y=#FF). On peut évidemment générer une infinité de sons en combinant ces 3 paramètres.
    Après avoir chargé OUPSLM en Ram, il suffit de poker les valeurs à modifier. Compte tenu de l’adresse d’implantation d’OUPS en Ram (de #9800 à #9827), les adresses à poker sont :
    En # 981A-#981B : Période du canal 1 (R0/R1).
    En #9809 : Nombre de tours de la boucle externe Y.
    En #9822 : Volume sonore du canal 1 (R8)
    Comme pour les autres sons, je vous propose deux petits programmes Basic: Le premier OUPS1.BAS propose divers échantillons de variantes d’OUPS et le second OUPS2.BAS permet d’expérimenter soi-même toutes les combinaisons possibles des 3 paramètres d’OUPS.

    Le programme OUPS1.BAS

    Le menu propose 20 périodes correspondant à la fréquence des notes de DO de l’octave 1 au DO de l’octave 6, puis du LA de l’octave 1 au LA de l’octave 6 et enfin toute la gamme de l’octave 4. Les deux autres paramètres (durée et volume du son) n’ont pas été modifiés et sont ceux du OUPS d’origine.

    Le programme OUPS2.BAS

    Le menu vous propose de tester vous-même tous les sons de votre choix. On peut fixer indépendamment période, volume et durée et écouter ce que cela donne.

    LA COMMANDE ZAAP

    Voici une nouvelle famille de sons, les “ZAAP”, basés sur la routine ZAP, mais dont la durée serait augmentée grâce à une boucle supplémentaire. Non seulement cela permettra d’obtenir des sons plus longs, mais aussi de “normaliser” leur durée, qui varie selon le nombre de périodes balayées. Au final, avec cette “normalisation”, des sons de durée similaire pourront plus facilement être comparés.

    Listing modifié :

    Le nouveau listing ZAAPLM.ASM peut être obtenu à partir du listing ZAPLM.ASM en remplaçant la section située entre les lignes “;Début de la temporisation” et “;Fin de la temporisation” par la même section prise dans OUPSLM.ASM. Cette boucle supplémentaire permet des temporisations de 1,23 ms (pour Y=#01) à 315 ms (pour Y=#00, c’est-à-dire #100 en réalité).
    La temporisation comporte une partie fixe (boucle interne de 1,28 ms environ) et une partie ajustable, la 2e boucle ou boucle externe, qui joue un rôle multiplicateur. La durée totale théorique en ms d’un ZAAP est égale à 1,28 x(période finale – période initiale) x(nombre de tours de 2e boucle). La brièveté des sons ne permet pas de vérifier les valeurs réelles obtenues.

    Le programme ZAAP1.BAS

    Il montre ce que ça donne avec les octaves 3 à 7 lorsque la temporisation a été ajustée pour obtenir des sons de durée totale de 160, 320, 640 et 1300 ms. Voici  les périodes de départ et de fin utilisées pour chaque octave :

    Résultats On observe une nette progressivité dans les résultats obtenus avec les octaves 7 à 3 et pour chacune avec les durées croissantes. C’est l’octave 7 (la plus aiguë)  qui est la moins satisfaisante : La durée 640 ms et surtout la durée 1300 ms révèlent des distorsions peu agréables. Mais dans l’ensemble, cela représente une belle bibliothèque de sons cohérents dérivés de ZAP.

    Le programme ZAAP2.BAS

    Il vous permettra de procéder à vos propres tests en modifiant, les périodes de départ et de fin, ainsi que le nombre de boucles Y et le volume sonore. Le tableau ci-dessus vous sera probablement de quelque aide.

    Vous trouverez tous les programmes produits au cours de ce travail dans le fichier SonsPreprogr3.zip qui accompagne cet article.

  • SOUND GENERATOR

    Remplacement d’un AY-3-8912 par son grand frère : un AY-3-8910.
    No problem sur la carte Mammouth !

    Le remplacement in situ est à l’étude :

    En déplaçant deux composants, le “grand” générateur de sons pourrait s’installer près de l’ancien… Il y a assez de place.

    Une petite plaque double face, quelques soudures, et…

    Testé ! Ça fonctionne !

    Le hic, c’est que le boîtier ne se ferme plus. C’est un peu trop encombrant.
    Il va falloir amincir l’ensemble…

    Mais le concept est validé. On peut remplacer sans trop de problème un AY-3-8912 par son grand frère.
    Reste à lui faire subir une petite cure d’amaigrissement (qui ne saurait tarder)…


    A+

  • Initiation à la Twilighte board v0.6 (sdcard, joysticks, souris usb, RAM, ROMs)

    Début du projet et objectifs

    Cela fait quelques années que je travaille sur ce projet. L’objectif était d’avoir un atmos qui puisse tout démarrer (que cela soit les softs telestrat, mais aussi les softs sedoric, jasmin, les taps etc). Techniquement, beaucoup de choses sont possibles car la carte a différents hardwares permettant de faire des choses qui ne pouvaient pas être fait sur atmos ou telestrat

    Il manque le software pour plusieurs cas, mais maintenant que le hard est là, le soft peut se faire plus simplement.

    Le hardware aurait pu sortir plus rapidement si je m’étais limité à ne faire que le chargement sur sdcard, mais j’ai voulu apporter bien plus : Ajout de RAM, ROMs en banking, de ports joysticks, la gestion USB pour souris USB, la programmation sur réel des banques, et un OS commun (telestrat/Oric-1/Atmos pour tout articuler). La partie qui m’a pris le plus de temps a été sans doute les problèmes de timings avec le 6502.

    Cet article ne représente pas tout ce que la carte fait. Cet article est rédigé comme une sorte d’introduction à la carte.

    Au début du projet, j’ai travaillé avec des CPCistes car ils avaient déjà fait des choses similaires. Puis, Assinie a proposé son aide, et l’évolution à la fois de la carte et du soft a pris un coup de boost puisque la plupart des trucs soft les plus marquants viennent d’Assinie 🙂

    Le projet n’est pas fermé, chacun peut venir se greffer (au soft et au hard). Néanmoins, pour le hardware, j’ai une sorte de feuille de route que j’essaie de suivre car d’autres versions du hard sortiront dans le futur pour améliorer la carte avec des nouvelles fonctionnalités.

    Pour le software, il est possible de faire un jeu en .tap avec les joysticks. Ou Alors il est possible de faire un jeu sur Orix pour profiter de primitives d’ouvertures de fichiers, de lecture, d’affichage etc. Il est techniquement possible de faire un .tap qui pourrait profiter de toutes les banques RAM et ROMs, mais à mon avis, il serait plus simple de faire fonctionner le soft en natif Orix.

    Contenu de la carte

    • Fonctionne avec le 6502 de base uniquement
    • Deux ports joysticks utilisables simultanément si on veut. 1 port avec 3 boutons, le 2ème port avec 1 bouton (la souris AMX marche à partir du moment où on apporte le 5V car l’AMX version CPC n’a pas le 5V de cablé sur le port)
    • Un connecteur sdcard pour charger à partir de la sdcard (FAT 32 et carte à 32GO maximum)
    • Un connecteur USB pour connecter tous les devices usb possibles sur usb, mais il faut écrire les drivers ! 🙂 La liaison série au niveau USB est possible mais il faut aussi écrire les drivers ! La souris USB fonctionne à condition d’écrire le code (qui est ici assez simple, il peut s’écrire en basic), une clé USB de stockage fonctionne aussi.
    • 32 banques de 16KB en ROM
    • 32 banque de 16KB en RAM

    Transformer un Oric-1 en atmos, un atmos en Oric-1, ou un atmos en telestrat !

    Techniquement, il est possible de charger des jeux atmos et de jouer avec des joysticks sans modification du jeu.

    Il n’est pas possible de démarrer des soft sur dsk pour l’instant. Mais il sera possible de démarrer sur les jeux oric-1 only.

    Néanmoins, avec la carte, il serait possible d’avoir la logithèque telestrat.

    Démarrer les .tap Atmos et jouer aux joysticks

    La carte permet de charger la rom atmos modifiée (ou tout autre rom) et de démarrer les .tap sur une sdcard ou sur une clé USB. Pour être franc, la carte n’a pas eu pour objectifs de démarrer les .tap sur sdcard. C’était techniquement possible, mais ce n’était pas la partie qui m’intéressait le plus. L’idée était surtout de pouvoir tout démarrer et d’étendre l’oric

    Cette rom basic11 peut charger le multitap. Certains jeux sont récalcitrants, mais Assinie réussit progressivement à faire tourner les jeux sans patch du jeu

    Ceci est une limite software qui peut être levée grâce à la mise à jour des roms !

    Mise à jour des roms

    La carte a été prévue pour pouvoir se reprogrammer au niveau des roms et de la RAM sans avoir besoin d’aucun équipement, ce qui donne une certaine souplesse d’utilisation et de mise à jour. La carte n’est pas figée, elle vit 🙂

    Un bouton reset qui pourrait être magique !

    Un bouton reset est présent, mais il serait possible de conditionner le démarrage après le reset en appuyant sur une touche, en même temps que l’on reset. Ce n’est pas une idée révolutionnaire, c’est ce qui existait déjà un peu sur telestrat avec la touche del et le reset.

    Disponibilité

    La carte est disponible maintenant, mais les pcb sont déjà réservés (il n’y avait que 10 exemplaires disponibles). Si vous en voulez une, il faudra me contacter par mp sur ce site ou par mail afin que je vous mette en liste d’attente. La carte a un coût de 100 euros, et est un peu longue à assembler (et les composants sont de 3 fournisseurs, ce qui rend compliqué la production). Enfin, je fais cela sur mon peu de temps disponible mais cela avance tout de même 🙂

    Pour en savoir plus : https://orix.oric.org

  • Carte mère Oric

    J’ai reçu (un peu de façon inattendue par ces temps-ci) la carte mère d’Oric que j’avais commandée (et pour une fois, pas miC…) :

    Et oui ! On peut acheter un PCB nu de carte mère d’Oric…
    Les pastilles ont l’air de bonne qualité, les pistes aussi.

    Mais elle nécessite d’être testée. Déjà, on remarque que R26 a une patte en l’air…
    Peut-être faudra-t’il un câble de jonction pour d’autres composants ?
    Ce topic permettra d’en suivre les évolutions.

    Premières modifications : R26 doit être reliée déjà masse et les pattes 1 des deux 74LS257 doivent être reliées ensemble.

    Suite (mai 2020) : implantation des résistances et problème au niveau de RP1

    Le but étant de reproduire une carte fonctionnelle mais incomplète (pas de partie UHF), destinée à remplacer une carte Oric originale, l’implantation des composants se fera en plusieurs temps.

    Tout d’abord, pour tester le fonctionnement minimum de la carte mère, seront mis en place les circuits suivants: 6502, 6522, ULA, EPROM, AY3-8912, les huit DRAM, les deux 74Ls257, le 74LS04 et le 74LS365, tous montés sur supports (ça aide pour la maintenance !). Quelques résistances et condensateurs, un Quartz, un transistor, un connecteur pour le clavier et un pour la partie vidéo accompagneront le lot.
    Plus tard viendront les autres connecteurs, le 7905 (ou 7805 ?), l’ampli LM386, le LM358 pour les entrées-sorties Son Cassette, le relais, le haut-parleur, le bouton poussoir de Reset, une deuxième Eprom avec sélecteur.


    Pour commencer, il est bon de placer en premier les composants qui ont le moins de hauteur sur la carte. On peut penser aux résistances ou aux diodes. Puis viendront les supports de CI, les condensateurs, le quartz, les connecteurs…

    La référence est le schéma de Fred72.
    Voici donc les résistances nécessaires :

    De gauche à droite,
    – les deux 1 KOhm (pour Quartz et 74LS04),
    – les quatre 220 Ohm (pour sortie vidéo),
    – la 2,2 KOhm (pour la patte 2 du 74LS365),
    – les deux 47 KOhm (pour gestion clavier),
    – la 220 KOhm (pour Reset au démarrage),
    – les cinq 2,2 KOhm (pour jouer le rôle de RP1).

    RP1 ? Kézako ?
    Il s’agit d’un réseau de résistances de 2,2 KOhm à 8 pattes.

    Sept résistances reliées à un point commun (dont l’emplacement est marqué avec un point noir). Dans l’ORIC, ce point commun est branché au + 5 Volt. On peut nommer les résistances de R1 à R7 :

    Sept résistances… Oui, mais il ne nous en faut que cinq ?

    Un coup d’œil à la nouvelle carte :
    (ou c’est ici que ça se passe…)

    Voici l’implantation de RP1 :

    Il est aisé de constater que R4 à R7 sont reliées sur le connecteur 34 broches de l’ORIC, avec les Pins P2, P4, P6 et P8 :

    P2 pour ROMDIS, P4 pour RESET, P6 pour I/O CTRL, P8 pour IRQ

    Et R3 est reliée à P1 :

    P1 pour MAP

    C’est conforme au plan ! Ouf…
    Mais quid de R1 et de R2 ? Une fois la carte retournée :

    Ces résistances sont reliées à P5 et P7 :

    P5 pour I/O et P7 pour R/W

    Ah…
    Comparaison avec une carte mère originale d’ORIC (Issue 3) :

    R1 et R2 ne servent pas au fonctionnement et n’ont qu’un petit boulot décoratif !

    Question :
    Pourquoi avoir relié ainsi ces deux résistances sur la nouvelle carte ?
    Si l’on force les lignes R/W et I/O au niveau haut en permanence, cela va t’il jouer sur le fonctionnement ?
    Les Pros pourront répondre à cette “angoissante” question…
    Sur le Net, la majorité des montages à base de 6502 ne possèdent pas de résistances de tirage vers le haut sur ces lignes…

    Pour respecter le schéma de la carte originale, ces deux résistances seront omises… D’où l’utilité de remplacer le réseau de résistances RP1 par des résistances classiques…

    Pour les supports de CI, on peut aussi utiliser des barrettes sécables, moins chères :

    Les voici à la bonne taille et prêtes à l’emploi :

    Les résistances à plat sont déjà soudées

    Et après 382 points de soudures pour les supports…

    Le support de la deuxième EPROM (IC10) sera installé plus tard, car cela nécessite quelques petits travaux au préalable qui permettront la sélection d’une EPROM ou l’autre…

    Pour les condensateurs, il est difficile de trouver les mêmes originaux. Ici la taille n’a rien à voir, il suffit de plier un peu les pattes pour avoir le même écartement.

    De même pour le Quartz de 12 MHz…

    Ne pas oublier de relier R26 à la masse : par exemple sur la patte de C10…

    Et de relier les deux pattes numéro 1 des 74LS257 :

    Pour RP1 (voir plus haut), voici la solution retenue :

    Ne pas traiter RP2 de la même façon.

    Même s’il lui ressemble, celui-ci n’est que la juxtaposition de quatre résistances de 220 Ohm dans le même emballage…

    On peut le remplacer donc par quatre résistances dites normales…

    Et on obtient :

    Et voici la carte un peu plus habillée…

    Comme il n’y a pas de connecteur d’alimentation ni de 7905, il va falloir créer deux points d’alimentation temporaires qui fourniront du 5 Volt pour les tests. Le choix peut se porter sur l’emplacement de C9, un condensateur de découplage de 47 nF situé au dessus de IC24 :

    Pour bénéficier du filtrage de C8, il faudra temporairement le relier à la masse de la carte :

    Ainsi, la carte sera prête pour les premiers essais en réel !
    Aussitôt dit, aussitôt fait…

    Alors, il est grand temps de tester la tension sur la carte :

    OK !

    Mise en place d’un 74LS04 (ici, un 74HC04) pour test de la fréquence :

    Mise sous tension et test de la fréquence sur la patte 7 de l’ULA (qui devrait recevoir du 12 MHz) :

    Encore OK !

    En attendant (Sœur Anne, ne vois-tu rien venir ?) la livraison des connecteurs DIN pas en stock, il suffit de relier des fils temporaires sur les résistances de 220 Ohm en sortie du 74LS365 :

    Reg Green Blue, Yellow as Synchro, Black as Ground

    Puis enfin, le premier test de boot après avoir installé les circuits et un fil de jonction sur les deux pastilles reférencées LK, on obtient :

    Premier boot réussi !

    Manquent encore le clavier, le son et la gestion Cassette…
    A suivre !

    A+

  • Schémas

    Oric ATMOS

    Telestrat

    Microdisc

  • Micro UK101 + Mod

    Micro UK 101, un ordinateur à réaliser soi-même avec quelques composants “old fashion”.


    Micro UK 101 + Mod, avec ajout de modifications.

    UK 101 ?
    L’ordinateur Compukit UK101, paru en 1979 en Angleterre, pouvait s’acheter en kit ou déjà tout monté. Il était destiné au marché anglais. Pourvu d’un 6502 à 1 MHz, il utlisait 8 kb de ROM , 8 Kb de RAM, augmentée d’un Kb pour la sortie vidéo UHF. Le clavier et l’alimentation faisaient partie de la carte mère, complétée par un port extension à 40 broches. La lecture et la sauvegarde de données pouvait se faire sur cassette mono à 300 bauds. L’affichage sur écran (TV) était de 16 rangées sur 48 colonnes, sans autre option vidéo.

    Micro UK 101 !
    Grant Searle, un passionne doué, fait revivre des ancêtres comme le 6502, le Z80 ou le 6809, en les allégeant beaucoup. Entre autres, il a créé le Micro UK 101, clone de l’UK 101, doté toujours du sempiternel 6502, mais avec maintenant 32 Kb de ROM, 32 Kb de RAM, un ACIA 6850 et quelques circuits logiques. Sans entrée clavier, ni sortie vidéo, le Micro UK 101 est à relier sur un ordinateur récent par un port COM. Sans carte son, ce petit bijou peut s’assembler sur une plaque d’essais type “Breadbord” ou sur une plaque pastillée avec fils point à point.
    Son site fourmille de documents et de conseils.
    Libre à vous de construire un micro des années 80 ou de vous lancer dans un clone à FPGA.


    Sur le Bay, on peut parfois trouver un kit. Celui-ci était déjà monté.

    On peut relier un adaptateur USB RS232 sur la prise DB9 ou un module USB TTL type FT232 sur les broches en bas à droite de la carte.
    Exemple de module FT232 facile à trouver sur le Bay :

    Les ordinateurs récents n’ont plus de port série à DB9, ni de port imprimante. D’où la première Mod faite à cette carte : retirer la DB9, le circuit ICL232 et ses condensateurs associés pour les remplacer par un connecteurs à 4 broches servant au module FT232, en y intercalant des résistances de protection. Et remplacer cette Led rouge par une bleue, avec une résistance de 2k2 pour être plus agréable à voir sans être ébloui ! Enfin, il suffit de dessouder le condensateur C17 et de le repositionner couché, pour gagner quelques millimètres en hauteur.
    Ainsi la carte sera placée entre un support en plastique et une plaque transparente, avec des entretoises de bonne hauteur et quelques boulons.

    Voici le résultat de la Mod 1 :

    Notez les bandes rouge et noire autour du connecteur à 4 broches…

    Deuxième Mod à faire : une petite carte pour relier le module FT232 directement sur la carte sans utiliser de câblage. Un interrupteur petit modèle permettra d’alimenter la carte à partir du PC, opération visualisée par la Led verte..

    Les bandes rouge et noire servent de détrompeur…
    (Rouge pour VCC, noire pour GND)

    L’utilisation du Micro UK 101 est facilitée par ces deux Mods.

    Il ne reste plus qu’à le tester sur PC, en utilisant par exemple un logiciel comme PuTTY et en réglant le port COM relié au FT232 à 19200 bauds.

    Et voici l’écran d’accueil :

    Un petit programme en Basic pour tester l’ensemble :

    Et ça fonctionne !

    Déjà cette carte permet de se faire le main sur le 6502 sans passer par l’Oric et ses périphériques (alimentation, adaptateur RGBS-HDMI, écran LCD ou autre). Le Basic a beau être limité (8 Kb seulement au lieu des 16 Kb de notre Oric), il permet néanmoins de progresser et de découvrir le programmation en langage machine…
    C’est déjà un bon point pour cette petite carte !

    Mais il lui manque de quoi communiquer avec l’extérieur, autre que le PC auquel elle est reliée. Interagir avec quelques Leds et des interrupteurs ou des boutons poussoirs serait un sacré plus.

    Qu’à cela ne tienne ! Il suffit de lui rajouter un 6522 (ou un 65C22) !
    Comme celui qui se trouve dans l’Oric…
    C’est l’objet de la troisième Mod.



    Une petite plaque PCB pastillée sera installée à côté de la carte et supportera le 6522 avec moult connecteurs (pour les ports A et B, les sorties CA et CB). Des fils fins relieront le 6522 au 6502 et il reste à choisir une sortie du 74LS138 pour l’adresse à utiliser (arbitrairement ici, la 5, soit à partir de #D000).

    Il faudra redimensionner les plaques en-dessous et au-dessus du nouvel ensemble, et cela donne :

    Format 10 x 15 cm !

    Afin d’avoir un aperçu visuel des ports du 65(C)22, cette petite carte facile à réaliser s’avère très utile :

    2 circuits ULN2803 et 16 Leds



    Exemple avec un chenillard de type “K 2000” sur 16 Leds :

    Et vu du dos de la carte à 16 Leds :


    Ce petit ordinateur, même limité en périphériques, est maintenant capable de communiquer avec l’extérieur après ces quelques modifications. Facile à transporter, une fois relié à un PC, il s’avère agréable d’emploi et facile à programmer. Le stockage des fichiers se fait directement sur le disque dur du PC.

    Un grand merci à Grant pour ce cousin de notre Oric !


  • Modifications sur Oric

    RESTRUCTURATION D’UN ORIC

    Aie, ça va faire mal aux yeux à certains. Âmes sensibles, passez votre chemin…

    Dans le cadre de ce projet à long terme, le travail proposé va dans un premier temps alléger considérablement une carte mère d’Oric, puis y apporter plusieurs modifications et sa finalisation permettra une utilisation inhabituelle.
    Son appellation pourrait être : ORICMOD.

    Vous êtes prêts ? Alors, attaquons le premier temps.
    De la carte mère originale, il faut arriver à :

    et maintenant défigurée !
    Encore belle…

    Démontage de tous les circuits sur support. A placer piqués dans une mousse électrostatique, sinon dans une mousse enveloppée de papier aluminium.

    En utilisant tout moyen à votre disposition (fer à souder, pompe à dessouder, tresse à dessouder, pistolet à dessouder, pinces, tournevis plat,etc…), dessoudage patient de tous les composants qui sont utilisés pour :
    – l’alimentation négative,
    – la génération du signal vidéo UHF,
    – l’amplificateur LM386,
    – la gestion Entrée-Sortie des signaux TAPE avec le LM358,
    – le relais de commande du magnéto.
    Ainsi que le haut-parleur, le bouton RESET et les prises DIN (RGB et TAPE)…

    Voici donc la carte mère de l’ORICMOD :


    Notre ORIC est devenu sourd et aphone. Impossible pour lui d’afficher quoi que ce soit. Ah misère, quand tu nous tiens !
    Il ne lui reste plus que la peau et les os !

    Mais pourquoi tant de cruauté ? Une carte mère qui avait encore tant de belles années devant elle ! Qui plus, maintenant c’est malin ! Ça ne vaut plus rien, même sur le Bay (alors qu’on y voit des prix astronomiques pour une machine parfois non testée !).
    Oui, mais…
    Les modifications à venir vont lui conférer une souplesse appréciable pour son utilisation future. Ces modifications se dévoileront au fur et à mesure sur ces pages.

    MOD de départ, juste pour se faire la main : l’alimentation.
    L’ORICMOD va être alimenté en + 5 Volts directement. Il sera bon à cette occasion de remplacer la prise Jack trop souvent oxydée par une nouvelle.
    Puis, un pont fait avec une queue de résistance ou un bout de fil va relier deux trous laissées par le 7905 parti en voyage très longue durée…

    Reliez les deux trous “Masse”

    Pour gagner un peu de place, nous décalerons l’implantation des condensateurs. Parfait derrière la prise Jack :


    Poursuivons avec la deuxième MOD : la prise RGB.

    Notre ORICMOD va pouvoir de nouveau envoyer des signaux vidéo vers l’extérieur. Ayant déjà modifié un boîtier Convertisseur de signal HDMI-SCART vers HDMI en lui retirant sa prise Péritel, nous allons installer une petite plaque à bandes avec quelques connecteurs.
    Auparavant, il sera utile de repérer les sorties à utiliser :

    R, G, B et Synchro, sans oublier la Masse…

    Des queues de résistances ou des fils pour assurer la liaison avec les pastilles repérées, un connecteur à 5 broches mâles coudées à 90 degrés, quelques fils de liaison (ici, en couleurs correspondantes, sauf le jaune pour la Synchro), et voilà !

    C’est tout de même moins encombrant que la prise DIN, non ?

    Sans toucher à la coque, il y a pas mal de place gagnée !

    Un petit marquage des broches (comme un commentaire dans un programme) n’est jamais inutile…


    Le temps de remonter les circuits sur leurs supports, de relier la carte modifiée derrière le clavier, et nous pouvons tester sur écran si c’est bon.


    ATTENTION : c’est 5 Volts maintenant, vérifiez votre transformateur !

    Hello, World !
    Et c’est OK ! Ouf !




    _____________________________________________________________________________
    Débranchons le tout et retirons les circuits sur support.

    N’hésitez pas à partager vos commentaires et idées !

    Tout ça là-dedans ? Incroyable, non ?

    A suivre pour de nouvelles aventures ….

  • ORIC version RC2019

    — PRESENTATION —

    Disponible sur le Net, un excellent site concernant le RC2014 (cf https://rc2014.co.uk/) est à visiter. Un passionné a créé un simple ordinateur à base de Z80 avec de multiples cartes enfichables, qui tourne avec Microsoft Basic.

    Reprenant l’idée, pourquoi ne pas faire de même pour notre cher Oric ?
    Aussitôt dit, aussitôt fait ! Euh, le temps d’étudier comment organiser les cartes et de réaliser quelques soudures, bien entendu…

    Voici une carte mère d’Oric Atmos :

    Si l’on ne tient pas compte de certains composants pourvus pour d’autres fonctions que l’on n’utilisera pas de suite, on peut grouper les circuits en 4 blocs.

    • le 1 avec le processeur 6502 couplé avec la ROM
    • le 2 avec le VIA 6522, le générateur de sons AY-3-8912 et l’amplificateur LM386
    • le 3 avec l’ULA HCS10017, le générateur de fréquence et la sortie vidéo RGBS
    • le 4 avec la RAM et les deux circuits de décodage d’adresse 74LS257

    Il faudra également prévoir différentes sorties sur connecteurs : le haut-parleur, le port parallèle, le port clavier, le port vidéo.
    Et réaliser une carte support capable de recevoir ces différentes cartes-filles… Six connecteurs de 40 broches véhiculant les signaux des adresses, des données et de diverses commandes communs à toutes les cartes-filles :

    CARTE SUPPORT

    Et voici les cartes-filles, toutes sur un connecteur mâle de 40 broches :

    Un rajout de connecteurs a été nécessaire entre les cartes ULA et RAM (connecteurs jaunes sur les deux dernières photos)

    Les 2 cartes avec le connecteur latéral

    Et voici le tout monté :

    Premiers essais :

    Il a fallu tout d’abord rechercher les erreurs de câblage et de soudure… Pas évident quand on ne travaille qu’avec des petites cartes non reliées sur une carte mère classique d’Oric !
    Mais après un certain temps (comme pour le refroidissement du fût du canon) et l’aide d’une autre carte mère DIY susnommée “Mammouth” par son concepteur, il a été possible enfin de démarrer l’Oric version RC 2019 !

    L’occasion de relier le clavier DIY, un haut-parleur, d’écrire un petit programme de test en basic, de jouer avec quelques Ping et Explode plus tard, ça tourne toujours ! Bonne nouvelle ! D’autres cartes vont pouvoir être développées et connectées a cette version sympa de l’Oric…

    Deux slots d’extension sont encore disponibles. Il est également possible d’utiliser le dernier slot pour y relier une carte intermédiaire comportant d’autres slots…

    Ça ouvre pas mal de possibilités !

    Oui, il faut admettre que cet Oric n’a pas la beauté d’un Oric original. Le boîtier noir et orange a disparu, le clavier mécanique et le bloc d’alimentation aussi…
    Mais c’est un clone fonctionnel, destiné au développement de projets divers qui ne manqueront pas de venir enrichir ces pages.

    Oricalement,
    Voyageur

  • 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.