CUBECYLINDRE programme restauré en 2021, par CLaudius Morin et Bruno Vivien

Bruno : Mon ami de longue date, KEN D. m’a envoyé 5 cassettes bourrées de programmes. Ses cassettes sont très bien enregistrées et me donnent peu de travail en terme de restauration.

Sur la totalité des 5 cassettes, il y a en tout 194 programmes (33+64+34+32+31)…

Après avoir récupéré 193 programmes sur les 194 enregistrés, je me suis dit que c’était trop bête d’écrire à KEN en lui disant qu’il y avait 1 programme non récupérable…

Grâce une indication manuscrite sur la K7 concernée «PICTURES AT AN EXHIBITION» , j’ai compris que si le programme récalcitrant était mal enregistré, ce n’était pas la faute à KEN, mais à celui qui lui avait réalisé l'enregistrement lors d’une exposition DAI… Probablement à Nivelles en Belgique, car KEN m’avait raconté y être allé… Et de fait, les formes d’ondes des enregistrements liés à l’exposition n’ont rien à voir avec les enregistrements de qualité trouvés sur les autres K7.

Je suis absolument sûr et certain que ce programme n’a jamais pu être chargé sur le DAI de KEN, pourquoi ? Regardez par vous-même.

Présentation CUBECYLINDRE
Programme complet vu de loin. On voit déjà 3 zones où il ne fait pas beau…

Présentation CUBECYLINDRE
La première zone, sur la partie gauche est très abimée, mais on sent qu'il reste de l'information récupérable à condition d'effectuer les traitements qui s'imposent...
La deuxième zone, sur la partie droite est muette ! 12390 échantillons d’oscillogramme plat, correspondant à environ 190 bits environ !.

Présentation CUBECYLINDRE
Zoom sur la première zone... Il manque toute de même des informations, il va falloir jouer serré !

Présentation CUBECYLINDRE
Zoom sur la troisième zone en fin de fichier... Encore un oscillogramme plat avec disparation de 102 bits environ !

Quand on rencontre un cas comme celui-ci, la seule attitude raisonnable est d’aller se coucher en se disant que c’est fichu et que ce n’est de toute façon pas important, car jamais au grand jamais, le propriétaire de la cassette n’a pu lire un tel fichier !

Le début du fichier était tout à fait correct, je pouvais connaître le nom et le nombre d’octets à lire… « CUBE AND CYLINDER », bloc 4 : 0xCCE octets à lire, block : 6 0x57F octets à lire

Travail réalisé :

  1. analyse de la répétition des motifs juste avant et après les trous ;
  2. pour les parties non saturées modulées au-dessus ou en dessous du zéro, reconstitution des informations correctes grâce aux filtres que j’avais réalisés pour d’autres cas similaires ;
  3. pour les oscillogrammes plats avec perte de données, reconstitution arbitraire des zones manquantes en m’appuyant sur ce que je voyais avant et après les trous ;
  4. pour le checksum final, je n’avais qu’une chance sur 256 pour qu’il soit correct, donc, comme il se doit, à la toute fin du fichier mon programme wav2dai a affiché :
    	«Fonction LireBloc :
    	    checksum calculé 8A
    	    checksum lu 5A  :-(
    	    N° d'échantillon après lecture du checksum : 2556823
    	    Fonction TraiterFichierDAI : On tente tout de même d'écrire le bloc6 pour permettre une correction manuelle.
    	    Fonction TraiterFichier : *** Une erreur s'est produite dans TraiterFichierDAI()»
    
  5. et donc je suis allé modifier à la main, les signaux WAV pour transformer le 5A en 8A, ce qui m’a permis de générer un fichier KDA-005-1-05_30_CUBE AND CYLINDER.dai

Vu que c’est un programme BASIC, inutile de vous dire que depuis le début, j’étais intimement persuadé de travailler pour le roi de Prusse, les chances pour que ça donne un programme exécutable, me paraissaient voisines de zéro. Dénouement de l'affaire…

Le temps de transformer mon fichier « .dai » en un fichier ".wav" tout neuf avec mon programme dai2wav, et me voici prêt à faire un test sous MAME…

Présentation CUBECYLINDRE
Voici, ce que donnait la commande LIST, le début se passait bien mais la fin laissait à désirer…

Dans un ultime effort, j’ai tout de même osé taper 3 lettres, RUN :

Présentation CUBECYLINDRE
Alors, elle n’est pas belle la vie ? Une représentation audio pleine d’anomalies et avec deux trous, qui donne lieu à un programme BASIC comportant des anomalies et qui dessine une figure avec deux trous !

J'ai ensuite demandé à Claudius, s'il pouvait essayer de lister le SOURCE du programme, comme il sait bien le faire, et de voir s'il était possible de corriger ce qui doit l’être afin d'éviter les erreurs d’affichage de la commande LIST.

Claudius : C'est la table des symboles qui est viciée.
  • Le mode debug de MAME me donne l'image du programme.
  • J'extrais la liste ASCII.
  • Il manque des noms de variable et des caractères invalides nomment d'autres variables (voir liste d'origine dans le fichier .ZIP).
  • Après analyse et compréhension de la symétrie de certaines valeurs, j'ai remplacé les valeurs manquantes et erronées. (voir liste corrigée).
  • Je transforme cette liste en image. La commande Load de debug donne le programme dans MAME.
  • Je le sauve en STA et en WAV.
  • L'utilitaire de Bruno transforme le WAV en DAI.
  • Le fichier "touches actives" indique les touches et leur fonction. Voila tout est là pour l'essayer.

    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE
    Présentation CUBECYLINDRE

    Copyright 2004-2023 © Bruno VIVIEN tous droits réservés.