@atmosphere : Je crois que les fichiers d'Assinie sont complets, les lignes de code sont autonomes avec les adresses listées notamment dans le dernier listing
Oups, oui autant pour moi j'avais zappé une partie du code 🙄
Une question, est-ce que ça pose problème pour d'autres périphériques si j'utilise un poke 768,1 pour générer une impulsion sur le port cassette ? Je m'en sers pour générer une impulsion de 10 ms environ mais bon c'est une astuce que j'ai trouvé pratique mais je ne sais pas trop en fait si ça ne va pas semer la pagaille 😊
Ca marche, c'est trop bien, merci, je vais pouvoir avancer 😊😉
Une question, est-ce que ça pose problème pour d'autres périphériques si j'utilise un poke 768,1 pour générer une impulsion sur le port cassette ?
La réponse rapide est oui: si tu as une imprimante connectée à l'Oric elle va recevoir un caractère "parasite", d'autre part le relais pour la télécomande du magnétophone reçoit aussi l'impulsion ce qui n'est pas forcément une bonne idée.
La réponse plus détaillée:
L'adresse 768 correspond certes au port B du VIA qui est bien utilisé pour le port K7, mais les bits 0 à 3 sont utilisés pour le clavier.
Le bit 4 est utilisé pour l'imprimante (signal STROBE) et le bit 5 n'est pas utilisé (il n'est connecté à rien sauf modification de l'Oric)
Pour le port K7, il y a le bit 6 pour la télécomande du magnétophone, le bit 7 pour l'envoi du signal vers le magnétophone et CS1 pour la réception du signal par l'Oric.
La valeur des bits 7 à 0 est 1011xxxx en fonctionnement normal, les x sont modifiés pour la gestion du clavier à chaque interruption si elles sont actives.
Donc en mettant la valeur 1 à l'adresse 768 tu mets le bit 0 à 1 et tous les autres à 0 soit 00000001, mais l'interruption suivante forcera à nouveau les bits 7 à 4 à 1011 et les bits 3 à 0 avec la valeur suivante pour le clavier.
Hors clavier, cela génère une impulsion négative 1->0->1 sur les pits 7, 5 et 4 donc vers la sortie K7 et vers le relais de la télécommande du magnétophone et vers le signal STROBE de l'imprimante.
Je pense qu'il vaudrait mieux ne pas toucher aux bits 6 et 4 pour éviter de toucher au relais et d'envoyer un caractère à l'imprimante si il y en a une connectée à l'Oric.
Une valeur de 0011xxxx, soit entre 48 et 63 inclus, permet de ne pas toucher au relais ni à l'imprimante (il faudrait que je vérifie le risque de perturbation de la lecture du clavier mais il doit être faible)
Dernière remarque, si la durée de l'impulsion doit être précise le mieux est de faire l'équivalent du poke en assembleur et en ayant supprimé les interruptions avant (ne pas oublier de les autoriser à nouveau après).
En effet, tu ne sais pas quel est le délai entre l'exécution du poke et la prochaine interruption donc la durée de l'impulsion peut être très inférieure à 10ms.
- Merci Assinie pour toutes ces précisions, je pensais bien que ça pouvait perturber les périphériques reliés au port B mais je n'ai pas de documents précis alors j'ai du mal comprendre. Quand je fais un poke 768,1 j'ai une impulsion entre 8 et 12 ms, ça dépend, j'ai à peu près la même chose si je fais poke 768,0 le contact du magnétophone ne se ferme pas et je n'ai constaté aucune perturbations mais je n'ai pas d'imprimante connectée sur l'oric, il faudrait que je vérifie avec l'analyseur logique. En fait je n'ai pas besoin que l'impulsion soit précise, entre 8 et 12 ms ça me convient, c'est juste pour valider une commande, ça m'évite de faire appel à la routine d'envoi de bytes via le port cassette.
En fait tu auras une impulsion sur la sortie K7 à partir du moment où tu mets le bit 7 à 0 donc pour n'importe quelle valeur inférieure à 128.
Pour les effets de bords sur le relais, il est possible que l'impulsion soit trop rapide pour le déclancher mais il vaut quand même mieux éviter de jouer avec.
Hello,
Bonjour,
Sur 10 cartes je suis intéressé par 1 exemplaire si c' est possible......cette extension pourrait mettre utile pour sauvegarder mes tap de mon second Oric.L' ensemble est compact et interessant à assembler.Les détails des astuces de programmation sont instructifs......merci pour toutes ce infos...
Bonjour, dès que j'aurai assemblé et testé le premier et je donnerai tous les détails pour la construction, j'ai fait en sorte que les éléments soient faciles à trouver et pas cher, il n'y a peut être que les 3 ou 4 résistances cms à souder qui peuvent rebuter certains mais ça je peux les monter sur le pcb si ça peut aider.
@atmosphere C'est encore moi Hihihihi.
Connais tu ce forum ? https://forum.system-cfg.com/index.php
Il est plus généraliste, mais il y a une plus grande communauté vintage 🤣 et tu trouveras surement des Oricien intéressés pour t'aider. (enfin je crois)
Merci Gliou pour le lien, je ne connaissais pas, je découvre ce petit monde du vintage de la micro 😊
Bonjour à tous,
dans le but de rendre compatible mon lecteur sd avec tous les fichiers TAP, j'essaie de comprendre comment ces fichiers sont organisés. J'ai récupéré plusieurs jeux au format TAP, la plupart se chargent correctement et certains plantent et je ne sais pas vraiment pourquoi. Quand je regarde comment sont séparés les différentes séquences d'un fichier TAP, certains présentent 3*0x16 (octets de synchro) et 1*0x24 au début de chaque séquences, jusque là pas de soucis mais d'autres n'ont que 2*0x16 certains 4*0x16 et même on peut trouver 256*0x16, est-ce que ça signifie quelque chose de particulier (pause, vitesse de transmission etc) ?
J'ai cherché un peu partout mais je ne trouve pas de réponse...
Je vais essayer d'ajouter une fonction qui permette de lire des fichiers WAV ça permettrait peut être de charger des jeux qui ne s'ouvrent pas au format TAP... à suivre.
Ah! bonne question 🤔 , je vais attendre aussi les réponses comme cela je pourrais peut être avancer sur mon projet de transcription .tap en .txt.
https://github.com/Gliou/ORIC_BasicFileList/blob/oric/run.py 😉
Mais tu peux peut être avoir des réponses dans l'ORIC A NU..
Pour les fichiers sonores d'origine, l'amorce est longue. Il a été convenu de se contenter d'utiliser seulement 3 octets d'amorce pour les émulateurs.
Pour les fichiers sonores d'origine, l'amorce est longue. Il a été convenu de se contenter d'utiliser seulement 3 octets d'amorce pour les émulateurs.
Oui c'est d'ailleurs ce que j'ai fait pour transférer les fichiers vers l'Oric, mais il a quand même besoin d'une dizaine de bytes de synchro sinon il ne débute pas la transmission.
Bonne idée le projet de Gliou, on pourrait même l'ajouter à l'interface pour convertir un programme basic en texte et le sauver sur carte sd ou l'envoyer sur le port série, ou même peut être faire l'inverse ??...
Je travaille aussi sur l'ajout d'un mini joystick analogique style ps2 pour sélectionner le programme à charger si on ne veut pas passer par l'Oric, ce joystick pourrait servir aussi pourquoi pas dans des programmes Oric ou des jeux en envoyant soit une modulation du type PWM ou un octet contenant la position analogique du joystick, avec un bouton de validation et un autre pour les tirs ou autres... Je sais bien qu'il existe déjà des solutions de joystick mais ça coûte rien de l'ajouter.