Category: Hardware

  • 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

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

  • Les Chips 65xxx

    http://www.westerndesigncenter.com/

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

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

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

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

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

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

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

  • Carte contrôleur Microdisc et Eprom 2764

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

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

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

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

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

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

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

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

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

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

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

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

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

  • FDC 1793 et Read Track

    Par Simon

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

    Quel est le besoin ?

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

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

    La galère commence

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

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

    Mais c’est quoi ce bazar ?

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

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

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

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

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

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

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

    Magic Nibble

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

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

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

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

  • CEO-MAG 176

    Sommaire

    • Subscription Form, Back Issue Order Form 
    • Abonnement, Anciens Num?ros et Disquettes
    • Réponses (46) : Sujets n?126 – 128
    • Nostalgie : Le Catalogue de Proriciel (5/5)
    • La Librairie Oric (52)
    • Divertissements Mathématiques et Logiques
    • Réalisez Vous-même Votre Ampli-Bus (2/2)
    • Petit Manuel de Sedoric 3.0 et de ses Utilitaires
    • Listing : Pyramid
    • Les Calembours de Schizo Dino
    • Mise au Point Software pour Cartouche Super-Oric (3)
    • Un Expandeur Midi pour Telestrat et Port Série Atmos
    • Adresses CEO / Sommaire / Editorial
    • Courrier Oricien
    • Petites Annonces / Bonnes Adresses
    • The Oric Family Page

    Edito

    Avec le ‘Sedoric 3.0 and Utilities Short Manual’ et le ‘Petit Manuel de Sedoric 3.0 et de ses Utilitaires’ le Ceo-Mag aura donc enfin répondu à une demande de bientôt 10 ans ! Ces deux versions sont disponibles sur le site du Ceo, avec la version résumée (gratuite) des mags de novembre et décembre. Par ailleurs, étant donné la date tardive de notre Assemblée Générale (12 février), je vous engage à renouveler dès maintenant votre abonnement, en utilisant le bulletin de 2004. En principe, les prix devraient être stables. Notez toutefois la disparition des disquettes simple face.
    A bientôt. André.

    https://www.oric.org/ftp/ceo/ceomag/downloads/2004/ceomag/12_december/full/176.pdf

     

  • CEO-MAG 142

    Sommaire


    Adresses CEO / Sommaire / Editorial Page 2
    Courrier Oricien Page 3-5
    Petites Annonces Page 5
    Quelques Bonnes Adresses Page 6
    Citadelle : La Solution Page 7
    La Libairie Oric (31) Page 8
    Nostalgie… Nostalgie… Page 9
    Divertissements Math?matiques et Logiques Page 10-12
    Aide pour Sokobac (Tableaux 41-50) Page 13-14
    Des Trucs pour Tricher (6/1) : Mordor Page 15-16
    Une Carte Controleur pour Microdisc Page 17-18
    Nouveaux Problemes Rush Hour Page 19-20
    Ils ont fait le Ceo-Mag en 2001 Page 21
    Compte-rendu de l?A.G. et de la Visu du 19 janvier Page 22-23
    Quelques Photos de la Visu Page 24-26
    La Very Important Party Page 27-29
    Abonnements, Anciens Num?ros, Anciennes Disquettes Page 30

    •  

    Edito


    Encore une bien belle Visu, avec beaucoup de beau monde, beaucoup de belles d?mos, mais surtout un bien bel enthousiasme : formidable ! Depuis quelques temps, j?observe une saine ?mulation parmi les Oriciens ?Actifs?, moins nombreux en pourcentage, mais pas en nombre absolu ! Et encore, les toutes derni?res nouveaut?s n??taient pas repr?sent?es, notamment celles de Fabrice, qui feront choc à la Visu de juin. L?Oric a encore quelques beaux jours devant lui ! A+ AC

     

     

  • CEO-MAG 141

    Sommaire

    • Adresses CEO / Sommaire / Editorial Page 2
    • Courrier Oricien Page 3-7
    • Petites Annonces Page 7
    • Quelques Bonnes Adresses Page 8
    • Nostalgie… Nostalgie… Page 9-10
    • Un Peu de Philosophie Page 11
    • Divertissements Math?matiques et Logiques Page 12-13
    • La Librairie Oric (30) Page 14-15
    • Aide pour Sokobac (Tableaux 31-40) Page 16-17
    • Banc d?Essai Jasmin : Doremi Page 18
    • Une Carte Contr?leur pour Microdisc Page 19-20
      The Cumana Interface Page 21
      De Nouveaux Probl?mes pour Rush Hour Page 22-23
      Programmation Pour Ecrans Monochromes Page 24-26
      La Very Important Party Page 27-29
      Abonnements, Anciens Num?ros, Anciennes Disquettes Page 30

    Edito

    out d?abord, Bonne et Oricienne Ann�e 2002. Que l?Oric vous inspire, pour votre plus grand plaisir et celui de tous. N?oubliez pas que le Ceo-Mag ne vit que de vos contributions. Le plus petit �l�ment est important. N?oubliez pas non plus de remplir votre bulletin d?abonnement pour 2002. Si vous avez contribu� au Ceo-Mag, une r�duction traditionnelle vous sera offerte (le palmar�s sera dans le Ceo-Mag de f�vrier). Merci à tous pour votre fid�lit�. Que vive encore l?Oric ! A+ Andr�