Envoyer un e-mail à Collection ThomsonCollection Thomson
EditoForum 2002Liens
Nanoreseau
Docs
Logiciels
Matériel
Imprimer le document
Retour à la liste

File Already Closed

Vous voulez créer un programme assembleur pour utiliser sous Basic les routines de l'ExtraMoniteur et gérer un fichier sur disquette? Excellente idée! Cela permet de charger ou sauver des fichiers qu'aucune instruction Basic ne saurait gérer. D'autant plus que les FCB et les DSB de tous les lecteurs sont déjà déclarés, installés et les erreurs reliées directement au Basic bref: les routines de l'ExtraMoniteur ne demandent qu'à être utilisées.

Vous pokez alors votre nom de fichier de 11 caractères en &H624F, le numéro de lecteur en &H6049 et vous envoyez la sauce par un EXEC.

Mais pour peu qu'une erreur soit survenue pendant une sauvegarde ou un chargement, que vous n'ayez pas refermé le fichier et que vous demandiez une nouvelle opération sur le même fichier, votre programme Basic vous repousse par un impitoyable "File Already Open".

Il existe une solution propre (cf. "Désassemblage du Basic" par Obsidian).

Lorsque vous ouvrez un fichier par un OPEN#1 en input ou en output, le Basic va placer un repère dans la liste des canaux (qui peuvent être au nombre de 16) à l'adresse du premier canal. Mais le Basic utilise aussi un canal spécial pour tous les chargements logiciels introduits par les instructions LOAD, SAVE, LOADM, SAVEM, LOADP, SAVEP... Il suffit de déclarer votre fichier ouvert par ce canal, juste après son ouverture par la routine ExtraMoniteur OPEN de votre programme assembleur:

           LDB    #$80          Numéro de FCB
           ORB    #$80          + type "disk"
           ORB    $624B         + mode d'ouverture
           STB    $6943         Déclare au Basic le fichier ouvert

... puis de le déclarer fermé après sa fermeture par la routine ExtraMoniteur CLOSE de votre programme assembleur:

         CLR    $6943         Plus de fichier déclaré

L'avantage d'une telle installation est qu'avant de vous rendre la main, si une erreur survient malencontreusement et à n'importe quel moment, le Basic se chargera lui-même de refermer proprement le fichier d'après son mode d'ouverture.

Site
Plus
Forums
Code
Créations

*Site en favoris
*Page en favoris
*Site en démarrage
*Page en démarrage


Haut de page

Collection Thomson 2015 © Ghislain Fournier & François Mouret