Category: Atmos

  • Fut’Oric

    Fut’Oric est un jeu de chiffres de type Futoshiki ce qui veut dire “non égal” en japonais. Il est conçu pour Atmos (c’est-à-dire pour la Rom 1.1 + Sedoric).
    Le programme est au format dsk et peut être utilisé avec un Atmos réel + Microdisc ou avec un Atmos émulé par exemple avec Euphoric. Mais pas avec Oricutron à cause d’une double bogue :
    1) Oricutron retourne le code 166 (#A6) au lieu de 165 (#A5) lorsque la touche FUNCT est pressée.
    2) Le “stick mode” ne marche pas pour la touche FUNCT. Même en modifiant le programme pour qu’il détecte le code #A6 au lieu de #A5, cela ne marche toujours pas car le “stick mode” est indispensable. Il faut donc attendre qu’Oricutron soit débogué…

    L’objectif est de remplir toutes les cases d’une grille avec des chiffres, de telle manière que chaque ligne et chaque colonne soient remplie de chiffres différents. C’est donc un jeu du style Sudoku, mais avec trois différences majeures :
    1) Les chiffres indiqués initialement sont moins nombreux.
    2) Cette réduction du nombre d’indices a été compensée avec l’apparition de quelques signes “inférieur à” et “supérieur à” placés entre certaines cases. Ces symboles < et > indique la relation entre les cases adjacentes.
    3) Les dimensions de la grille peut aller de 4×4 à 9×9 cases (en théorie, car cela devient vite trop compliqué au-delà de 6×6 cases).

    Dans cette adaptation bilingue (Français et Anglais) pour Oric, trois niveaux de difficulté vous attendent :
    1) Fastoche : avec 16 grilles de 4×4 cases à remplir avec les chiffres de 1 à 4. Ce niveau est surtout pédagogique, car ces grilles peuvent être aisément résolues.
    2) Faisable : avec 32 grilles de 5×5 cases à remplir avec les chiffres de 1 à 5. Ces grilles sont les plus intéressantes, car elles sont bien équilibrées entre difficulté et intérêt.
    3) Fortiche : avec 16 grilles de 6×6 cases à remplir avec les chiffres de 1 à 6. Elles vous demanderont probablement beaucoup de patience et de matière grise… avant de parvenir à les résoudre ! Les commandes sont simples et réduites au minimum :
    1) Les 4 flèches pour vous déplacer dans la grille.
    2) Un chiffre (de 1 à 4, 1 à 5 ou 1 à 6 selon la taille de la grille).
    3) FUNCT + chiffre pour placer une hypothèse.
    4) Chiffre 0 pour effacer une case.
    5) La touche R (Reset) pour recommencer la grille en cours.
    6) La touche S (Save) pour sauvegarder la grille en cours.
    7) La touche L (Load) pour recharger la grille précédemment sauvegardée.
    8) La touche B (Bruit) pour valider ou arrêter le clic de la touche FUNCT.
    9) Et pour finir, la touche Q (Quitter).

    Toutes les grilles ont évidemment une solution et peuvent être résolues avec un peu d’observation et de logique, sans avoir besoin d’y “aller au pifomètre”. La possibilité de placer des hypothèses dans les cases devrait vous aider dans les cas complexes.

    PS. Ce programme est également disponible sur http://andre.cheramy.net/oric.htm  Ce site contient notamment une section téléchargement très étoffée. Vous y trouverez tous mes programmes, des trucs et astuces, quasiment tous les livres connus sur l’Oric et le 6502, tout ce qui concerne le Super-Oric, etc. Hélas, il y a aussi plein de choses périmées ou pas mises à jour (merci pour votre compréhension, selon la formule usuelle débile). J’entre dans un âge avancé et il se pourrait que mon site disparaisse sans prévenir. Je vous invite donc à récupérer tous ce qui pourrait vous intéresser.
    Bien cordialement à vous tous.

  • Rapid’Oric

    Un jeu de puzzles logiques pour Rom 1.1 et Sedoric (Atmos réel, Euphoric ou Oricutron)

    par André C.

    Ce jeu a été inventé par Naoki Inaba sous le nom de “Nanba Burokku”. Par la suite, il a été renommé “Tectonics”, “Suguru” ou même “Number blocks”. La version Oric, adaptée aux possibilités de l’écran, bénéficie en outre d’une interface Français/Anglais.
    Le principe est simple : Le jeu se joue sur une grille. C’est la taille de la grille qui détermine la difficulté du jeu. Cette grille est divisée en zones de 1 à 5 cases, délimitées par des lignes épaisses. Le but du jeu est de remplir la grille avec des chiffres de 1 à 5 de telle manière que :
    1) Il n’y ait pas de chiffres identiques à l’intérieur d’une même zone.
    2) Il n’y ait pas de chiffres identiques dans les cases qui se touchent, même en diagonale.

    TROIS NIVEAUX DE DIFFICULTÉ POUR LA VERSION ORIC

    Les règles, qui sont simples, permettent au jeu d’être rapide, du moins pour le premier niveau de difficulté labellisé “Fastoche”. Ce niveau comporte 36 grilles de 4×5 cases pouvant être résolues en une à deux minutes chacune (ce qui vous occupera quand même pour un bon moment).

    Niveau “Fastoche”

    Les choses se compliquent avec le deuxième niveau “Faisable” dont les 24 grilles, comptent 9×5 cases. Ces grilles peuvent encore être résolues dans un temps raisonnable, mais le nom de “Rapid’Oric” que j’ai attribué à mon jeu commence à être un peu usurpé…

    Niveau “Faisable”

    Le troisième et dernier niveau “Fortiche” comporte 8 grilles de 11×9 cases et le jeu n’a plus rien de “Rapide”. Ces grilles sont réservées aux malades de la logique. Attention, vous risquez de vous arracher les cheveux (si vous en avez).

    Niveau “Fortiche”

    LES COMMANDES

    Pour résoudre ces grilles, vous disposez des commandes suivantes :
    -Les 4 flèches pour déplacer le curseur dans la grille.
    -FUNCT + flèche pour déplacer plus rapidement le curseur.
    -Touche de 1 à 5 pour placer un chiffre dans la case au curseur.
    -FUNCT + touche de 1 à 5 pour placer une hypothèse.
    -Touche 0 pour effacer la case au curseur.
    -Touche R pour Réinitialiser la grille en cours avec les valeurs de départ.
    -Touche S pour Sauver la grille en cours.
    -Touche L pour recharger (Load) la grille précédemment sauvée.

    UN PEU DE STRATÉGIE

    Il faut commencer par rechercher les zones ne comportant qu’une seule case, car elles ne peuvent contenir que le chiffre 1. Ensuite, vous pourrez peut-être trouver quelques chiffres dans les zones de 2 et 3 cases qui comptent forcément parmi les moins compliquées.
    Sinon, il faut rechercher les solutions les plus évidentes. Cette stratégie suffit en général pour les grilles “Fastoches”, c’est pourquoi elles sont si rapides à résoudre. Un peu plus de matière grise et de temps seront nécessaires pour les grilles plus grandes.

    Premier exemple, illustrant la progression des raisonnements logiques:

    Des extraits séquentiels d’une même grille sont rangés de gauche à droite

    On repère d’abord une zone mono-case et on y place le chiffre 1. Dans la zone située en dessous, une seule case peut recevoir le chiffre 2. Par suite, la place du chiffre 3 est évidente. Du coup, dans la case du dessus, le chiffre 3 ne peut aller qu’à un seul endroit. Les positions du 4, puis du 5 ne posent alors aucun problème. Et ainsi de suite, jusqu’à résolution de toute la grille…

    Deuxième exemple, emprunté à une grille plus complexe:

    Les extraits successifs de cette grille sont rangés de gauche à droite, puis de haut en bas.

    Ici encore on commence par une zone mono-case qui reçoit avec plaisir le chiffre 1. Dans la zone de 5 cases située au-dessus, le 1 ne peut être placé qu’à un seul endroit. On en profite pour renseigner la zone bi-cases située encore au-dessus en y plaçant les chiffres 1 et 2. Intéressons-nous à la zone de 5 cases en croix située au milieu de l’extrait, car le chiffre 4 ne peut aller qu’à un seul endroit. Par suite, plaçons le chiffre 5, puis le 2 et enfin le 1.
    La bonne stratégie consiste à tourner autour de ce bloc central de cases résolues. C’est ainsi qu’on trouve où mettre les chiffres 1 et 2 dans les zones adjacentes. J’attire votre attention sur le chiffre 2 ajouté dans le dernier extrait.
    La stratégie illustrée dans ce cas vous sera souvent très utile lorsque le jeu semblera bloqué. On effet, si on fait le bilan de ce que cette case pourrait contenir, on voit que les chiffres 1, 3, 4 et 5 sont interdits (règle n°2) et donc que seul le chiffre 2 peut y être placé.
    Il arrivera évidemment que plusieurs chiffres semblent possibles (à un moment donné) pour une même case. L’utilisation de la touche FUNCT vous permettra d’y placer des hypothèses. Ne perdez pas de vue que les hypothèses ne représentent pas seulement des possibilités, elles permettent aussi de statuer sur le contenu éventuel des cases adjacentes.
    Toutes les grilles ont bien sûr une solution, n’en doutez pas.
    En toute bonne logique… la logique finira par triompher !

  • Tout savoir sur Atmos (Eyrolles)

    Par Roger Politis & Bruno Vanryb, édité en 1984

    https://www.oric.org/ftp/ceo/ceomag/downloads///2006/disk/cd_2006/Complement/Tout savoir sur Atmos ocr.pdf

    Téléchargement possible pour les personnes inscrites sur le site ; sans obligation d’appartenance au CEO

  • Jeux en Basic sur Atmos (Sybex)

    Les jeux présentés dans ce livre utilisent des fonctions propres à votre micro-ordinateur : son, couleur, graphisme haute résolution, caractères graphiques définis par l’utilisateur, etc. Pour cette raison, ces programmes ne fonctionnent que sur l’Atmos et sont difficilement adaptables à des matériels différents. En particulier, la plupart de ces jeux ne fonctionnent pas sur l’Oric 1. Il est cependant possible de transformer l’Oric 1 en Atmos. (Consultez votre revendeur.) Au-delà du jeu lui-même, l’étude de ces programmes vous enseignera de nombreuses techniques de programmation qui vous seront très utiles pour développer vos propres programmes. ISBN 2-7361-0046-6

    https://archive.org/details/sybex-jeux-en-basic-sur-atmos

    Téléchargement ouvert à tous

  • Mieux programmer sur Oric1 et Atmos (Soracom)

    Publié en Avril 1985, cet ouvrage prend la suite du manuel de l’ORIC ATMOS ; il suppose donc que le lecteur connaît déjà les fonctions BASIC de l’appareil. Il reste à savoir s’en servir avec efficacité ;après le permis de conduire, il s’agit de devenir un bon conducteur… Nous mêlons continuellement deux choses. D’une part de bonnes méthodes éprouvées par les programmeurs chevronnés, et d’autre part une multitude de trucs, de tours de mains, qui sont eux très souvent spécifiques aux ORIC, et à l’ATMOS en particulier.

    En effet, il n’y a pas deux micro-ordinateurs identiques, chacun a ses points forts et ses points faibles et aucun n’est parfait (même s’il fait quinze fois le prix de l’ATMOS !). Nous allons donc apprendre à nous appuyer sur des qualités afin de contourner des lacunes. Parlant du perfectionnement de la programmation en BASIC, l’auteur a conscience qu’il s’adresse à des gens qui ont des idées de programmes, idées qui doivent se concrétiser d’une manière SOLIDE et RAPIDEMENT. Si votre idée est bonne, il ne faut plus en faire un programme boîteux truffé de fautes de débutant, mais un vrai LOGICIEL qui « tienne la route », même s’il est court (ce qui vous incitera à vous lancer dans de plus longs). Ces « bonnes habitudes à prendre » vous amèneront à la qualité professionnelle ; d’ailleurs nous n’hésiterons pas à vous familiariser un peu avec le jargon. Hormis les utilitaires du chapitre XII, qui complètent le BASIC ORIC, nous n’indiquons que des programmes très courts qui sont en somme des « passages » de démonstrations. Tous ont été testés, et ils sont représentés en 38 caractères par ligne, exactement comme vous le verrez sur votre écran (après avoir fait LIST).

    Notre principal souci a été de rester clair pour tous, car pour vous la micro-informatique est avant tout un LOISIR, donc pas de « cours magistraux » !

    La table des matières risque de vous surprendre un peu, on parle beaucoup de l’esthétique des pages d’écran, des sécurités «antiplantages » et pas un mot sur le langage machine ni sur la synthèse musicale….

    Question de priorité : Pour le langage machine, il faudrait y consacrer un énorme volume (et il en existe déjà) ; pour que la musique accompagne une image qui bouge, il faut du langage machine. Pour faire de la musique sans image (ou fixe), un instrument spécifique est meilleur marché et bien plus pratique qu’un micro-ordinateur… Alors qu’il y tant de belles choses à faire en BASIC ! Nota : Conçu à partir de l’ATMOS, cet ouvrage s’adresse aussi, disons à 90 %, aux possesseurs de l’ORIC 1

    ISBN 2-904032-30-4

    https://archive.org/details/soracom-mieux-programmer-sur-oric-1-et-atmos-ocr-dfol

    Téléchargement ouvert à tous

  • Nouveaux jeux sur Atmos (Edimicro)

    Serez-vous capable : 

    • d’échapper à une meute de loup? 
    • de chanter des airs de musique populaire? 
    • de dresser un serpent? 
    • de piloter un module lunaire? 

    Voici 30 programmes de jeux variés : jeux de pur divertissement qui utilisent le son et la couleur, puzzles, jeux d’arcade, problèmes de réflexion. Vous trouverez en annexe une section très utile : 

    • programme de SAUVEGARDE de l’écran 
    • programme utilitaire de RENUMEROTATION 
    • MUSIQUE sur Atmos 

    Les programmes sont clairement décrits et commentés. De courtes descriptions et des représentations de l’écran sont fournies. ISBN : 2-904457-18-6 

    https://archive.org/details/edimicro-nouveaux-jeux-sur-atmos-ocr-dfol

    Téléchargement ouvert à tous

  • Apprenez l’électronique sur Oric et Atmos (Soracom)

    L’étude des phénomènes électroniques est souvent rendue difficile par le côté abstrait des formules présentées dans les manuels scolaires. Pour la première fois, les circuits complexes deviennent vivants, les courbes se tracent automatiquement sous vos yeux en fonction des paramètres que vous introduisez dans votre micro ordinateur ORIC et ATMOS.

    Des circuits élémentaires jusqu’à l’étude de L’abaque de SMITH, Pierre BEAUFILS présente une approche entièrement nouvelle des circuits électroniques.

    Bon amusement !

    https://archive.org/details/soracom-apprenez-lelectronique-sur-oric-et-atmos

    Téléchargement ouvert à tous

  • Atmos à la conquête des jeux (Eyrolles)

    Après «ORIC-1 à la conquête des jeux», voici maintenant « ATMOS à la conquête des jeux», qui reprend l’ouvrage précédent en y ajoutant toutes les améliorations de l’ATMOS. « ATMOS à la conquête des jeux» se propose de vous entraîner dans son univers de programmes, celui des jeux, des dessins en couleur, des sonorités synthétiques informatiques. Vous y rencontrerez une gentille petite chenille, six caméléons et quelques gloutons. Vous voyagerez dans l’espace intersidéral. Vous verrez la tour de Hanoï, un grand mur de briques. Vous vous mesurerez au Master-Mind. Nul doute qu’après tout cela, vous désiriez mieux connaître votre ATMOS et, pourquoi pas, programmer vos jeux. Pour vous aider et vous guider dans ce labyrinthe aux 65536 adresses, « ATMOS à la conquête des Jeux» vous révèle le contenu de la mémoire de ATMOS, comment redéfinir les caractères, tous les trucs des modes HIRES et TEXT, et même, mais oui, comment fabriquer des lignes de programme Basic avec un autre programme…

    Bon amusement !

    https://archive.org/details/atmos-a-la-conquete-des-jeux

    Téléchargement ouvert à tous

  • 60 Solutions pour votre Oric1 + Atmos (ETSF)

    Cet ouvrage est un recueil d’idées, d’astuces tant logicielles que matérielles. Tout possesseur d’Oric 1 ou d’Atmos y trouvera de quoi améliorer le fonctionnement ou les performances de sa machine, de quoi perfectionner sa programmation. Grâce à la présentation en sections claires et concises qu’a adopté l’auteur, c’est un livre de consultation aisée et rapide qui vous permettra d’aller plus loin avec votre Oric.

    Principaux chapitres :

    • Architecture du système
    • Problèmes matériels
    • Interfaces
    • Extensions
    • Programme Basic en RAM
    • Applications
    • Langage machine
    • Problèmes usuels Basic
    • Imprimante
    • Optimisation des programmes
    • Ecran et routines machine

    ISBN 2-85535-104-9

    https://archive.org/details/etsf-60-solutions-pour-votre-oric/

    Téléchargement ouvert à tous

  • UNDEL

    Utilitaire Sedoric pour récupérer des fichiers après un DEL

    Catastrophe : Tout votre travail  est perdu à cause d’un DEL malencontreux ! Et vous étiez tellement dans l’action que, bien sûr, vous n’avez pas sauvegardé depuis un bon moment. Le piège principal (mais pas que) est dû à la commande DEL”*.*” pour laquelle il faut confirmer par Y ou N si chacun des fichiers est à supprimer ou pas. Une erreur est vite arrivée…

    Pas de panique rien n’est perdu, mais de grâce n’écrivez plus rien sur cette disquette ! Et si possible, protégez-là en écriture, faites-en une copie et opérez sur la copie.

    Petit historique

    L’envie de faire cet utilitaire m’est venue en 1995, en écrivant l’annexe n° 9 : “Que se passe-t-il lors d’un DEL ?”, à la page 511 de “Sedoric 3.0 à nu”. Et depuis lors, ce projet n’a pas bougé de ma liste “Tout doux” ! Au fil du temps, quelques Oriciens se sont adressés à moi pour récupérer leur travail effacé par erreur, ce qui a renforcé ma motivation. Mais c’est le corona qui m’a fait passer à l’acte…

    Quelques précisions

    Le programme UNDEL est écrit en Basic 1.1 et utilise plusieurs instructions Sedoric sans équivalent dans les autres DOS. Par conséquent, il ne tournera que sur un système équipé d’une Rom 1.1 et sous Sedoric. Il s’agit typiquement d’une configuration Atmos + Microdisc + Sedoric. UNDEL fonctionne avec tout système émulant cette configuration (Euphoric et Oricutron testés). Il est inutile de l’essayer avec un Oric-1 ou avec un Telestrat sous Hyper-Basic. Les instructions Sedoric PMAP, SMAP, CRESEC, FRESEC, etc. sont incontournables et si vous voulez vous en passer, il faut réécrire leur équivalent en code machine.

    Base technique du problème

    Que se passe-t-il lorsqu’on écrit un fichier avec SAVE*, ESAVE ou COPY* ? :

    Dans l’ordre : Un descripteur est créé, un ou plusieurs secteurs du fichier proprement dit sont enregistrés à la suite, les 2 secteurs de bitmap sont ajustés (plusieurs secteurs sont marqués occupés, le nombre de fichiers présents sur la disquette est incrémenté, le nombre de secteurs libres est réduit) enfin une entrée est ajoutée au directory et l’offset de la prochaine entrée libre est ajusté. Il est à noter que le descripteur est toujours écrit sur le 1e secteur libre à partir du début de la bitmap. Le ou les secteurs du programme proprement dit sont écrits, dans l’ordre, sur les secteurs libres suivants, qui ne sont pas forcément contigus lorsque la disquette a déjà subi plusieurs écritures / suppressions.

    Que se passe-t-il si on supprime un fichier avec DEL, DELBAK ou DESTROY ? :

    Lorsqu’il efface un fichier, SEDORIC ne modifie en fait que les secteurs de bitmap et de directory.

    L’entrée du directory est remplacée par des #00 et l’offset de la prochaine entrée libre est réajusté. Les 2 secteurs de bitmap sont actualisés (plusieurs secteurs sont libérés, le nombre de fichiers présents sur la disquette est réduit, le nombre de secteurs libres est augmenté). MAIS ni le secteur de descripteur, ni le ou les secteurs du fichier proprement dit ne sont modifiés.

    Ils restent intacts et sont seulement marqués “libres” dans la bitmap. Il n’y a donc aucun problème tant qu’un nouveau fichier n’est pas écrit dans ces secteurs libérés (et ce sera malheureusement en priorité sur ceux-là). Comme vous pouvez l’imaginer, il est techniquement possible de récupérer le fichier supprimé en restaurant l’entrée de directory, les secteurs de bitmap, quelques liens, etc.

    Et lorsque plusieurs fichiers ont été supprimés ? :

    Pas de problème tant qu’aucune écriture n’est opérée sur la disquette. Il faut relancer UNDEL plusieurs fois, jusqu’à ce qu’il ne trouve plus rien. Pour mes tests, j’ai effacé une disquette 80 pistes de 17 secteurs, double face qui était bourrée de fichiers de toutes sortes avec un DEL”*.*” et j’ai pu tout récupérer avec UNDEL !

    Et si malheureusement une écriture a été faite ?

    Là, il est plus hasardeux de restaurer spécifiquement le fichier qui vous intéresse. Mais ce n’est pas forcément perdu si celui-ci est mappé assez loin dans la bitmap. La localisation des fichiers dans la bitmap n’a rien à voir avec l’ordre des suppressions. En outre, après plusieurs écritures / suppressions, les fichiers sont fragmentés et la disquette est truffée de résidus. Ceci implique un algorithme de restauration assez complexe. Mais le miracle est possible !

    Le programme UNDEL pour Sedoric

    Sedoric a subi quelques modifications au fil du temps (par exemple ajout d’un 2e secteur de bitmap pour passer aux disquettes 3.5″, ajout d’un système de sous-directory, etc.). Dans un premier temps, je me suis concentré sur la version 3.0 de Sedoric, parce que c’est celle que je connais le mieux pour l’avoir dépiautée en détail. Mais quelques vérifications à postériori montrent que UNDEL marche avec les disquettes de toutes les versions de Sedoric. Il est même possible de récupérer des fichiers (simples ou mergés) de disquettes Stratsed car la structure de celles-ci est très proche de celle des disquettes Sedoric.

    Structure d’un fichier Sedoric

    Du plus simple, qui est un fichier “ordinaire” occupant moins de 123 secteurs, au plus compliqué, formés de plusieurs fichiers mergés, il est possible de dresser le schéma général suivant :

    Un fichier “ordinaire” est composé comme suit :

    -Le descripteur principal (obligatoire) du fichier, qui liste le ou les secteurs qu’il faut charger pour mettre le fichier en place dans la Ram. Si nécessaire, un lien vers un éventuel descripteur secondaire est renseigné.

    -Le ou les secteurs du fichier proprement dit, listés dans ce descripteur principal.

    -Un descripteur secondaire, s’il reste des secteurs à lister dont les coordonnées n’ont pas pu être insérées dans le ou les descripteurs précédents, faute de place.

    -Après ce descripteur secondaire, se trouvent les secteurs listés dans ce descripteur.

    -Si cela ne suffit pas, un autre descripteur secondaire est ajouté, etc.

    -Chaque descripteur est relié au suivant par un lien. Le lien du dernier descripteur du fichier est mis à zéro pour indiquer qu’il n’y a plus rien après.

    -Chacun de tous ces éléments (descripteurs et secteurs du fichier proprement dit) est écrit sur le prochain secteur libre. Après plusieurs écritures / suppressions, la disquette est parsemée de “trous” (secteurs libres isolés). Mais les divers morceaux d’un fichier sont toujours écrits dans le bon ordre, même s’ils ne sont pas forcément contigus. -Les informations propres à un fichier sont données dans l’entête de son descripteur principal. Ce sont : Le type de fichier, les adresses de début, de fin et d’exécution, le nombre total de secteurs à charger pour mettre l’ensemble de ce fichier en place. Cet entête est suivi par la liste (ou le début de la liste) des secteurs à charger. Les descripteurs secondaires ne comportent que le lien vers le descripteur suivant et la suite de la liste des secteurs à charger.

    Les fichiers “mergés” sont formés comme suit :

    Plusieurs fichiers “ordinaires” peuvent être rassemblés sous un même nom, on dit alors qu’ils sont “mergés”, ce qui est impropre car “merged” signifie “fusionnés”. Or les fichiers restent intacts et sont seulement juxtaposés. Ils sont mis à la queue-leu-leu, sans être modifiés, sauf les liens entre les différents descripteurs qui sont chaînés : Le dernier lien de chaque fichier “ordinaire” (normalement mis à zéro) est remplacé par l’adresse du descripteur principal du fichier mergé suivant. Et ainsi de suite, jusqu’au dernier descripteur dont le lien est bien sûr maintenu à zéro. Aucune autre modification n’est effectuée. La taille globale de l’ensemble ne figure qu’au niveau de l’entrée de directory correspondant à cet ensemble de fichiers mergés. Seul le nom du premier fichier est retenu et figure dans cette entrée. Les secteurs de ces différents fichiers, sont écrits à la queue-le-leu et dans le bon ordre, mais ne sont pas forcément contigus.

    Et un peu plus de détails sur ce qui se passe lors d’un DEL

    L’information cruciale est qu’après un DEL, le ou les “blocs” (descripteur + secteurs à charger) restent en place sans la moindre modification. Seuls la bitmap et le directory sont affectés : Toute trace de l’existence du ou des fichiers est complétement effacée. De plus, l’ordre des entrées est remanié pour récupérer de la place, mais pas toujours complètement remanié, car il reste des trous. Je n’entre pas dans l’explication de ce phénomène, sans intérêt pour le propos d’aujourd’hui.

    Alors quel est le bilan de la situation ?

    1) Dans la bitmap, tous les secteurs correspondant au fichier supprimé (descripteurs et secteurs) ont été marqués libres (réutilisables), bien que les secteurs en question soient toujours en place. Il faut noter que les fichiers effacés ne sont pas récupérables dans l’ordre de leur effacement, mais dans l’ordre de leur représentation dans la bitmap. La prochaine écriture sur la disquette va écraser en priorité les secteurs libérés qui figurent à partir du début de la bitmap et ce ne sont pas forcément ceux libérés par le dernier DEL. Donc, avec un peu de chance, il est PEUT-ETRE encore possible de récupérer le fichier qui vous intéresse, même si une écriture a eu lieu après le DEL. Dans la bitmap encore, le nombre de secteurs libres est bien sûr augmenté du nombre de secteurs libérés, tandis que le nombre de fichiers est décrémenté. Le nombre de secteurs de directory peut éventuellement avoir été réduit. Heureusement, toutes ces informations sont récupérables.

    2) Dans le directory, l’entrée correspondant au fichier supprimé a tout simplement été effacée, créant ainsi une entrée libre. Comme déjà indiqué, les entrées restantes ont éventuellement et partiellement été réorganisées pour gagner de la place. Une entrée supprimée, cela veut dire que les informations  suivantes ont disparu :

    -Le nom et l’extension du fichier.

    -Les coordonnées piste et secteur du descripteur principal du fichier.

    -Le nombre total de secteurs occupés par le fichier (ou les fichiers s’il s’agit de fichiers mergés). -L’attribut de protection du fichier.

    Stratégie utilisée par UNDEL

    Phase 1 : Retrouver le premier descripteur du fichier

    Coup de chance, le premier secteur libre de la disquette est forcément un descripteur principal. Si ce n’est pas le cas, soit aucun DEL n’a été effectué, soit une écriture est intervenue après le dernier DEL. On a ça par exemple lorsqu’un fichier est écrit et ne surcharge que partiellement un fichier précédemment détruit et si celui-ci était plus gros. Il reste des secteurs “libres” qui ont toutes les chances de ne pas être un descripteur. UNDEL sait gérer cette situation de manière appropriée. A l’issue de cette phase, ce premier descripteur est restauré, ainsi que les secteurs qui y sont listés. Mais le descripteur principal trouvé est-il bien celui du fichier que nous voudrions récupérer ? Si plusieurs DEL ont été effectués et que le descripteur qui nous importe ne correspond pas au premier secteur libre, il faudra recommencer l’opération de sauvetage plusieurs fois, jusqu’à ce que le bon soit trouvé et restauré.

    Phase 2 : Examiner le lien vers le descripteur suivant

    Si ce lien est nul, il n’y a aucun descripteur suivant, notamment pas de descripteur de fichier mergé. Il ne reste plus qu’à finaliser l’entrée de directory et la bitmap (voir plus bas “Phase 4”). Au contraire, si ce lien n’est pas nul, il indique la localisation piste/secteur du descripteur suivant, qui peut être soit un descripteur secondaire du même fichier, soit le descripteur principal d’un fichier mergé. Comment départager ces 2 hypothèses ?

    Phase 3 : Examiner s’il reste des secteurs à charger pour le fichier en cours

    Le descripteur principal nous a indiqué le nombre total de secteur à charger pour mettre en place le fichier en cours. Sachant qu’un descripteur principal peut lister les coordonnées de 122 secteurs et un descripteur secondaire celle de 127 secteurs, il est facile de calculer s’il reste des secteurs qui ne sont pas encore listés. Si c’est le cas, le descripteur trouvé est un descripteur secondaire. Sinon le descripteur trouvé est le descripteur principal d’un fichier mergé. En résumé, il n’y a que 3 possibilités : Soit c’est fini, soit il y a encore un descripteur secondaire, soit il y encore un descripteur principal de fichier mergé. Le programme rebouclera au niveau voulu selon le cas. Le descripteur trouvé est restauré, ainsi que les secteurs qui y sont listés. Après plusieurs éventuelles réitérations et quelle que soit sa complexité, le fichier proprement dit est entièrement restauré. Il ne reste plus qu’à finaliser l’entrée de directory et la bitmap.

    Phase 4 : Créer une entrée de directory pour ce fichier

    Lorsque le dernier descripteur du fichier ainsi que les secteurs correspondants ont été restaurés, il faut créer une entrée dans le directory. Partant du 1er secteur de directory (le secteur 4 de la piste 20) on recherche la première entrée libre. S’il n’y en a pas, on passe au secteur de directory suivant, etc. Si on atteint le dernier secteur de directory sans avoir trouvé d’entrée libre, il faudra créer un nouveau secteur de Directory dont la première entrée sera l’entrée libre voulue. On écrit alors dans l’entrée libre les informations suivantes :

    -Le nom et l’extension du fichier. Par défaut ce sera SANSNOM.COM, ce qui impliquera de renommer le fichier avant de relancer UNDEL pour en restaurer un autre.

    -Les coordonnées piste et secteur du descripteur principal du fichier. Ces données ont été trouvées lors de la phase 1.

    -Le nombre total de secteurs occupés par le fichier. C’est la somme du nombre de secteurs à charger pour mettre en place le fichier (simple ou mergé) et du nombre total de descripteurs.

    -L’attribut de protection du fichier. Par défaut, il sera positionné sur PROT (qui ne gêne pas si on veut renommer le fichier !). Finalement l’adresse de la prochaine entrée libre est mise à jour (ou à zéro si on vient d’écrire sur la dernière entrée libre du secteur de directory).

    Phase 5 : Finaliser la bitmap

    La bitmap proprement dite (représentation des secteurs en fonction de leur occupation / disponibilité) a été mise à jour au fur et à mesure de l’avancée des phases précédentes. Reste à finaliser l’entête ou plutôt les deux entêtes, car la bitmap occupe deux secteurs. Les données à mettre à jour se réduisent à :

    -Le nombre de fichiers (ancienne valeur plus un)

    -Le nombre de secteurs de directory (peut éventuellement avoir été augmenté). Le nombre de secteurs libres a été mis à jour au fur et à mesure des phases précédentes et il n’y a pas à s’en occuper.

    Phase 6 : Renommer le fichier restauré

    La récupération du fichier est terminée. L’affichage des caractéristiques de ce fichier (type de fichier, adresses de début, de fin, d’exécution et nombre de secteurs occupés) vous permettra de comprendre de quel fichier il s’agit et de le renommer correctement. S’il ne s’agit pas du fichier que vous vouliez ou si vous en avez plusieurs à récupérer, il suffit de relancer UNDEL (après avoir renommé SANSNOM.COM).

    Et si une écriture a eu lieu après le ou les DEL ?

    Je pensais au départ que l’absence d’écriture après la suppression était un impératif absolu. Mais comme je l’ai déjà indiqué, les fichiers effacés ne sont pas récupérable dans l’ordre de leur effacement, mais dans l’ordre de leur représentation dans la bitmap. D’autre part, les écritures se font à partir du début de la bitmap. Il est donc possible de récupérer un fichier effacé, s’il n’est pas en tête de bitmap. Après la suppression de plusieurs fichiers, il est possible qu’il existe encore plusieurs fichiers récupérables, même s’il y a eu écrasement de l’un d’entre eux après une écriture malheureuse ! Après avoir reçu un avertissement d’échec, vous avez la possibilité de demander à UNDEL de rechercher s’il n’existe pas encore quelque chose à restaurer sur la disquette. Les nombreux essais, que j’ai effectués, montrent que ça marche assez bien.

    Conclusion

    Que ce soit avec un Atmos réel ou avec un émulateur (Euphoric et Oricutron ont été testés), vous pouvez sans crainte récupérer tous les fichiers effacés par erreur. Et même après une écriture, il reste une chance que tout ne soit pas perdu. Le programme UNDEL est solide et je suis sûr qu’il vous donnera entière satisfaction. Bien que je n’aie jamais rencontré de problème au cours de mes très nombreux essais avec Sedoric 3.0, je vous conseille quand même de protéger votre disquette originale et de travailler sur une copie, on ne sait jamais ! Le zip qui accompagne cet article contient non seulement les fichiers Undel.dsk et Undel.tap, mais aussi des fichiers .txt très commentés,  au cas où vous voudriez retoucher le programme…