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.
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é :
- analyse de la répétition des motifs juste avant et après les trous ;
- 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 ;
- 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 ;
- 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()»
- 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…
Dans un ultime effort, j’ai tout de même osé taper 3 lettres, RUN :
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 fichier "touches actives" indique les touches et leur fonction. Voila tout est là pour l'essayer.