LOAD |
Charge |
---|---|
Basic du Commodore 64 |
Syntaxe
LOAD ["filename" [,devicenumber [,secondarynumber]]] |
Paramètres
Nom | Description | |
---|---|---|
filename | Ce paramètre permet d'indiquer le nom du fichier à charger. Dans ce contexte, certains caractères ont des significations spéciales, par exemple, les caractères génériques "*", "?" ou le caractère de chargement de répertoire "$"). | |
devicenumber | Ce paramètre permet d'indiquer le numéro de périphérique d'entreposage auquel accéder en utilisant le schéma suivant : | |
Valeur | Description | |
1 | Cette valeur permet d'indiquer un datasette. | |
8 à 15 | Cette valeur permet d'indiquer un numéro d'unité de disque (première unité de disque en option 8, deuxième unité de disque 9,...). | |
Si aucun numéro de périphérique n'est indiqué, l'ordinateur utilise par défaut le périphérique 1, généralement la Datasette. | ||
secondarynumber | Ce paramètre permet d'indiquer comment les données doivent être chargées : | |
Valeur | Description | |
0 | Cette valeur permet d'indiquer le programme sera chargé à l'adresse de début de la mémoire BASIC (2049/$0801). | |
1 | Cette valeur permet d'indiquer que le programme sera chargé de manière absolue, c'est-à-dire qu'il est entreposé à l'emplacement défini par les deux premiers octets de l'image du fichier PRG. Généralement nécessaire pour que les programmes en langage machine soient correctement localisés dans la mémoire. | |
Si ce n'est pas spécifié, la valeur par défaut est 0. |
Description
Cette commande permet de remplir la mémoire de l'ordinateur avec un programme entreposé sur disquette ou cassette.
Remarques
- La commande LOAD de BASIC est normalement utilisée pour charger des fichiers programme (PRG) comme BASIC, des programmes en langage machine, mais en fait tout type de données de dataset ou d'un unité de disque dans la RAM. C'est la tâche courante nécessaire avant qu'un programme précédemment entreposé puisse être édité et exécuté avec la commande RUN du BASIC.
- Si la commande LOAD est entrée directement, tous les fichiers ouverts seront fermés et la commande CLR de BASIC sera implicitement exécutée, et l'interprétation de la ligne courante s'arrêtera. Si LOAD est appelé à partir d'un programme BASIC, il se comporte comme un chargeur de chaîne. Après le chargement, l'exécution du programme est forcée de recommencer depuis le début (dans l'espoir que le programme en cours pourrait avoir été écrasé), mais contrairement à RUN, les variables et les tableaux sont conservés et peuvent contenir des informations d'état tout au long des chargements successifs.
- L'instruction LOAD exécuté en mode direct change toujours le pointeur SOV (start-of-variables). Si un programme ML est chargé sans relocalisation, SOV pointera directement en dessous, ce qui se traduira généralement par une discordance de pointeur de zone BASIC, conduisant parfois à un message d'erreur :
- Un utilisateur peut facilement charger à partir d'un Datasette en maintenant SHIFT tout en appuyant sur RUN/STOP. Après cela, le bouton PLAY du Datasette doit être enfoncé et le premier fichier sera recherché. Après un certain temps, le nom du premier fichier rencontré sera affiché à l'écran avec le message :
- Dans le cas où le nom de fichier donné ne correspond pas à un nom existant ou n'est pas de type programme BASIC (PRG) émet le message d'erreur suivant :
?OUT OF MEMORY ERROR |
Pour éviter cela, une nouvelle commande doit être exécutée après LOAD (à côté d'une astuce avec des pointeurs POKE).
FOUND filename |
pendant un court instant et suivi du processus de chargement dans la RAM. Ce délai peut être ignoré en appuyant sur la touche Commodore bien que la touche Barre d'espace soit plus fréquemment utilisée. Lors du chargement d'un fichier à partir du Datasette, l'écran sera vide afin que le VIC n'interfère pas avec la synchronisation du transfert de données directement traité par le microprocesseur. L'écran reste allumé lors du chargement à partir d'autres périphériques d'entreposage où les protocoles de prise de contact (comme sur le bus CEI/série) sont capables de faire face au comportement de VIC.
?FILE NOT FOUND ERROR |
Exemples
L'exemple suivant permet de charger un programme à partir du premier unité de disque 8 :
- LOAD "NOMPROG",8
L'exemple suivant permet de charger un programme absolu à partir du deuxième unité de disque 9 :
- LOAD "NOMPROG",9,1
L'exemple suivant permet de charger un programme dont le nom de fichier est entreposé dans la chaîne FILE$ absolue du Datasette :
- LOAD FILE$,1,1