La Ghostin'terface
  Hacks autour d'un TRS-80 MODEL I
Open menu
  • Accueil
    • Premier démarrage
  • Mon labo
    • Oscilloscope
    • Programmateurs
    • Analyseur logique
    • Prototypage
    • Imprimantes 3D
  • Les bases
    • Un peu d'électronique
    • Les circuits logiques
    • Les bascules
    • Les réseaux logiques
  • Carte vidéo
    • Conventions
    • Etude préliminaire
      • Fonctionnalités attendues
      • Choix des composants
      • Accès à la mémoire
      • Un peu de concret
      • Premiers tests
    • Programmation
      • Accès à la mémoire
        • Adressage
        • Bus de données
        • Pagination
      • Génération de la vidéo
        • Synchro générale
        • Lecture de la mémoire
        • Affichage vidéo
      • Fonctionnalités supplémentaires
        • Vidéo Texte du TRS-80
        • Registres de configuration
        • Remplissage mémoire
        • Remplissage multiple
        • Horloge de précision
        • Interruptions
    • Fonctionnalités détaillées
  • Lecteur de disquettes
    • De quoi est-il question ?
    • Contrôleur de disques
      • Adressage
      • Commandes
      • Interruptions
    • Developpement
      • Choix stratégiques
      • Matériel
        • Choix des composants
        • Conventions
        • Protocole d'échange
      • Logiciel
        • Le CPLD
        • L'afficheur OLED
        • La carte SD
        • Le système de fichiers
    • Format de disquette
  • Vectrex
    • MOD ronflette
    • 3D Imager
    • Lightpen
  1. Vous êtes ici :  
  2. Accueil
  3. Lecteur de disquettes
  4. Développement

Ne réinventons pas la roue! Quoique ...


Il faut profiter des développements qui ont été déjà réalisés par les communautés et notamment Arduino qui est très riche. Parce que c'est plus rapide, parce que c'est plus facile et parce qu'ils ont été éprouvés, ajustés, corrigés et sont directement opérationnels.

Pour ma part, je suis parti sur l'IDE Arduino et j'ai commencé par récupérer les librairies de gestion de l'afficheur OLED ainsi que la gestion des cartes SD et des FAT.

 

Oui mais, oui mais, le fait est qu'on ne maitrise pas tout

Et j'ai été confronté à différents problèmes qui m'ont occupés une bonne partie de mon temps.

Le premier et le plus évident, c'est la consommation en mémoire, les librairies sont bien pensée mais elle font, en général beaucoup que ce dont on a besoin et ça prend de la mémoire. Ayant à priori choisi un ATMega328 la seule intégration des librairies et fonctions de démarrage ont pris 75% de la mémoire programme. Je suis vite arrivé à 100% sans pouvoir être en mesure de lire un secteur.

La conséquence : Il m'a fallu réaliser un carte d'adaptation pour un micro contrôleur plus puissant, un ATMega1284. ce qui m'a permis d'être largement plus confortable.

 

Le second problème c'est la maitrise du code utilisé dans les librairies. Je me suis aperçu, pour une raison que j'ignore que la librairie qui gère le système de fichier utilisait les interruptions. Les transfert s'effectuant à cadence du Z80 de l'ordinateur, j'avais périodiquement des enchainements de niveau perturbés par les sous-routines d'interruption.

J'ai commencé par désactiver les interruptions, mais les cartes SD ne s'initialisaient plus. J'ai donc désactivé les interruptions uniquement durant l'exécution de mes routines échanges critiques. Le résultat n'a pas été probant, car aléatoirement des transferts s'exécutaient mal. Il s'agit d'un à quatre octets sur une transmission d'un secteur de 256 octets. Jamais le même nombre jamais les mêmes octets.

La conséquence : Après être resté un bon mois à tenter de débugger, je me suis asséché, à cours d'idée et j'ai fini par jeter aux oubliettes mon code.

 

Exit les librairies, exit le C, exit Arduino, je suis donc reparti sur un développement en assembleur avec Atmel studio devenu MicroChip studio.

Je me suis donc documenté et lorsque que j'ai vu la masse de travail devant moi, j'ai décider d'écrire également les routines de gestion de l'afficheur OLED.

Choix stratégiques

Ne réinventons pas la roue! Quoique ...

Détails
Publication : 7 Mai 2025

Lire la suite...

Interface avec le CPLD

Le réseau logique programmable CPLD créé l'interface avec le TRS-80, le microcontrôleur assure la partie logicielle du driveur de lecteur de disquette.

Détails
Publication : 9 Mai 2025

Lire la suite...

Afficheur OLED

Il s'agit d'écrire des routines permettant la gestion d'un module d'affichage piloté avec un bus I2C et basé sur le circuit SSD1306.

Détails
Publication : 9 Mai 2025

Lire la suite...

Echanges avec la Carte SD

Ce développement, mis à par l'adaptation en assembleur n'a posé aucun problème.

Détails
Publication : 8 Mai 2025

Lire la suite...

Système de fichier

Ayant pas mal avancé sur les interactions avec le TRS-80, afin de poursuivre rapidement, j'ai envisagé d'abord faire au plus simple et coder un OS minimaliste.

Détails
Publication : 8 Mai 2025

Lire la suite...

Connexion

  • Mot de passe perdu ?
  • Identifiant perdu ?
  • Créer un compte