Section courante

A propos

Section administrative du site

Entreposage sur bande magnétique

Les méthodes de base pour utiliser le magnétophone à cassettes pour les programmes sont SAVE, LOAD et VERIFY.

Nous avons vu que LOAD supprime l'ancien programme et les variables de l'ordinateur avant de charger les nouveaux depuis la bande magnétique; il y a une autre déclaration, MERGE, qui ne fonctionne pas. MERGE ne supprime une ancienne ligne de programme ou une ancienne variable que s'il le faut car il y en a une nouvelle avec le même numéro de ligne ou le même nom. Tapez le programme «dice» (des dés) de la page Les nombres aléatoires et enregistrez-le sur bande magnétique, sous le nom de «dice». Maintenant, entrez et exécutez ce qui suit :

  1. 1 PRINT 1
  2. 2 PRINT 2
  3. 10 PRINT 10
  4. 20 LET x=20

puis procédez comme pour la vérification, mais en remplaçant VERIFY "dice" par :

  1. MERGE "dice"

Si vous listez le programme, vous pouvez voir que les lignes 1 et 2 ont survécu, mais que les lignes 10 et 20 ont été remplacées par celles du programme de dés. x a également survécu (essayez PRINT x). Vous avez maintenant vu des formes simples des quatre déclarations utilisées avec la cassette :

Dans chacun d'eux, le mot-clef est suivi d'une chaîne de caractères : pour SAVE, cela donne un nom au programme sur bande magnétique, tandis que pour les trois autres, il indique à l'ordinateur quel programme rechercher. Pendant la recherche, il affiche le nom de chaque programme qu'il rencontre. Il y a quelques rebondissements à tout cela.

Pour VERIFY, LOAD et MERGE vous pouvez fournir la chaîne de caractères vide comme nom à rechercher : alors l'ordinateur ne se soucie pas du nom, mais prend le premier programme qu'il rencontre.

Une variante de SAVE prend la format suivant :

SAVE string LINE number

Un programme sauvegardé à l'aide de ceci est enregistré de telle manière que lorsqu'il est relu par LOAD (mais pas MERGE), il saute automatiquement à la ligne avec le numéro donné, s'exécutant ainsi de lui-même.

Jusqu'à présent, les seuls types d'informations que nous avons entreposés sur cassette ont été des programmes avec leurs variables. Il existe également deux autres types, appelés tableaux et octets.

Les tableaux sont traités légèrement différemment : vous pouvez enregistrer des tableaux sur bande magnétique en utilisant DATA dans une instruction SAVE en :

SAVE string DATA array name()

string est le nom que les informations auront sur la bande magnétique et fonctionne exactement de la même manière que lorsque vous enregistrez un programme ou des octets simples.

Le array name spécifie le tableau que vous souhaitez enregistrer, il ne s'agit donc que d'une lettre ou d'une lettre suivie de $. Rappelez-vous les parenthèses après; vous pourriez penser qu'ils sont logiquement inutiles, mais vous devez quand même les mettre pour faciliter la tâche de l'ordinateur.

Soyez clair sur les rôles distincts de la chaîne de caractères et du nom du tableau. Si vous dites (par exemple) :

  1. SAVE "Bloggs" DATA b()

puis SAVE prend le tableau de l'ordinateur et l'entrepose sur bande magnétique sous le nom "Bloggs". Lorsque vous tapez :

  1. VERIFY "Bloggs" DATA b()

l'ordinateur recherchera un tableau de nombres entreposé sur bande magnétique sous le nom "Bloggs" (quand il le trouvera, il écrira "Number array: Bloggs") et le comparera au tableau b de l'ordinateur :

  1. LOAD "Bloggs" DATA b()     

trouve le tableau sur bande magnétique, puis - s'il y a de la place pour cela dans l'ordinateur - supprime tout tableau déjà existant appelé b et charge le nouveau tableau à partir de la bande, en l'appelant b.

Vous ne pouvez pas utiliser MERGE avec des tableaux enregistrés.

Vous pouvez enregistrer des tableaux de caractères (chaînes de caractères) exactement de la même manière. Lorsque l'ordinateur recherche la bande magnétique et en trouve une, il écrit "Character array:" suivi du nom. Lorsque vous chargez un tableau de caractères, il supprimera non seulement tout tableau de caractères précédent portant le même nom, mais également toute chaîne portant le même nom.

L'entreposage d'octets est utilisé pour des éléments d'information sans aucune référence à l'utilisation de l'information - il peut s'agir d'images télévisées, de graphiques définis par l'utilisateur ou de quelque chose que vous avez créé vous-même. Il est représenté à l'aide du mot CODE, comme dans :

  1. SAVE "picture" CODE 16364,6912

L'unité d'entreposage en mémoire est l'octet (un nombre compris entre 0 et 255) et chaque octet a une adresse (étant un nombre entre 0 et 65535). Le premier nombre après CODE est l'adresse du premier octet à entreposer sur la bande magnétique, et le second est le nombre d'octets à entreposer. Dans notre cas, 16384 est l'adresse du premier octet du fichier d'affichage (contenant l'image de télévision) et 6912 est le nombre d'octets qu'il contient, nous enregistrons donc une copie de l'écran de télévision - essayez-le. Le nom "image" fonctionne exactement comme les noms des programmes.

Pour le recharger, utilisez :

  1. LOAD "picture" CODE

vous pouvez mettre des nombres après CODE dans le format suivant :

LOAD name CODE start, length

Ici, length n'est qu'une mesure de sécurité; lorsque l'ordinateur a trouvé les octets sur la bande magnétique avec le bon nom, il refusera toujours de les charger s'il y en a plus que la longueur - car il y a évidemment plus de données que prévu, cela pourrait sinon écraser quelque chose que vous n'aviez pas l'intention de être écrasé. Il donne le rapport d'erreur R Tape loading error. Vous pouvez manquer une longueur, puis l'ordinateur lira les octets, quel qu'en soit le nombre.

start affiche l'adresse où le premier octet doit être rechargé - cela peut être différent de l'adresse à partir de laquelle il a été enregistré, bien que s'ils sont identiques, vous pouvez manquer start dans l'instruction LOAD.

Le CODE 16394,6912 est si utile pour enregistrer et charger l'image que vous pouvez le remplacer par SCREEN$ - par exemple :

  1. SAVE "picture" SCREEN$
  2. LOAD "picture" SCREEN$

C'est un cas rare pour lequel VERIFY ne fonctionnera pas - VERIFY écrit les noms de ce qu'il trouve sur la bande, de sorte qu'au moment où il arrive à la vérification, le fichier d'affichage a été modifié et la vérification échoue. Dans tous les autres cas, vous devez utiliser VERIFY chaque fois que vous utilisez SAVE.

Vous trouverez ci-dessous un résumé complet des quatre déclarations utilisées dans cette page.

Le nom représente n'importe quelle expression de chaîne de caractères et fait référence au nom sous lequel les informations sont entreposées sur la cassette. Il doit être composé de caractères d'affichage ASCII, dont seuls les 10 premiers sont utilisés.

Il existe quatre types d'informations pouvant être entreposées sur bande magnétique : le programme et les variables (ensemble), les tableaux de nombres, les tableaux de caractères et les octets droits.

Lorsque VERIFY, LOAD et MERGE recherchent sur la bande magnétique des informations avec un nom donné et d'un type donné, ils affichent à l'écran le type et le nom de toutes les informations qu'ils trouvent. Le tri est indiqué par 'Program:', 'Number array:', 'Character array:' ou 'Bytes:'. Si le nom était la chaîne de caractères vide, ils prennent le premier lot d'informations du bon tri, quel que soit son nom.

SAVE

Enregistre les informations sur bande magnétique sous le nom donné. L'erreur F se produit lorsque le nom est vide ou comporte 11 caractères ou plus.

SAVE affiche toujours un message Start tape, then press any key et attend qu'une touche soit pressée avant de sauvegarder quoi que ce soit.

enregistre le tableau dont le nom est la letter ou la letter $ (cela n'a pas besoin d'avoir de relation avec le nom).

VERIFY

Vérifie les informations sur la bande magnétique par rapport aux informations déjà en mémoire. L'échec de la vérification génère une erreur R Tape loading error.

Vérifie le nom du tableau sur la bande magnétique par rapport à la letter du tableau ou à la letter $ en mémoire.

LOAD

Charge de nouvelles informations à partir de la bande magnétique, supprimant les anciennes informations de la mémoire.

L'erreur 4 Out of memory se produit s'il n'y a pas de place pour de nouveaux tableaux. Les anciens tableaux ne sont pas supprimés.

MERGE

Charge les nouvelles informations de la cassette sans supprimer les anciennes informations de la mémoire.



Dernière mise à jour : Mercredi, le 19 avril 2023