DEF SEG |
Définir le segment |
---|---|
GWBASIC |
Syntaxe
DEF SEG |
DEF SEG=expression |
Paramètres
Nom | Description |
---|---|
expression | Ce paramètre permet d'indiquer la valeur que doit contenir le segment. La valeur doit être situé entre 0 et 65535. |
Description
Cette commande permet de définir le segment courant du Basic.
Remarques
- L'adresse spécifiée est enregistrée pour être utilisée comme segment requis par les instructions BLOAD, BSAVE, PEEK, POKE et CALL.
- L'entrée de toute valeur en dehors de l'intervalle d'adresses (0 à 65535) entraîne une erreur "Illegal Function Call" et la valeur précédente est conservée.
- Si l'option d'adresse est omise, le segment à utiliser est défini sur le segment de données (DS) de GW-BASIC. Il s'agit de la valeur par défaut initiale.
- Si vous spécifiez l'option d'adresse, basez-la sur une limite de 16 octets.
- Les adresses de segment sont décalées de 4 bits vers la gauche ; donc pour obtenir l'adresse du segment, divisez l'emplacement mémoire par 16.
- Pour les instructions BLOAD, BSAVE, PEEK, POKE ou CALL, la valeur est décalée de quatre bits vers la gauche (cela est fait par le microprocesseur, pas par GW-BASIC) pour former l'adresse du segment de code pour l'instruction d'appel suivante (voir les instructions BLOAD, BSAVE, CALL, PEEK et POKE).
- Le GW-BASIC n'effectue pas de vérification supplémentaire pour s'assurer que l'adresse de segment résultante est valide.
Exemples
Voici un exemple permettant d'accéder directement aux informations de la RAM du BIOS afin de demander la taille de la mémoire conventionnel :
on obtiendra le résultat suivant :
Taille de la mémoire conventionnelle = 640L'exemple suivant permet de définir le segment sur le tampon d'écran :
- 10 DEF SEG=&HB800
L'exemple suivant permet de restaurer le segment DS du GW-BASIC :
- 20 DEF SEG
DEF et SEG doivent être séparés par un espace. Sinon, le GW-BASIC interprétera l'instruction DEFSEG=100 comme signifiant «affecte la valeur 100 à la variable DEFSEG».
Dernière mise à jour : Lundi, le 19 janvier 2015