https://public.etherpad-mozilla.org/p/ClefsPourVg5000

62/121 - 51% - updated 201702221400
utf8 encoding - unix linebreaking
-----------------------------------------------------------------
memento
CLEFS POUR VG 5000
François Normant
Editions du PSI
-----------------------------------------------------------------
CLEFS POUR VG 5000
-----------------------------------------------------------------
Autres ouvrages relatifs au VG 5000
- 102 programmes pour VG 5000 - Jacques Deconchat
- VG 5000 pour tous - Jean-Michel Jégo

Ouvrages d’initiation
- L’ordinateur aprivoisé - François Picard et Dane e Shaw
- Mon ordinateur - Jean-Claude Barbance
- Visa pour l’informatique - Jean-Michel Jégo
- Visa pour le Basic - Jean-Michel Jégo
- Le logotron informatique - Jean-Pierre Petit
- Minitel mode d’emploi - Dominique Schraen et Sibyle Rochas
- Les mots de la micro - Alan Freedman, adapté par Bernard Sauteur

La loi du 11 mars 1957 n autorisant aux termes 2 et 3 de article 41 d’une part, que lés - copies
ou reproductions atractement reserv

Cette représentant on ou repróduction perque que procédé que ce sont 

(C) Editions du P.S.I. B.P. 86 77402 LAGNY CEDEX 1985
ISBN 2-86595-259-2

-----------------------------------------------------------------
-----------------------------------------------------------------
CLEFS POUR VG 5000
François Normant
Editions du PSI
1985
-----------------------------------------------------------------
Présentation de l’auteur :

  François NORMANT est étudiant en mathématiques
spéciales. Autodidacte, il s’est orienté vers l’infor-
matique systéme et les télécommunications. Il est auteur
de logiciels utilitaires et d’ouvrages techniques sur
ORIC, MO5, TO7/70 et VG 5000.

  Du même auteur, aux éditions du P.S.I. :
- Assembleur et périphériques des MO5 et TO7-70

4                                              CLEFS POUR VG 5000
-----------------------------------------------------------------
SOMMAIRE
                                                            Pages
INTRODUCTION                                                    9

CHAPITRE I - BASIC                                             11
Répertoire des instructions et des opérateurs Basic            11
      Opérateurs arithmétiques et logiques                     11
      Opérateurs vidéo                                         12
      Opérateurs des variables numériques et alphanumériques   15
      Opérateurs de branchements et de boucles                 17
      Opérateurs concernant l’éditeur                          18
      Opérateurs concernant le clavier                         19
      Opérateurs concernant le langage machine                 19
      Opérateurs musicaux                                      20
      Opérateurs concernant le magnétophone                    20
      Opérateurs concernant les poignées de jeux               22
Liste des mots-clés Basic avec leur token                      23
Messages d’erreur                                              24

CHAPITRE II - CLAVIER-ECRAN                                    27
Caractères disponibles sur le VG 5000 et leur code ASCII       27
Codes de couleurs                                              29
Attributs des caractères                                       30
Codes de contrôle                                              31
Matrices des caractères en mode                                32

5                                              CLEFS POUR VG 5000
-----------------------------------------------------------------
SOMMAIRE

Matrices des caractères en mode graphique                      34
Grille écran                                                   36

CHAPITRE III - LANGAGE MACHINE DU Z80                          37
Schéma synoptic du Z80                                         37
Registres internes                                             38
      Registres principaux                                     38
      Registres secondaires                                    38
      Détail du registre d’état                                39
Modes d’adressage                                              41
Jeu d’instructions du Z80                                      42
      Abréviations utilisées                                   42
Tableau d’assemblage                                           48
      Codes des indicateurs d’état                             48
      Abréviations utilisées poru les opérandes                48
Tableau de désassemblage                                       64
      Abréviations utilisées                                   64
      Instructions non préfixées                               64
      Instructions préfixées par CB                            65
      Instructions préfixées par ED                            66
      Instructions indexées non préfixées                      67
      Instructions indexées préfixées par CB                   68

CHAPITRE IV - ADRESSES SYSTÈME                                 69
Carte mémoire du VG 5000                                       69
Généralités sur le système VG 5000                             70
      Organisation de la ROM                                   70
      Organisation des ports d’entrées-sorties du Z80          70
      Organisation des lignes Basic                            71
      Organisation du processeur vidéo EF 9345                 72
Routines RST                                                   73
Liste des commandes Basic                                      74
Liste des fonctions Basic                                      75
Routines utiles                                                76
Variables systèmes                                             82
      Vecteurs                                                 82
      Ecran et clavier                                         82

6                                              CLEFS POUR VG 5000
-----------------------------------------------------------------
SOMMAIRE

      Editeur de texte                                         83
      Générateur de sons                                       83
      Cassette                                                 84
      Divers                                                   84
      Imprimante                                               85
      Editeur de texte                                         85
      Divers                                                   86
      Interpréteur                                             86

CHAPITRE V - CIRCUITS ELECTRONIQUES                            89

Schéma synoptique du VG 5000                                   89
Brochages du connecteur et des prises                          90
Brochages des circuits intégrés                                91
      Unité centrale                                           91
      Microprocesseur graphique                                92
      RAM  8K                                                  93
      RAM 16K                                                  94

CHAPITRE VI - COMMENT ?                                        95

Transformer votre VG5000 version française en VG5000
version internationale (ou inversement)                        95
Passer en minuscules/majuscules par programme                  95
Changer la couleur du bord et l’aspect du curseur              95
Obtenir la longeur d’un programme                              96
Obtenir la longeur de la zone “variable”                       96
Obtenir l’adresse d’une ligne BASIC                            96
Restaurer la position courante du curseur                      97
Limiter l’affichage à n décimale(s)                            97
Stocker un programme en langage machine                        97
Passer des paramètres avec l’instruction CALL                  98
Utiliser les vecteurs                                          98
Revectoriser la touche CTRL DELTA (Reset)                      99
Justifier à droite l’affichage d’une chaîne de caractères     100
Justifier à gauche l’affichage d’une chaîne de caractères     100
Centrer l’affichage d’une chaîne de caractères                100

7                                              CLEFS POUR VG 5000
-----------------------------------------------------------------

Remplacer une partie d’une chaîne par une autre chaîne        101
Insérer une chaîne à l’intérieur d’une autre                  101

ANNEXES

ANNEXE I - Conversions hexadécimal/décimal/binaire            105
ANNEXE II - Caractéristiques principales                      111

INDEX                                                         113

8                                              CLEFS POUR VG 5000
-----------------------------------------------------------------
INTRODUCTION

  Ce mémento va devenir votre outil de travail privilé-
gié et vous sera bientôt indispensable pour exploiter
le VG 5000 au maximum des ses possibilités.

  Vous y trouverez rapidement toutes les informations
dont vous pourrez avoir besoin pour programmer effica-
cement, aussi bien en Basic qu’en langage machine.

  Cheque renseignement est donné de façon concise, le
but de ce livre étant l’accès quasi immédiat à l’infor-
mation recherchée. Cet ouvrage n’est donc en aucun cas
un cours de Basic ou de langage machine, mais plutôt un
aide-mémoire.

  Vous trouverez à la fin de ce mémento une liste de
“Trucs et astuces” : Les comment ?, destinée à mieux
utiliser le VG 5000 et ses périphériques.

9                                              CLEFS POUR VG 5000
-----------------------------------------------------------------

10
-----------------------------------------------------------------
BASIC

REPERTOIRE DES INSTRUCTIONS
ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-examples

Opérateurs arithmétiques et logiques

& "xxxx"       Permet d’évaluer une chaîne en tant que variable
               hexadécimale. L’opérande doit être compris entre
               0 et $FFFF.
               Ex : PRINT &"1A" affiche 26.
ABS (A)        Donne la valeur absolue de l’opérande A.
               Ex : PRINT ABS(-38.3) affiche 38.3.
A AND B        Effectue un "et logique" entre les opérandes A et
               B ou bien vérifie si deux conditions sont vraies.
               Ex : PRINT 96 AND 60 affiche 32.
                    IF C=0 AND D=1 THEN INIT6,6 efface l’écran
                    si C=0 et D=1.
ATN (A)        Donne l’arc tangente de l’opérande A.
               Ex : PRINT ATN(0) affiche O.
COS (A)        Donne le cosinus de l’opérande A qui doit être
               en radian.
               Ex : PRINT COS(0) affiche 1.
DEFFN A(X)     Permet de définir une fonction numérique ayant
               pour variable X et pour nom A.
               La fonction ainsi définie s’utilise avec l’ins-
               truction FN A(X).
               Ex : tapez le programme suivant :
                    10 CH(X)=(EXP(X)+EXP(-X))/2
                    20 SH(X)=(EXP(X)-EXP(-X))/2
               On a ainsi défini les fonctions cosinus et sinus
               hyperbolique.
EXP (A)        Donne l’exponentielle de l’opérande A, celui-ci
               doit être inférieur ou égal à 87.3365.
               Ex : PRINT EXP(1) affiche 2.71828. 

11                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé       Définitions-examples

FN A(X)       Permet d’utiliser une fonction prédéfinie par
              l’instruction DEFFN A(X).
              Ex: en utilisant les fonctions précédemnent
              définies, on obtient:
                   PRINT FN CH(2) affiche 3.7622
                   PRINT FN SH(2) affiche 3.62686

INT (A)       Donne la partie entière de l’opérande A, c’est-à-
              dire le plus grand entier inférieur ou égal à
              celui-ci. Ex : PRINT INT (-0.5) affiche -1.

LOG (A)       Donne le logarithme répérien de l’opérande A,
              celui-ci doit être supérieur à zéro.
              Ex : PRINT LOG(1) affiche O.

NOT A         Donne le complément à I d’un nombre ou d’une
              expression.

A OR B        Effectue un ”ou logique” entre les opérandes A et
              B ou bien vérifie si l'une au moins des condi-
              tions d’un test est vraie.
              Ex : PRINT 96 OR 60 affiche 124.
                   IF C=1 OR D=1 OR E=1 THEN INIT6,6 efface
                   l’écran si l’une des variables est à 1.

RND (A)       Donne un nombre aléatoire compris entre 0 et 1.
              Si A<0, le nombre tiré sena le même que le précé-
              dent, si A>0, le nombre tiré sera le suivant dans
              la séquence.
              Ex : PRINT RND (1).

SGN (A)       Donne 1 sil l’operande A est positif, -1 si néga-
              tif et 0 si nul.

SIN (A)       Donne le sinus de l’opérande A, celui-ci doit
              être exprime en radian.
              Ex : PRINT SIN (0) donne O.

SQR (A)       Donne la racine carrée de l’opérande A, celui-Cl
              doit être positif.
              Ex : PRINT SQR (2) donne 1.41421.

TAN (A)       Donne la tangente de l’opérande A. celui-ci doit
              être exprimé en radian.
              Ex: PRINT TAN (0) donne 0.

Opérateurs vidéo

CURSORX A     Positionne le curseur à l’abscisse spécifiée par
              A (colonne).

12                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé       Définitions-exemples

CURSORY A     Positionne le curseur à l'ordonnée spécifiée
              par A (ligne).

DELIM A,B,C   Met un message en relief en changeant la couleur
              du délimiteur (opérande A) et celle du fond
              (opérande B) et en le soulignant (opérande C).
              Les valeurs des opérandes A et B correspondent
              au tableau des codes de couleurs, l’opérande C
              doit avoir une valeur impaire pour un souligné
              et une valeur paire pour un non souligné.
              Ex : tapez le programme suivant :
                   10 1NIT 6,6
                   20 DELIM 1,2,0
                   30 PRINT "Bonjour a tous";
                   40 DELIM 3,6,0
                   Faites “RUN” et vous voyez un carré rouge
                   suivi de “Bonjour à tous” sur fond vert,
                   suivi d’un carré jaune.

DISPLAY A     Permet de modifier la vitesse d’affichage des
              caractères. L'opérande A doit être compris entre
              0 et 255. Le délai d’affichage entre deux carac-
              tères est 20*A en ms.
              L’opérande est facultatif et vaut 20 par défaut.
              Ex : tapez le programme suivant :
                   10 A$="ESSAI DE LA COMMANDE DISPLAY"
                   20 F0EI=1TOLEN(A$)
                   30 PRINT MID$(A#,I,1);
                   40 SOUND 200.1
                   50 DISPLAY
                   60 NEXT I
              Exécutez le programme, puis supprimez la ligne
              50 ; vous appréclerez alors l’intérêt de DISPLAY.

EG A,B,C      Initialise le made graphique spécial (caractères
              définis par l’utilisateur).
              L'opérande A correspond à la couleur de l’encre,
              l'opérande B à la couleur du fond. Voir le ta-
              bleau des codes de couleurs.
              L'opérande C définit le clignotement (0 = stable,
              1 = clignotant).
              Ex : tapez le programme suivant :
                   10 CURSORX 10 : CURSORY 10
                   20 GR 3,4,1
              Ce programme définit la ligne 10 à partir de la
              colonne 10, comme zone graphique clignotante
              encre jaune, fond bleu.

13                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemples

ET A,B,C       Initialise le mode texte spécial.
               L’opérande A correspond à la couleur
               L’opérande B correspond à l’attribut des caracté-
               res (voir tableau), l’opérande C au clignotement
               (0 = stable, 1 = clignotant).

GR A,B,C       Initialise le mode graphique normal.
               Les opérandes A, B, C sont les mêmes que por EG.

INIT A,B       Efface l’écran et change la couleur de l’encre
               (opérande A) et du fond (opérande B).

LPOS (A)       Donne l’abscisse (colonne) du dernier caractère
               imprimé (sur l'imprimante).

LPRINT         Permet l’impression d’une variable ou d’une chaîne
               de caractères sur l’imprimante.

PAGE           Permet de geler le scrolling de l’écran.

POS (A)        Donne l'abscisse (colonne) du dernier caractère
               affiché à l’écran.

PRINT          Permet l’impression d’une variable ou d’une chaî-
               ne de caractères à l’écran.

SCREEN         Permet d’afficher à l’écran une image qui a été
               réalisée après une commande STORE.

SCROLL         Permet le scrolling de l’écran aprés que celui-ci
               ait été gelé par la command PAGE.

SETEG A,"BBCCDDEEFFGGHHIIJJKK"  Permet de définir un caractère
               graphique spécial. L’opérande A définit le carac-
               tére (code compris entre 32 et 127), tandis que
               l’opérande entre guillemets définit la nouvelle
               matrice du caractère, chaque ligne étant repré-
               sentée par une valeur hexadécimale, soit deux
               caractères.
               Ex : matrice du caractère A :
                    00000000 soit 00 en hexadécimal
                    00111000 soit 38 en hexadécimal
                    01000100 soit 44 en hexadécimal
                    01000100 soit 44 en hexadécimal
                    01000100 soit 44 en hexadécimal
                    01111100 soit 7C en hexadécimal
                    01000100 soit 44 en hexadécimal
                    01000100 soit 44 en hexadécimal
                    00000000 soit 00 en hexadécimal
                    00000000 soit 00 en hexadécimal
               Ou peut donc redéfinir le A par :
                    SETET 65, "00384444447C44440000".

14                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemple

SETET A,"BBCCDDEEFFGGHHIIJJKK"  Command identique à SETEG, mais
               elle permet de définir un caractère de texte spé-
               cial.

SPC (A)        Affiche A espace(s) à la position courante du
               curseur. L’opérande A doit être compris entre 0
               et 255.

STORE          Permet de concevoir une image sans que celle-ci
               n’apparaisse à l’écran lors de sa fabrication. On
               évite ainsi la désagréable apparition de motifs
               successifs.
               Pour faire afficher l’image ainsi conçue, on
               utilise SCREEN.
               Nota : DISPLAY, END, STOP, un scrolling d’écran,
               une erreur, font aussi apparaître l’image.
               Ex : reprenez le programme donné pour DISPLAY en
               supprimant la ligne 50 et en rajoutant les 1i-
               gnes :
                     5 STORE
                    70 SCREEN
               Remarque: la ligne 70 est facultative puisque le
               programme s’achêve derrière (=END). Elle a uni-
               quement un but pédagagique.

TAB (A)        Permet d’effectuer des tabulations aussi bien sur
               l’écran que sur l’imprimante. L’opérand A doit
               être compris entre 1 et 39.

TX A,B,C       Initialise le mode texte normal. Les opérandes A.
               B, C sont les mêmes que pour ET.

Opérateurs de variables numériques et alphanumériques

ASC (A$)       Donne le code ASCII du premier caractère de la
               chaîne A$ (voir tableau des codes ASCII).
               Ex : PRINT ASC ("A") affiche 65.

CHR$ (A)       Donne le caractère correspondant au code ASCII
               défini par l’opérande A.
               Ex : PRINT CHR$ (65) affiche un A

CLEAR A.B      CLEAR efface toutes les variables, les opérandes
               A et B sont optionnels. Le premier permet de dé-
               finir la totalité de l’espace occupé par les
               chaînes (valeur comprise entre -32768 et 32767),
               le second définit l’adresse maximale jusqu’à

15                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPERATIFS BASIC

Mot-clé        Définitions-examples

               laquelle le Basic peut s’implanter (valeur infé-
               rieure à 32767 pour VG 5000 16K ou 42864 avec
               l’extension mémoire).
               Cette commande sera utilisée pour réserver de la
               place pour un programme en langage machine.

DATA           Permet de définir une liste de données qui seront
               lues par l’instruction READ.
               Ex : DATA POMME,POIRE,BANANE

DIM variable   Permet de dimensionner un tableau de variables
               ndriques ou alphanumériques.
               Ex : DIM A$(10) DIM A(10,10)

LEFT$ (A$,B)   Donne une chaîne composée des B premiers caractè-
               res de A$.
               Ex : PRINT LEFT$ ("BONJOUR",3) affiche ‘BON’ .

LEN (A$)       Donne 1a longueur de la chaîne A$.
               Ex : PRINT LEN ("COUCOU") affiche 6.

LET            Affecte une valeur à une variable.
               Pratiquement inutilisée, cette commande est op-
               tionnelle.
               Ex : LET A=2        <=>  A=2
                    LET B$="Toto"  <=>  B$="Toto"

MID$ (A$,B,C)  Donne une chaîne composée de C caractères de A$ a
               partir du B ième.
               Ex : PRINT MID$("COUCOU",3,2) affiche ‘UC’ .

READ variable  Permet de lire des données définies par l’instruc-
               tion DATA.
               Ex : READ M

RESTORE A      Positionne 1e pointeur de lecture DATA sur la li-
               gne A. On peut ainsi accéder a des données par
               rapport au numéro de ligne.
               Ex : RESTORE 10:READ A

RIGHT$ (A$.B)  Donne une chaîne composée des B derniers caractè-
               res de A$.
               Ex : PRINT RIGHT$ ("B0NJOUR",4) affiche ‘JOUR’ .

STR$ (A)       Interprète une variable numérique comme une chaî-
               ne de caractères.
               Ex : A$ = STR$(12)

VAL (A$)       Interprète une chaîne de caractères comme une va-
               riable numérique (si 1a chaîne est composée de
               caractères autres que des chiffres. elle vaut 0).
               Ex : PRINT VAL ("12") affiche 12.

16                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemples

Opérateurs de branchements et de boucles

CONT           Permet de continuer l’exécution d’un programme
               aprés que celui-ci a été interrompu par un STOP.

END            Achève l'exécution d'un programme.

FOR..TO..NEXT..STEP  Permet de faire une boucle, c’est-à-dire de
               répéter une suite d’instructions.
               FOR I= A TO B STEP C: suite d’instructions :
               NEXT I a pour effet d’effectuer à chaque passage
               sur le NEXT I, un incrément de C du pointeur I
               jusqu’à ce que I atteigne B. l’incrément C est
               optionnel et vaut par défaut 1.
               Ex : tapez le programme suivant :
                    10 FOR I=32 TO 127
                    20 PRINT CHR$(I);
                    30 NEXT I
               Faites RUN, le jeu de caractères du VG 5000 appa-
               raît.

GOSUB A        Effectue un appel à un sous-programme situé à la
               ligne A. Lorsqu’une instruction RETURN sera ren-
               contrée, l’exécution du programme reprendra à la
               ligne suivant le GOSUB A.

GOTO A         Effectue un saut à la ligne A.

IF...THEN      Effectue un test. Si celui-ci est vrai, alors
               l’action suivant le THEN est exécutée, sinon la
               ligne suivante est directement exécutée.
               On peut trouver, derrière le THEN, soit un numéro
               de ligne, soit une suite d’instructions.
               Ex : IF A=0 THEN PRINT "COUCOU"

IF...GOTO      Identique à IF...THEN. mais le GOTO peut être
               uniquenent suivi d’un numéro de ligne.

ON A GOSUB...  Effectue un appel à différents sous-programmes
               suivant la valeur de A.
               Le branchenent s’effectue au A ième numéro de
               ligne.
               Ex : ON A GOSUB 500,600,700,800
               Si A=1, le branchement s’effectue en 500.
               Si A=2, le branchement s’effectue en 600.
               ...

ON A GOTO      Identique à ON GOSUB, mais effectue un saut au
               lieu d’un appel à un sous-programme.

17                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemples

RETURN         Perret de terminer un seus-progromeo et
               au programme principal.

RUN A          Exécute un programme à partir de la ligne A en
               effaçant les variables. Le numéro de ligne est
               facultatif ; s’il n’est pas spécifié, le program-
               me s’exécute à partir de la première ligne.

STOP           Achêve l’exècution d’un programme et affiche le
               numéro de la dernière ligne exécutée

Opérateurs concernant l’éditeur

AUTO A,B       Permet la numérotation automatique des lignes
               lorsque l’on écrit un program. La première li-
               A et B sont pris par défaut lorsqu’ils ne sont
               pas spécifiés à 10.
               Pour sortir du mode AUTO., on doit, aprés avoir
               validé la derniere ligne, faire reculer le cur-
               seur d’une case et appuyer sur RET.
               Lorsqu’ue ligne existe deid. un “carreau” est
               affiche à côté du numéro de ligne, ce caractère
               est transparent et ne sert que d’indicateur.

FRE (A)        Donne le nombre d’octets dispOnlbles pour loti.
               lisateur.
               Ex : PRINT FAR (A) donne 13i58 à l’allumage (sur
               un VG 5000 16K).

FRE (A$)       Donne le nontre d’octets disponibles pour les
               châines (mis à jour par CLEAR A).
               Ex : PRINT FRE (A$) donne 50 à l’allumage.

LIST A         Liste à l’écran le programme en mémoire à partir
               de la ligne A. L’Opérande A est facultatif ; s’il
               est omis, le programme est listé à partir de la
               premiére ligne.

LLIST A        Identique à LIST, mais liste le programme sur
               l’imprimante.

NEW A          Permet d’effacer partiellement un programme de-
               puis la ligne A jusqu’à la fin.
               Si l’opérande A n’est pas précisé. le Program
               est effacé totalement.

REM            Permet d’insérir des remarques à l’intérieur d’un
               programme. Celles-ci seront totalement ignorées
               par le VG 5000 lors de l’exécution du programme.

18                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemples

RENUM A,B,C    Renuinérote avec l’incrément C le progrartne. d
               partir de la ligne B. en lut donnant le nuntro
               Les paramètres A, B, C sont facultatifs sit Ont
               pour valeur 10 par défaut.

Opérateurs concernant le clavier

INPUT          Acquisition de données au clavier et stockage
               dans le variable spécifiée, Celle-ci peut être
               autant numérique qu’alphanumérique. Cette ins-
               truction permet aussi d’afflcher un message. La
               fin de la saisie doit être validée par RET.
               Ex : tapez le programme suivant
                    10 INPUT "Votre prenom";A$
                    20 PRINT "Bonjour";A$

KEY (0)        Donne la valeur ASCII de le touche enfoncée au
               relent on l’ordinateur exécute l’Instruction.
               Pour les lettres. la valeur renvoyée est celle
               correspondant d la lettre minuscule.
               Ex : tapez le programme suivant :
                    10 A=KEY(0)
                    20 PRINT CHR$(A)
                    30 GOTO 10

Opérateurs concernant le langage machine

  Toutes les adresses doivent tore comprises entre -32768 et
32767.

CALL A         Permet d’appeler un programme en langage machine
               ayant A por adresse d’exécution. Les codes se
               trouvant à l’adresse A doivent être évidemment
               cohérents, sinon on risque un “plantage” intem-
               pestif du VG 5000.

PEEK (A)       Donne la valeur de l’octet ayant A pour adresse.
               Ex : PRINT PEEK(&"0500")

POKE A,B       Affecte la valeur B (comprise entre 0 et 2551
               l’octet ayant Atour adresse.
               Ex : POKE &"4890",1

19                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemples

USR (A)

Remarque : certaines de ces instructions seront étudiées en dé-
tail dans la rubrique “Les Comment...”.

Opérateurs musicaux

PLAY A$        Permet de jouer une séquence de notes de musique.
               Cette séquencre s’organise sous forme d’une chaîne
               de caractères composée des notes elles-mêmes,
               leur durée, de leur octave, de leur tempo...).
               Les n otes sont représentées par les lettres A à G
               (A=la, B=si,..., G=sol).
               Le dièse est codé par un + et le bémol par un -,
               Ex : le diès est représenté A+.

SOUND A,B,C    Permet d’emettre un son suivant les opérands
               B et C, chacun compris entre 0 et 255.
               A définit la fréquence du son.
               B définit la durée du son.
               C est un paramètre facultatif que définit le
               port cyclique de l’onde. Il vault 0 par défaut
               qui correspond à une onde pure.
               Ex : SOUND 110,30,7

Opérateurs concernant le magnétophone

  Por toutes ces instructions, "XXXX" représente un nom de fi-
chier que ne doit pas exéder six caractères (pour toutes les
opérations de chargement, ce nom est facultatif ; s’il est omis,
le premier fichier rencontré sera chargé).

  Pour toutes les fonctions de sauvegarde, la vitesse lente
(1200 bauds) est prise par défault ; on peut cependant spécifier

20                  (incompleto)
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemples

la vitesse rapide (2400 bauds) en faisant suivre le CSAVE ou
SAVE de (2).
EX : CSAVE(2),"TOTO"

  Toutes les adresses doivent être comprises entre -32768 et
32767.

CLOAD "XXXX",ligne  Charge dans le VG 5000 le programme "XXXX"
               et l’exécute à partir de la ligne spécifiée. Le
               numéro de ligne est facultatif.
               Le programme Basic qui se trouvait dans la mé-
               morie est effacé.
               Cette commande permet aussi bien de charger les
               programmes Basic (sauvés par CSAVE), les program-
               mes en langage machine (sauvés par CSAVEM), et
               les écrans (sauvés par CSAVES).

CLOAD "XXXX",chaîne  Charge la chaîne spécifiée. Elle devra être
               préalablement déclarée.

CLOAD*"XXXX",tableau  Charge le tableau précédemment sauvé sous
               le même nom. Celui-ci devra être dimensionné
               avant le chargement.

CLOAD? "XXXX"  Compare le programme présent dans la mémoire et
               celui sur cassette. S’il y a une différence, le
               message “mauvais fichier” est affiché.

CLOADA "XXXX",ligne  Charge le programme "XXXX" en le concaté-
               nant à celui qui réside déjà en mémoire (à condi-
               tion que les numéros de ligne soient différents),
               et l’exécute éventuellement à partir de la ligne
               spécifiée.

CSAVE "XXXX",ligne  Sauve le programme résident en mémoire sous
               le nom "XXXX" en spécifiant une éventuelle ligne
               d’exécution au chargement.

CSAVE* "XXXX"tableau  Sauve le tableau numérique ou alphanumé-
               rique sous le nom "XXXX".

CSAVEL         Laisse tourner le moteur du magnétophone de ma-
               nière à dépasser la bante amorce.

CSAVEM "XXXX",A,B,C  Sauve B octet(s) à partir de l’adresse A
               et spécifie C comme éventuelle adresse d’exécu-
               tion.

CSAVES "XXXX"  Sauve l’écran sur la cassette.

CSAVEX "XXXX"chaîne  Sauve la chaîne spécifiée sous le nom
               "XXXX".

21                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
REPERTOIRE DES INSTRUCTIONS ET DES OPÉRATEURS BASIC

Mot-clé        Définitions-exemples

LOAD A,B       Charge un programme Basic sauvé en ASCII à partir
               de la ligne A jusqu’à la ligne B, et effectue un
               éventuel mixage avec le programme existant déjà
               dans le VG 5000.

SAVE A,B       Sauve en ASCII un programme Basic de la ligne A
               jusqu’à  la ligne B. Cette opération efface ensui-
               te le programme de la mémoire.

Opérateurs concernant les poignées de jeux

  Voici à quoi correspondent les valeurs de A :
      A=0 : poignée de droite ;
      A=1 : poignée de gauche ;
      A=2 : touches du clavier.

ACTION (A)     0 : aucun bouton enfoncé ;
               1 : bouton action 1 enfoncé ;
               2 : bouton action 2 enfoncé ;
               3 : boutons action 1 et 2 enfoncés.

STICKX (A)     Indique si les poignées de jeux (ou les flèches
               du clavier) sont orientées à droite ou à gauche.
               “repos”  = 0
               “droite”  = 1
               “gauche”  = 255

STICKY (A)     Identique à STICKX, mais avec haaut et bas.
               “repos”  = 0
               “bas”    = 1
               “haut”   = 255

22
-----------------------------------------------------------------
LISTE DES MOTS-CLEFS BASIC AVEC LEUR TOKEN

Instruction Token Token      Instruction Token Token
            Dec   Hex                    Dec   Hex

END         128   80         MODEM       176   B0
FOR         129   81         NEW         177   B1
NEXT        130   82         TAB(        178   B2
DATA        131   83         TO          179   B3
INPUT       132   84         FN          180   B4
DIM         133   85         SPC(        181   B5
READ        134   86         THEN        182   B6
LET         135   87         NOT         183   B7
GOTO        136   88         STEP        184   B8
RUN         137   89         +           185   B9
IF          138   8A         -           186   BA
RESTORE     139   8B         *           187   BB
GOSUB       140   8C         /           188   BC
RETURN      141   8D         ^           189   BD
REM         142   8E         AND         190   BE
STOP        143   8F         OR          191   BF
ON          144   90         >           192   C0
LPRINT      145   91         =           193   C1
DEF         146   92         <           194   C2
POKE        147   93         SGN         195   C3
PRINT       148   94         INT         196   C4
CONT        149   95         ABS         197   C5   
LIST        150   96         USR         198   C6
LLIST       151   97         FRE         199   C7
CLEAR       152   98         LPOS        200   C8
RENUM       153   99         POS         201   C9
AUTO        154   9A         SQR         202   CA
LOAD        155   9B         RND         203   CB
SAVE        156   9C         LOG         204   CC
CLOAD       157   9D         EXP         205   CD  
CSAVE       158   9E         COS         206   CE 
CALL        159   9F         SIN         207   CF 
INIT        160   A0         TAN         208   D0 
SOUND       161   A1         ATN         209   D1
PLAY        162   A2         PEEK        210   D2
TX          163   A3         LEN         211   D3
GR          164   A4         STR$        212   D4
SCREEN      165   A5         VAL         213   D5
DISPLAY     166   A6         ASC         214   D6
STORE       167   A7         STICKX      215   D7
SCROLL      168   A8         STICKY      216   D8
PAGE        169   A9         ACTION      217   D9
DELIM       170   AA         KEY         218   DA
SETE        171   AB         LPEN        219   DB
ET          172   AC         CHR$        220   DC
EG          173   AD         LEFT$       221   DD
CURSOR      174   AE         RIGHT$      222   DE
DISK        175   AF         MID$        223   DF

23                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
MESSAGES D’ERREUR

Les messages d’erreur sont de la forme :
    <message d’erreur> en <No de ligne>

- Annulé-repositionner la bande
  Le chargement a été interrompu à cause d’une mauvaise manipula-
tion. Il faut allors recomencer le chargement.

- Appel de fonction incorrect
  Utilisation d’une fonction avec un paramétre hors-intervalle.

- Arrêt en ligne nnnn
  Intervient lorsque la command ou la touche STO a été utili-
sée. Le número de la ligne exécutée avant l’interruption est
affiché.

- Chaîne trop longue
  Tentative de déclaration d’une chaîne de longeur supérieure à
255 charactères.

- Dépassement de capacité
  Le résultat d’une opération arithmétique est supérieur ou égal
à 10E38.

- Dernière information ignorée
  Apparaît orsque l’on demand l’édition d’une donnée non défi-
nie.

- Division par zéro
  Tentative d’effectuer une division par zéro.

- Données épuisées
  Intervient lorsqu’une instruction READ est exécutée alors
qu’il ne reste plus de données à lire dans les lignes DATA.

- Espace-chaîne épuisé
  Tentative de déclaration d’une chaîne dépassant la capacité
mémoire alluée par un CLEAR (50 octets par défaut).

- Erreur de syntaxe
  Une instruction est mal orthographiée ou utilisée avec de mau-
vais arguments.

24                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
MESSAGES D’ERREUR

- Fichier non correspondant
  Erreur survenue durant la vérification d’un fichier sur cas-
sette.

- Fonction utilisateur non définie
  L’instruction FN a été utilisée sans que la fonction ait été
définie par DEFFN.

- Foromule chaîne trop complexe
  L’expression chaîne est trop complexe pour être interprétée.

- Impossible de continuer
  Impossibilité de reprendre l’exécution d’un programme par CONT
(notamment après une erreur ou un arrêt par CNTL Delta).

- Imprimante pas prête
  L’imprimante ne répond pas à un appel du VG 5000.

- Incorrect en direct
  Tentative d’exécuter une commande interdite en mode direct.
C’est le cas de INPUT et DEFFN.

- Indice hors des limites
  Tentative d’utiliser un élément de tableau inexistant.

- Ligne non définie
  Tentative de référencer une ligne inexistante.

- Mauvais fichier
  Un défaut est survenu durant le chargement ; le programme n’est
pas exécutable.

- NEXT sans FOR
  L’instruction NEXT a été rencontrée alors que l’instruction
FOR correspondante n’existe pas ou est mal placée.

- Non reconnue
  Erreur détectée mais non répertoriée.

- Opérande mal adapté
  Valeur alphanumérique affectée à une variable numérique ou
inversement.

25                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
MESSAGES D’ERREUR

- Opérando manquant
  I1 manque un opérande dans une expression numérique.

- Passé : “nom de programme”
  Indique le nom du programme que le VG 5000 rencontre et qui ne
correspond pas au nom précisé dans la commande de chargement.

- Pause...
  S’affiche lors de l'interprétation d’un fichier ASCII par le
VG 5000 durant une command LOAD.

- Périphérique non connecté
  Le périphérique appelé est absent.

- Recommencez au début
  Une quantité alpanumérique a été introduite lors d’un INPUT
alors qu’i1 s’agissait d’une demande de type numérique.
  Il faut répondre à nouveau à l’INPUT.

- Retour sans GOSUB
  Une instruction RETURN a été rencontrée sans qu’il y ait eu
de GOSUB.

- Sortie de mémoire
  La mémoire allouée au programme ou aux variables est saturée ;
survient également lorsque trop de boucles FOR...NEXT ou de
GOSUB ont été imbriquées.

- Tableau redimensionné
  Tentative de dimensionner un tableau qui a déjà été déclaré.

- Trouvé : “nom de programme”
  Indique le nom du programme que le VG 5000 est en train de
charger.

26                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
CLAVIER ÉCRAN
JEU DE CARACTÉRES

Caractére  Code  Code      Caractére  Code  Code    
           Dec   Hex                  Dec   Hex       

    !       33   21            F       70   46  
    "       34   22            G       71   47  
    #       35   23            H       72   48  
    $       36   24            I       73   49  
    %       37   25            J       74   4A  
    &       38   26            K       75   4B  
    '       39   27            L       76   4C  
    (       40   28            M       77   4D  
    )       41   29            N       78   4E  
    *       42   2A            O       79   4F  
    +       43   2B            P       80   50  
    ,       44   2C            Q       81   51  
    -       45   2D            R       82   52  
    .       46   2E            S       83   53  
    /       47   2F            T       84   54  
    0       48   30            U       85   55  
    1       49   31            V       86   56  
    2       50   32            W       87   57  
    3       51   33            X       88   58  
    4       52   34            Y       89   59  
    5       53   35            Z       90   5A  
    6       54   36            [       91   5B  
    7       55   37            \       92   5C  
    8       56   38            ]       93   5D  
    9       57   39            ^       94   5E  
    :       58   3A            _       95   5F  
    ;       59   3B            `       96   60  
    <       60   3C            a       97   61  
    =       61   3D            b       98   62  
    >       62   3E            c       99   63  
    ?       63   3F            d      100   64 
    @       64   40            e      101   65  
    A       65   41            f      102   66  
    B       66   42            g      103   67  
    C       67   43            h      104   68  
    D       68   44            i      105   69  
    E       69   45            j      106   6A  

27
-----------------------------------------------------------------
JEU DE CARACTÉRES

Caractére  Code  Code      Caractére  Code  Code    
           Dec   Hex                  Dec   Hex       

    k      107   6B            v      118   76 
    l      108   6C            w      119   77 
    m      109   6D            x      120   78 
    n      110   6E            y      121   79 
    o      111   6F            z      122   7A 
    p      112   70            {      123   7B 
    q      113   71            |      124   7C 
    r      114   72            }      125   7D 
    s      115   73            ~      126   7E 
    t      116   74            ^      127   7F 
    u      117   75  

minuscules accentuées

Caractére  Code  Code      Caractére  Code  Code    
           Dec   Hex                  Dec   Hex       

    î       17   11            â       24   18  
    é       18   12            è       25   19  
    ù       19   13            ô       26   1A  
    ì       20   14            ê       27   1B  
    ç       21   15            £       28   1C  
    û       22   16            ½       29   1D  
    à       23   17

28
-----------------------------------------------------------------
CODES DE COULEUR

0   Noir
1   Rouge
2   Vert
3   Jaune
4   Bleu
5   Violet
6   Cyan
7   Blanc

29                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
ATTRIBUTS DES CARACTERES

0   Normal
1   Double hauteur
2   Double largeur
3   Double hauteur et double largeur
4   Inversion vidéo
5   Inversion vidéo et double hauteur
6   Inversion vidéo et double largeur
7   Inversion vidéo, double hauteur et double largeur

30                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
CODES DE CONTROLE

Code  Code  Clavier         Fonction
Hex   Dec

 00     0                   Pas d’effet.   
 01     1   
 02     2   EFFC            Effacement du caractére gauche.
 03     3   RET             Retour chariot et saut de ligne.
 04     4   EFFL            Effacement depuis la position du
                            curseur jusqu’à la fin de la ligne.
 05     5   INSC            Insertion d’un caractère à la po-
                            sition du curseur.
 06     6   INSL            Insertion d’une ligne.
 07     7   Flèche droite   Déplacement du curser d’un carac-
                            tére vers la droite.
 08     8   Flèche gauche   Déplacement du curser d’un carac-
                            tére vers la gauche.
 09     9   Flèche haut     Déplacement du curser d’un carac-
                            tére vers la haut.
 0A    10   Flèche bas      Déplacement du curser d’un carac-
                            tére vers la bas.
 0B    11                   Pas d’effet.
 0C    12                   Déplace le curseur en haut à gau-
                            che de l’écran.
 0D    13   RET             Idem code 3.
 0E    14                   Autorise la visualisation.
 0F    15                   Pas d’effet.

31                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
MATRICES DES CARACTERES EN MODE TEXTE

32
-----------------------------------------------------------------
MATRICES DES CARACTERES EN MODE TEXTE

33
-----------------------------------------------------------------
MATRICES DES CARACTERES EN MODE GRAPHIQUE

34
-----------------------------------------------------------------
MATRICES DES CARACTERES EN MODE GRAPHIQUE

35
-----------------------------------------------------------------
GRILLE ÉCRAN

36
-----------------------------------------------------------------
SCHEMA SYNOPTIQUE DU Z80

37
-----------------------------------------------------------------
REGISTRES INTERNES

Registres principaux

...

IX et IY sont des registres d’index sur 16 bits.

38
-----------------------------------------------------------------
REGISTRES INTERNES

SP   est le pointeur de pile sur 16 bits.
PC   est le compteur ordinal sur 16 bits.

...

AF’  Peut être altéré sans problème.
BC’  Idem.
DE’  Idem.
HL’  Idem.

39
-----------------------------------------------------------------
REGISTRES INTERNES

IX   Doit etre préservé pour un appel aux routines situées en
     $0018, $001B, $008F, $009E, $00A1, $00AA, $00B9,

IY   N’est jamais utilisé par le Basic.

I    Idem.

R    Idem.

40                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
MODES D’ADRESSAGE

Demarque préliminaire
L’adressage implicite ou inérent
...
l’adressage relatif
L’adressage indirect indexé

41
-----------------------------------------------------------------
JEU D’INSTRUCTIONS DU Z80

Abréviations utilisées

sr   représente un registre sur 8 bits (A, B, C, D, E, H, L,
     parfois I).
dr   représente un registre sur 16 bits (BC, DE, HL, parfois
     IX, IY, SP).
op   représente une donnée sur 8 bits.
ad   représente une adresse sur 16 bits.
co   représente une condition (C, M, NC, NZ, P, PE, PO, Z).
b    représente le numéro d’un bit (entre 0 et 7).

ADC A,(HL)      Addition avec retenue de l’octet pointé par
                HL à A.
ADC A,(IX+op)   Addition avec retenue de l’octet pointé par
                IX+op.
ADC A,(IY+op)   Addition avec retenue de l’octet pointé par
                IY+op.
ADC A,op        Addition avec retenue
ADC HL,dr       Addition avec retenue
ADD A,(HL)      Addition sans retenue de l’octet pointé par
                HL à A.
ADD A,(IX+op)   Addition sans retenue de l’octet pointé par
                IX+op.
ADD A,(IY+op)   Addition sans retenue de l’octet pointé par
                IY+op.
ADD A,op        Addition sans retenue de l’opérande op à A.
ADD A,sr        Addition sans retenue du registre simple sr à A.
ADD HL,dr       Addition sans retenue du double registre dr à HL.
ADD IX,dr       Addition sans retenue du double registre dr à IX.
ADD IY,dr       Addition sans retenue du double registre dr à IY.
AND (HL)        Et logique entre l’octet pointé par HL à A.
AND (IX+op)     Et logique entre l’octet pointé par IX+op et A.
AND (IY+op)     Et logique entre l’octet pointé par IY+op et A.
AND op          Et logique entre l’opérande op et A.
AND sr          Et logique entre le registre simple sr et A.
BIT b,(HL)      Test du bit b de l’octet pointé par HL.
BIT b,(IX+op)   Test du bit b de l’octet pointé par IX plus op.
BIT b,(IY+op)   Test du bit b de l’octet pointé par IY plus op.
BIT b,sr        Test du bit b du registre simple dr.
CALL co,ad      Appel d’un sous-programme à l’adresse ad si la
                condition co est vraie.
CALL ad         Appel d’un sous-programme à l’adresse ad.
CCF             Complémente l’indicateur de retenue.
CP (HL)         Compare l’octet pointé par HL à A.
CP (IX+op)      Compare l’octet pointé par IX+op à A.
CP (IY+op)      Compare l’octet pointé par IY+op à A.
CP sr           Compare le registre simple sr à A.
CP op           Compare l’opérande op à A.

42                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
JEU D’INSTRUCTIONS DU Z80

CPD             Compare le contenu de l’octet pointé par HL, dé-
                crémente HL et BC.
CPDR            Compare le contenu de l’octet pointé par HL, dé-
                crémente HL et BC et répète la séquence jusqu’à
                ce que BC=0.
CPI             Compare le contenu de l’octet pointé par HL, in-
                crémente HL et décrémente BC.
CPIR            Compare le contenu de l’octet pointé par HL, in-
                crémente HL, décrémente BC et répète la séquence
                jusqu’à ce que BC=0.
CPL             Complémente A.
DAA             Ajustement décimal de A.
DEC (HL)        Décrémente l’octet pointé par HL.
DEC (IX+op)     Décrémente l’octet pointé par IX+op.
DEC (IY+op)     Décrémente l’octet pointé par IY+op.
DEC sr          Décrémente le registre simple sr.
DEC dr          Décrémente le double registre dr.
DI              Désactive les interruptions.
DJNZ op         Décrémente B et fait un saut relativement à op
                si B<>0.
EI              Active les interruptions.
EX AF,AF’       Echange les contenus des registres AF et AF’.
EX DE,HL        Echange les contenus des registres DE et HL.
EX (SP),HL      Echange le contenu des deux octets pointés par SP
                avec HL.
EX (SP),IX      Echange le contenu des deux octets pointés par SP
                avec IX.
EX (SP),IY      Echange le contenu des deux octets pointés par SP
                avec IY.
EXX             Echange le contenu des registres BC, DE et HL
                avec BC’, DE’ et HL’.
HALT            Arrêt et attente d’une interruption.
IM 0            Positionne le mode 0 d’interruptions.
IM 1            Positionne le mode 1 d’interruptions.
IM 2            Positionne le mode 2 d’interruptions.
IN sr,(C)       Charge le registre simple sr avec la donnée du
                port d’entrées-sorties adressé par C.
IN A,(op)       Charge A avec la donnée du port d’entrées-
                sorties n.
INC (HL)        Incrémente l’octet pointé par HL.
INC (IX+op)     Incrémente l’octet pointé par IX+op.
INC (IY+op)     Incrémente l’octet pointé par IY+op.
INC sr          Incrémente le registre simple sr.
INC dr          Incrémente le registre double dr.
IND             Charge l’octet pointé par HL avec la donnée du
                port d’entrées-sorties adressé par C. Décrémente
                HL et B.                         

43                                             CHEFS POUR VG 5000
-----------------------------------------------------------------
JEU D’INSTRUCTIONS DU Z80

INDR            Charge l’octet pointé par HL avec la donnée du
                port d’entrées-sorties adressée par C. Décrémente
                HL et B et répète la séquence jusqu’à ce que B=0.
INI             Charge l’octet pointé par HL avec la donnée du
                port d’entrées-sorties adressée par C. Incrémente
                HL et décrémente B.
INIR            Charge l’octet pointé par HL avec la donnée du
                port d’entrées-sorties adressée par C. Incrémente
                HL, décrémente BC et répète la séquence jusqu’à
                ce que B=0.
JP co,ad        Effectue un saut à l’adresse ad si la condition
                co est vraie.
JP ad           Effectue un saut à l’adresse ad.
JP (HL)         Effectue un saut à l’adresse donnée par le conte-
                nu de HL.
JP (IX)         Effectue un saut à l’adresse donnée par le conte-
                nu de IX.
JP (IY)         Effectue un saut à l’adresse donnée par le conte-
                nu de IY.
JP co,op        Effectue un saut relativement à op si la condition
                co est vraie.
JR op           Effectue un saut relativement à op.
LD dr,(ad)      Charge le double registre dr avec les deux octets
                pointés par ad.
LD dr,ad        Charge le double registre dr avec la valeur ad.
LD sr,op        Charge le registre simple sr avec la valeur op.
LD sr,sr’       Charge le registre sr avec le registre sr’.
LD sr,(dr)      Charge le registre simple sr avec l’octet pointé
                par le double registre dr. Si le registre simple
                n’est pas A, le registre double ne peut être
                que HL.
LD sr,(IX+op)   Charge le registre simple sr avec l’octet pointé
                par IX+op.
LD sr,(IY-Fop)  Charge le registre simple sr avec l’octet pointé
                par IY+op.
LD (dr),A       Charge à l’adresse pointée par dr la valeur de A.
LD (HL),sr      Charge à l’adresse pointée par HL la valeur du
                registre simple sr.
LD (HL),op      Charge à l’adresse pointée par HL la valeur op.
LD (IX+op),sr   Charge à l’adresse pointée par IX+op la valeur du
                registre simple ar.
LD (IX+ophop’   Charge à l’adresse pointée par IX+op la valeur op’ 
LD (IY-Fop),sr  Charge à l’adresse pointée par IY+op la valeur du
                registre simple ar.
LD (IY+ophop’   Charge à l’adresse pointée par IY+op la valeur
                de op’.
LD (ad),A       Charge à l’adresse pointée par ad la valeur de A.
LD (ad),dr      Charge à l’adresse pointée par ad la valeur du
                registre double dr.

44                                             CLEFS POUR VG 5000 
-----------------------------------------------------------------
JEU D’INSTRUCTIONS DU Z80 

LDD            Charge l’adresse pointée par HL avec le contenu
               de l’adresse pointée par DE, décrémente BC, HL et
               DE.
LDDR           Charge l’adresse pointée par HL avec le contenu
               de l’adresse pointée par DE, décrémente BC, HL et
               DE, et répète la séquence jusqu’à ce que BC=0.
NEG            Complémente à deux A (inversion de signes).
NOP            Pas d’opération.
OR (HL)        Ou logique entre A et l’octet pointé par HL.
OR (IX+op)     Ou logique entre A et l’octet pointé par IX+op.
OR (IY+op)     Ou logique entre A et l’octet pointé par IY+op.
OR sr          Ou logique entre A et le registre simple sr.
OR op          Ou logique entre A et l’opérande op.
OTDR           Charge le port d’entrées-sorties adressé par C
               avec le contenu de l’adresse pointée par HL,
               décrémente HL et B et répète la séquence jusqu’à
               ce que B=0.
OTIR           Charge le port d’entrées-sorties adressé par C,
               incrémente HL, décrémente B et répète la séquence
               jusqu’à ce que B=0.
OUT (C),sr     Charge le port d’entrées-sorties adressé par C
               avec le contenu du registre simple sr.
OUT (op),A     Charge le port d’entrées-sorties op avec le con-
               tenu de A.
POP dr         Charge le double registre dr avec la valeur en
               sommet de pile (dépilement).
PUSH dr        Sauve le double registre dr en sommet de pile
               (empilement).
RES b,(HL)     Met à zéro le bit b de l’octet pointé par HL.
RES b,(IX+op)  Met à zéro le bit b de l’octet pointé par IX+op.
RES b,(IY-op)  Met à zéro le bit b de l’octet pointé par IY+op.
RES b,sr       Met à zéro le bit b du registre simple sr.
RET            Retour d’un sous-programme.
RET co         Retour d’un sous-programme si la condition co
               est vraie.
RETI           Retour d’un sous-programme de traitement d’inter-
               ruptions.
RETN           Retour d’un sous-programme de traitement d’inter-
               ruptions non masquables.
RL (HL)        Rotation à gauche via la retenue de l’octet poin-
               té par HL.
RL (IX+op)     Rotation à gauche via la retenue de l’octet poin-
               té par IX+op.
RL (IY+op)     Rotation à gauche via la retenue de l’octet poin-
               té par IY+op.
RL sr          Rotation à gauche via la retenue du registre
               simple sr.
RLC (HL)       Rotation circulaire à gauche de l’octet pointé
               par HL.

45                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
JEU D’INSTRUCTIONS DU Z80

RLC (IX+op)    Rotation circulaire à gauche de l’octet pointé
               par IX+op.
RLC (IY+op)    Rotation circulaire à gauche de l’octet pointé
               par IY+op.
RLC sr         Rotation circulaire à gauche du registre simple sr.
RLD            Rotation à gauche d’un quartet entre A et l’octet
               pointé par HL.
RR (HL)        Rotation à droite via la retenue de l’octet pointé
               par HL.
RR (IX+op)     Rotation à droite via la retenue de l’octet pointé
               par IX+op.
RR (IY+op)     Rotation à droite via la retenue de l’octet pointé
               par IY+op.
RR sr          Rotation à droite via la retenue du registre
               simple sr.
RRC (HL)       Rotation circulaire à droite de l’octet pointé
               par HL.
RRC (IX+op)    Rotation circulaire à droite de l’octet pointé
               par IX+op.
RRC (IY+op)    Rotation circulaire à droite de l’octet pointé
               par IY+op.
RRC sr         Rotation circulaire à droite du registre simple sr.
RRD            Rotation à droite d’un quartet entre A et l’octet
               pointé par HL.
RST op         Saut à l’adresse op.
SBC A,(HL)     Soustraction avec retenue de l’octet pointé par
               HL à A.
SBC A,(IX+op)  Soustraction avec retenue de l’octet pointé par
               IX+op à A.
SBC A,(IY+op)  Soustraction avec retenue de l’octet pointé par
               IY+op à A.
SBC HL,dr      Soustraction avec retenue du double registre dr
               à HL.
SCF            Positionne l’indicateur de retenue à 1.
SET b,HL       Met à 1 le bit b de l’octet pointé par HL.
SET b,(IX+op)  Met à 1 le bit b de l’octet pointé par IX+op.
SET b,(IY+op)  Met à 1 le bit b de l’octet pointé par IY+op.
SLA (HL)       Décalage arithmétique à gauche de l’octet pointé
               par HL.
SLA (IX+op)    Décalage arithmétique à gauche de l’octet pointé
               par IX+op.
SLA (IY+op)    Décalage arithmétique à gauche de l’octet pointé
               par IY+op.
SLA sr         Décalage arithmétique à gauche du registre sim-
               ple sr.
SRA (HL)       Décalage arithmétique à droite de l’octet pointé
               par HL.
SRA (IX+op)    Décalace arithmétique à droite de l’octet pointé
               par IX+op.

46                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
JEU D’INSTRUCTIONS DU Z80

SRA (IX+op)    Décalage arithmétique à droite de l’octet pointé
               par IX+op.
SRA (IY+op)    Décalage arithmétique à droite de l’octet pointé
               par IY+op.
SRA sr         Décalage arithmétique à droite du registre sim-
               ple sr.
SRL (HL)       Décalage logique à droite de l’octet pointé par
               HL.
SRL (IX+op)    Décalage logique à droite de l’octet pointé par
               IX+op.
SRL (IY+op)    Décalage logique à droite de l’octet pointé par
               IY+op.
SRL sr         Décalage logique à droite du registre simple sr.
SUB (HL)       Soustraction sans retenue de l’octet pointé par
               HL à A.
SUB (IX+op)    Soustraction sans retenue de l’octet pointé par
               IX+op à A.
SUB (IY+op)    Soustraction sans retenue de l’octet pointé par
               IY+op à A.
SUB sr         Soustraction sans retenue du registre simple sr
               à A.
SUB op         Soustraction sans retenue de l’opérande op à A.
XOR (HL)       Ou exclusif entre A et l’octet pointé par HL.
XOR (IX+op)    Ou exclusif entre A et l’octet pointé par IX+op.
XOR (IY+op)    Ou exclusif entre A et l’octet pointé par IY+op.
XOR sr         Ou exclusif entre A et le registre simple sr.
XOR op         Ou exclusif entre A et l’opérande op.            

47                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

Codes des indicateurs d’état

Abréviations utilisées por les opérandes

      op    Valeur sur  8 bits.
      ad    Valeur sur 16 bits.

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
ADC A,(HL)    | 8E         |    7   | * | * | * |  *  | 0 | * | Indirect          
ADC A,(IX+op) | DD8Eop     |   19   | * | * | * |  *  | 0 | * | Indexé 
ADC Al(IY+op) | FD8Eop     |   19   | * | * | * |  *  | 0 | * | Indexé 
ADC A,A       | 8F         |    4   | * | * | * |  *  | 0 | * | Registre 
ADC A,B       | 88         |    4   | * | * | * |  *  | 0 | * | Registre 
ADC A,C       | 89         |    4   | * | * | * |  *  | 0 | * | Registre 
ADC A,D       | 8A         |    4   | * | * | * |  *  | 0 | * | Registre 
ADC A,E       | 8B         |    4   | * | * | * |  *  | 0 | * | Registre 
ADC A,H       | 8C         |    4   | * | * | * |  *  | 0 | * | Registre 
ADC A,L       | 8D         |    4   | * | * | * |  *  | 0 | * | Registre 
ADC A,op      | CEop       |    7   | * | * | * |  *  | 0 | * | Immédiat 
ADC HL,BC     | ED4A       |   15   | * | * | ? |  *  | 0 | * | Registre 
ADC HL,DE     | ED5A       |   15   | * | * | ? |  *  | 0 | * | Registre 
ADC HL,HL     | ED6A       |   15   | * | * | ? |  *  | 0 | * | Registre 
ADC HL,SP     | ED7A       |   15   | * | * | ? |  *  | 0 | * | Registre 
ADD A, (HL)   | 86         |    7   | * | * | * |  *  | 0 | * | Indirect 
ADD A,(IX+op) | DD86op     |   19   | * | * | * |  *  | 0 | * | Indexé 
ADD A,(IY+op) | FD86op     |   19   | * | * | * |  *  | 0 | * | Indexé
ADD A,A       | 87         |    4   | * | * | * |  *  | 0 | * | Registre 
ADD A,B       | 80         |    4   | * | * | * |  *  | 0 | * | Registre 
ADD A,C       | 81         |    4   | * | * | * |  *  | 0 | * | Registre 
ADD A,D       | 82         |    4   | * | * | * |  *  | 0 | * | Registre
ADD A,E       | 83         |    4   | * | * | * |  *  | 0 | * | Registre
ADD A,H       | 84         |    4   | * | * | * |  *  | 0 | * | Registre
ADD A,L       | 85         |    4   | * | * | * |  *  | 0 | * | Registre
ADD A,op      | C6op       |    7   | * | * | * |  *  | 0 | * | Immédiat
ADD HL,BC     | ED4A       |   11   |   |   | ? |     | 0 | * | Registre
ADD HL,DE     | ED5A       |   11   |   |   | ? |     | 0 | * | Registre
ADD HL,HL     | ED6A       |   11   |   |   | ? |     | 0 | * | Registre
ADD HL,SP     | ED7A       |   11   |   |   | ? |     | 0 | * | Registre 

48                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |
--------------+------------+--------+---+---+---+-----+---+---+-----------
ADD IX,BC     | DD09       |   15   |   |   | ? |     | 0 | * | Registre
ADD IX,DE     | DD19       |   15   |   |   | ? |     | 0 | * | Registre
ADD IX,IX     | DD29       |   15   |   |   | ? |     | 0 | * | Registre  
ADD IX,SP     | DD39       |   15   |   |   | ? |     | 0 | * | Registre
ADD IY,BC     | FD09       |   15   |   |   | ? |     | 0 | * | Registre
ADD IY,DE     | FD19       |   15   |   |   | ? |     | 0 | * | Registre
ADD IY,IY     | FD29       |   15   |   |   | ? |     | 0 | * | Registre
ADD IY,SP     | FD39       |   15   |   |   | ? |     | 0 | * | Registre
AND (HL)      | A6         |    7   | * | * | 1 |  *  | 0 | 0 | Indirect
AND (IX+op)   | DDA6op     |   19   | * | * | 1 |  *  | 0 | 0 | Indexé
AND (IY+op)   | FDA6op     |   19   | * | * | 1 |  *  | 0 | 0 | Indexé
AND A         | A7         |    4   | * | * | 1 |  *  | 0 | 0 | Registre
AND B         | A0         |    4   | * | * | 1 |  *  | 0 | 0 | Registre
AND C         | A1         |    4   | * | * | 1 |  *  | 0 | 0 | Registre
AND D         | A2         |    4   | * | * | 1 |  *  | 0 | 0 | Registre
AND E         | A3         |    4   | * | * | 1 |  *  | 0 | 0 | Registre
AND H         | A4         |    4   | * | * | 1 |  *  | 0 | 0 | Registre
AND L         | A5         |    4   | * | * | 1 |  *  | 0 | 0 | Registre
AND op        | E6op       |    7   | * | * | 1 |  *  | 0 | 0 | Immédiat
BIT 0,(HL)    | CB46       |   12   | ? | * | 1 |  ?  | 0 |   | Indirect
BIT 0,(IX+op) | DDCBop46   |   20   | ? | * | 1 |  ?  | 0 |   | Indexé
BIT 0,(IY+op) | FDCBop46   |   20   | ? | * | 1 |  ?  | 0 |   | Indexé
BIT 0,A       | CB47       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 0,B       | CB4O       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 0,C       | CB41       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 0,D       | CB42       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 0,E       | CB43       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 0,H       | CB44       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 0,L       | CB45       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 1,(HL)    | CB4E       |   12   | ? | * | 1 |  ?  | 0 |   | Indirect
BIT 1,(IX+op) | DDCBop4E   |   20   | ? | * | 1 |  ?  | 0 |   | Indexé
BIT 1,(IY+op) | FDCBop4E   |   20   | ? | * | 1 |  ?  | 0 |   | Indexé
BIT 1,A       | CB4F       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 1,B       | CB48       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 1,C       | CB49       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 1,D       | CB4A       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 1,E       | CB4B       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT I,H       | CB4C       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 1,L       | CB4D       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 2,(HL)    | CB56       |   12   | ? | * | 1 |  ?  | 0 |   | Indirect
BIT 2,(IX+op) | DDCBop56   |   20   | ? | * | 1 |  ?  | 0 |   | Indexé
BIT 2,(IY+op) | FDCBop56   |   20   | ? | * | 1 |  ?  | 0 |   | Indexé
BIT 2,A       | CB57       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 2,B       | CB50       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 2,C       | CB51       |    8   | ? | * | 1 |  ?  | 0 |   | Registre
BIT 2,D       | 0152       |    8   | ? | * | 1 |  ?  | 0 |   | Registre

49                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

50
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

51
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

52
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

53
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

54
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

55
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

56
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

57
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

58
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

59
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

60
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

61
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

62
-----------------------------------------------------------------
TABLEAU D’ASSEMBLAGE

--------------+------------+--------+-------------------------+-----------
              | Code objet |        | Registre d’état         | Adressage
Mnémonique    |   (hexa)   | Cycles +---+---+---+-----+---+---+
              |            |        | S | Z | H | P/V | N | C |                                 
--------------+------------+--------+---+---+---+-----+---+---+-----------
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           
              |            |        |   |   |   |     |   |   |           

63
-----------------------------------------------------------------
TABLEAU DE DESASSEMBLAGE

64
-----------------------------------------------------------------
TABLEAU DE DESASSEMBLAGE

65
-----------------------------------------------------------------
TABLEAU DE DESASSEMBLAGE

66
-----------------------------------------------------------------
TABLEAU DE DESASSEMBLAGE

67
-----------------------------------------------------------------
TABLEAU DE DESASSEMBLAGE

68
-----------------------------------------------------------------
ADRESSES SYSTEME

CARTE MEMOIRE DU VG 5000

+----------------------------------+---> $FFFF (memsiz=65532)
|     extension mémoire 32K ou     |
|          cartouche ROM           |
+----------------------------------+---> $C000 
|     extension mémoire 16K ou     |
|          cartouche ROM           |
+----------------------------------+---> $8000 
| zone de manipulation des chaînes |
+----------------------------------+---> stktop 
|               pile               |
+----------------------------------+---> fretop
|  zone utilisateur laissée libre  |
+----------------------------------+--->
|   zone réservée aux chaînes      |
+----------------------------------+---> arytab
|   zone réservée aux variables    |
+----------------------------------+---> vartab 
| zone réservée au programme Basic |
+----------------------------------+---> txttab
|        variables systèmes        |
+----------------------------------+---> $47D0
|               écran              |
+----------------------------------+---> $4000 
|         Basic + moniteur         |
+----------------------------------+---> $0000

69                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
GENÉRALITES SUR LE SISTÈME VG 5000

Organization de la ROM

  Elle fait 16 Ko et prend les adresses $0000-$3FFF. Elle est
divisée en 14 modules distincts :

$0000   Routines d’initialisation du VG 5000 et de traitement
        des interruptions.
$02FF   Routines de calcul en virgule flottante (Basic).
$0A75   Routines graphiques (Basic).
$1000   Routines d’initialisation du Basic.
$11F9   Zone des messages “texte”.
$1945   Routines "cassette" du Basic.
$2000   Interpréteur Basic (première partie).
$2AD4   Editeur.
$2EAD   Interpréteur Basic (seconde partie).
$3278   Routines de gestion des communications avec l’écran.
$3609   Routines de traitement des chaînes.
$38D0   Routines de saisie des pointeurs du Basic.
$3A59   Routines “cassette” du moniteur.
$3BDO   Contrôleur d’entrées-sorties du Basic.
$3CD2   Contrôleur de l’imprimante.

Organization des ports d’entrées-sorties du Z80

        +---------+----------------------------------------+
        | Adresse |                                        |
        |  (hexa) |              Fonction                  |
        +---------+----------------------------------------+
        |   00    |  Réservé au périphérique en            |
        |    :    |  extension.                            |
        |   7F    |                                        |
        +---------+----------------------------------------+
        |   80    |                                        |
        |    :    |  Scrutation du clavier.                |
        |   88    |                                        |
        +---------+----------------------------------------+
        |   89    |                                        |
        |    :    |  Inutilisés.                           |
        |   8E    |                                        |
        +---------+----------------------------------------+
        |   8F    |  Validation adresse : EF9345.          |
        +---------+----------------------------------------+
        |   90    |                                        |
        |    :    |  Inutilisés.                           |
        |   AE    |                                        |
        +---------+----------------------------------------+
                                                         -->

70                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
GENÉRALITES SUR LE SISTÈME VG 5000

    --> +---------+----------------------------------------+
        | Adresse |                                        |
        |  (hexa) |              Fonction                  |
        +---------+----------------------------------------+
        |   AF    |  Magnétophone à cassette et            |
        |         |  générateur musical.                   |
        +---------+----------------------------------------+
        |   B0    |                                        |
        |    :    |  Inutilisés.                           |
        |   CE    |                                        |
        +---------+----------------------------------------+
        |   CF    |  Validation donnée : EF9345.           |
        +---------+----------------------------------------+
        |   D0    |                                        |
        |    :    |  Inutilisés.                           |
        |   FE    |                                        |
        +---------+----------------------------------------+

Organisation des lignes Basic

71
-----------------------------------------------------------------
GENERALITES SUR LE SYSTEME VG 5000

Organisation du processeur vidéo EF9345

  Le Z80 et le EF9345 communiquet par l’intermédiaire d’un bus
8 bits multiplexé et par les portes d’entrées-sorties $8F et $CF.

  Le processeur vidéo possède ses propres registres internes lui
permettant de gérer de façon autonome tous les paramètres d’affi-
chage.

  L’utilisateur peut communiquer avec le EF9345 par l’intermé-
diaire des routines du Basic, par l’intermédiaire des routines
d’accès direct (sans passer par le buffer video : voir “Routines
utiles”) ou bien mêmbe directement en utilisant tous les modes
disponibles sur ce processeur (le VG 5000 utilise uniquement le
mode 16 bits par charactère).

  La descrition de ce circuit dépassant le cadre de ce mémento,
pour plus de renseignements, veuillez consulter la documentation
technique du EF9345 (Thomson-Efcis).

72                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
ROUTINES RST

RST 00   Réinitialisation totale du VG 5000 (équivalant à la
         mise sous tension). La mémoire et les entrées-sorties
         sont mises à jour.

RST 08   Vérifie que la caractère pointé par HL (pointeur de
         texte) est le même que celu qui suit l’instruction
         RST 08. Dans l’affirmative, la routine rend la main à
         l’utilisateur, sinon, elle génère une erreur du type
         “syntaxe incorrecte”. Les registres AF et HL sont alté-
         rés.

RST 10   Routine de lecture d‘un caractére (chget). Un appel à
         cette routine renvoie dans A le caractère pointé par
         HL+1. S’il s’agit d’un caractère numérique, le drapeau
         C est mis à 1. S’il s’agit d’un caractère de fin de li-
         gne, le drapeau Z est mis à 1.

RST 18   Routine d’envoi d’un caractère à l’organe d’entrées-
         sorties sélectionné (écran, imprimante ou lecteur de
         cassete, selon la valuer de l’octet $486F. Voir “Va-
         riables systèmes”). Le caractère doit être mis dans A,
         aucun registre n’est altéré.

RST 20   Routine de comparison des registres HL et DE. S’ils
         sont égaux, le drapeau Z est mis à 1, si DE est supé-
         rieur à HL, alors le drapeau C est mis à 1.

RST 28   Routine du calculateur en virgule flottante. Un saut
         est fait en $059A pour continuer le traitement, si
         l’octet $49E9 est non nul.

RST 30   Routine laissée libre pour l’utilisateur. Un saut est
         effectué en $470C, vecteur facilement modifiable (voir
         “Les comment ?”).

RST 38   Routine der traitment des interruptions masquables.

73                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
LISTE DES COMMANDES BASIC

Instruction Token Adresse    Instruction Token Adresse
            Dec   Hex                    Dec   Hex

END         128   2F3A       RENUM       153   2058
FOR         129   247A       AUTO        154   316D
NEXT        130   2FD4       LOAD        155   197D
DATA        131   25F3       SAVE        156   1945
INPUT       132   2760       CLOAD       157   1A39
DIM         133   38E5       CSAVE       158   19DE
READ        134   27A3       CALL        159   0FAE
LET         135   2610       INIT        160   0D51
GOTO        136   25BA       SOUND       161   0C6A
RUN         137   259A       PLAY        162   0A75
IF          138   2679       TX          163   0EF8
RESTORE     139   2F1D       GR          164   0D37
GOSUB       140   25A9       SCREEN      165   0F8D
RETURN      141   25E6       DISPLAY     166   0F98
REM         142   25F5       STORE       167   0FA4
STOP        143   2F38       SCROLL      168   0DA8
ON          144   265D       PAGE        169   0DB1
LPRINT      145   2694       DELIM       170   0F52
DEF         146   2A13       SETE        171   0CDE
POKE        147   2ABB       ET          172   0D40
PRINT       148   269B       EG          173   0D49
CONT        149   2F6F       CURSOR      174   0D83
LIST        150   31A8       DISK        175   47F4
LLIST       151   31A3       MODEM       176   47F7
CLEAR       152   2FA0       NEW         177   3ECD

74                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
LISTE DES FONCTIONS BASIC

Instruction    Token   Adresse
               Dec     Hex

SGN            195     05A4
INT            196     0660
ABS            197     05B8
USR            198     4833
FRE            199     38B1
LPOS           200     29FC 
POS            201     2A01 
SQR            202     081E
RND            203     09E0
LOG            204     0434
EXP            205     0874
COS            206     097D
SIN            207     0984
TAN            208     0A17
ATN            209     0A2C
PEEK           210     2AB4
LEN            211     37FB
STR$           212     3636
VAL            213     388E
ASC            214     380A
STICKX         215     0DBA
STICKY         216     0DF0   
ACTION         217     0F25
KEY            218     0F49
LPEN           219     47F1
CHR$           220     381B
LEFT$          221     3829
RIGHT$         222     3858
MID$           223     3861

75                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
ROUTINES UTILES

$001B   Permet de définir un caractère spécial aussi bien texte
        que graphique. Le code du caractère doit être mis dans
        les bits 0-6 de A. Le bit 7 de A sert de drapeau texte/
        graphique : bit 7 à 0 - mode texte, bit 7 à 1 - mode
        graphique.
        Les dix octets de codage (identique à SETEG ou SETET)
        doivent être stockés dans un buffer, HL doit en contenir
        l’adresse. Tous les registres sont altérés.

$0033   Départ à chaud. L’appel à celle routine correspond à une
        pression sur les touches CTRL et Delta. Efface l’écran,
        réinitialise les couleurs et les entrées-sorties et joue
        la “mélodie” d’introduction.
        Tous les registres sont altérés.

$0080   Sous-programme de retour qui doit terminer une routine
        US. Ce sous-programme permet de renvoyer le contenu de
        l’accumulateur au Basic. HL doit êtreremis à jour pour
        l’appel à ce sous-programme (pointeur de texte).
        Tous les registres sont altérés.

$0083   Permet d’acquérir un paramètre sur deux octets, le pre-
        mier étant pointé par HL (pointeur de texte), le paramè-
        tre revient dans DE.
        Tous les registres sont altérés.

$0086   Permet d’acquérir un paramètre sur un octet pointé par
        HL (pointeur de texte). Le paramètre 

$0089   Permet d’acquérir un paramètre signé sur deux octets, le

$008C   Permet d’émettre un son (équivalant au SOUND BASIC). DE

$008F   Permet de jouer une suite de notes de musique (équiva-
        lent du PLAY BASIC). La syntaxe est la même que celle
        utilisée en Basic, tous les codes doivent être mis sous
        forme ASCII et stockés dans un buffer. BC doit contenir
        l’adresse de ce buffer et E sa longeur.
        Ex : le codage de l’équivalent de PLAY"T20CDE" est :
           $54,$32,$30,$43,$44,$45
        Tous les registres sont altérés.

76
-----------------------------------------------------------------
ROUTINES UTILES

$0092   Envoie un caractere de 16 bits à l’écran directement
        sans passer par le buffer de vidéo géré par le Z80. La po-
        sition du caractère este donnée par HL. H représentant
        l’ordonnée (ligne) 0 - ligne 0, 8 31 - lignes 1-24, et
        L représentant l’absicce (colonne) 0-39 - colonnes 0-39-
        D doit contenir le code du caaractère et E son attribut.
        Les registres BC et AF sont altérés.

$0095   Envoie un caractere de 16 bits à l’écran directement
        sans passer par le buffer de vidéo géré par le Z80. L’affi-
        chage se fait à la position courante du curseur. D doit
        contenir le code du caractère, et E son attribut.
        Les registres BC et AF sont altérés.

$0098   Permet de lire un caractère de 16 bits directement de-
        puis la mémoire écran à la position définie par HL (co-
        dage indentique à $0092). Le code du caractère revient
        dans D, tandis que son attribut revient dans E.
        Les registres AF, BC et DE sont altérés.

$009B   Permet de lire un caractère de 16 bits directement de-
        puis la mémoire écran à la position courante du curseur.
        Le code du caractère revient dans D, tandis que son
        attribut revient dans E.
        Les registres AF, BC et DE sont altérés.

$009E   Efface l’écran et réinitialise la couleur du fond défi-
        nie par $4803, et de l’encre définie par $4802.
        Tous les registres sont alterés.

$00A1   Efface une ligne et réinitialise les couleurs de fond et
        d’encre (idem $009E). A doit contenir le numéro de la
        ligne à effacer.
        Tous les registres sont altérés.

$00A4   Interrompt le déroulement d’un programme jusqu’à ce que
        le circuit vidéo soit disponible pour un transfert de
        données.
        Le registre AF est altéré.

$00A7   Calcule l’adresse physique d’une position d’écran par
        rapport à son abscisse et son ordonnée. H doit contenir
        l’ordonnée et L l’abscisse. L’adresse calculée revient
        dans HL.
        Tous les registres sont altérés.

$00AA   Scrute le clavier et renvoie dans A le code de la tou-
        che pressée.
        Tous les registres sont altérés.

$00AD   Charge les registres du processeur vidéo EF9345 dans une
        table pointée par HL. Le premier octet de la table sera
        le nombre de données dans la table. Les registres seront
        codés sur deux octets, le premier octet étant l’adresse

77                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
ROUTINES UTILES

        de sélection du registre, et le second le contenu du
        registre.
        Les registres AF, BC et HL sont altérés.

$00B0   Scrute le déplacement haut/bas des poignées de jeu (ou
        des touches du clavier). A doit contenir le code du pé-
        riphérique :
           A=0 : poignée de jeu gauche.
           A=1 : poignée de jeu droite.
           A=2 : flêches du clavier.
        En retour, A contient :
             0 : si pas de déplacement.
             1 : si déplacement vers le bas.
           255 : si déplacement vers le haut.
        Les registres AF et B sont altérés.

$00B3   Scrute le déplacement droite/gauche des poignées de jeu
        (ou des touches du clavier). A doit contenir le code du
        périphérique :
           A=0 : poignée de jeu gauche.
           A=1 : poignée de jeu droite.
           A=2 : flêches du clavier.
        En retour, A contient :
             0 : si pas de déplacement.
             1 : si déplacement vers le droite.
           255 : si déplacement vers le gauche.

$00B6   Scrute la pression sur les touches ACTION des poignées
        (ou des touches du clavier). A doit contenir le code du
        périphérique :
           A=0 : poignée de jeu gauche.
           A=1 : poignée de jeu droite.
           A=2 : flêches du clavier.
        En retour, A contient :
             0 : si pas de pression.
             1 : si le bouton ACTION 1 est pressé (ou la barre
                 d’espace).
             2 : si le bouton ACTION 2 est pressé.
             3 : si les deux boutons sont pressés.
        Les registres AF et B sont altérés.

$00B9   Scrute les touches shift/stop du clavier.
        En retour, A contient :
             0 : si les touche SHIFT et STOP sont pressées. De
                 plus, le drapeau C st mis à 1.
             1 : si la touche STOP n’est pas pressée.
             4 : si seule la touche STOP est pressée.

$0300   Soustraction en virgule flottante.

$0310   Addition en virgule flottante.

78                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
ROUTINES UTILES

$047A   Multiplication en virgule flottante.

$04DE   Division en virgule flottante.

$0A75   Joue une suite de notes de musique entre quillemets. Le
        format est le même que le format Basic. HL doit pointer
        sur le premier guillemt. S’il y a une erreur de syntaxe,
        le controle est rendu au Basic.
        Tous les registres sont altérés.

$101C   Réinitialise le VG 5000 totalement mais n’effectue pas
        de test de mémorie. HL doit contenir l’adresse du plus
        haut octet de la mémoire disponible.
        Tous les registres sont altérés.

$10AB   Effectue la séquence d’initialisation à partir de l’af-
        fichage du message “VG 5000 BASIC”...
        Tous les registres sont altérés.

$1160   Joue la “mélodie” d’initialisation.
        Tous les registres sont altérés.

$1C23   Renvoie l’adresse du dernier lien de chaîne dans HL, soit
        l’adresse de début de la zone variable.
        Les registres A, DE et HL sont altérés.

$1D97   Envoie d’une chaîne de caractères au lecteur de casset-
        te.

$1E89   Acquisition d’une chaîne de caractères à partir du lec-
        teur de cassette.

$1F9C   Vérifie qu’il y a au moins 80 positions entre la valeur
        actuelle du pointeur de pile et HL.
        Le drapeau C est mis à 0 si la condition est vérifiée,
        à 1 sinon.
        Le registre A est altéré.

$1FAF   Routine d’envoi d’un octet au lecteur de cassette.

$1FB9   Lecture d’un octet à partir du lecteur de cassette.

$2214   Affiche le message “Ok!”.
        Tous les registres sont altérés.

$228D   Ferme le fichier imprimante, affiche “Ok!” et cherche
        l’éventuelle prochaine commande dans l’entrée-ligne.
        Tous les registres sont altérés.

$2299   Gère l’entrée-ligne, envoie à la routine de “tokenisa-
        tion” et fait exécuter les commandes en mode direct.
        Tous les registres sont altérés.

$2328   Effectue un CLEAR, réinitialise la pile, rétablit éven-
        tuellement les liens de chaîne entre les lignes et
        brance sur l’interpréteur.

79                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
ROUTINES UTILES

$24EA   Scrute un programme, repère un “token”, cherche l’adresse
        d’exécution de la routine correspondante et l’exécute.
        L‘adresse $24EA est laissée sur la pile lorsqu’une ins-
        truction est exécutée, un RET rend donc la main à cette
        routine d’interprétation. HL doit pointer l’instruction
        précédente (ou être nul).
        Tous les registres sont affectés.

$2526   Permet de lire un paramètre sur deux octets, le premier
        étant pointé par HL. Ce paramètre peut être une variable
        numérique. La valeur lue est retournée dans DE.
        Tous les registres sont affectés.

$252D   Permet le passage du paramètre à l’intérieur des paren-
        thèses d’une fonction USR, soit I dans le cas de USR(I).
        Cette routine évalue ce paramètre qui peut être sous
        forme de valeur, de variable, ou même de formule numéri-
        que, et le stocke dans DE.
        Ex : USR (12), USR (A) ou USR (A*2 + 3*B) ...
        Tous les registres sont affectés.

$259A   Command RUN BASIC. L’apple à cette routine doit se
        faire par un JP. A doit être mis à 0, le drapeau Z à 1
        et la valeur $24EA doit être mise au sommet de la pile.
        Tous les registres sont alterés.

$2EEB   Réinitialise un programme Basic en faisant un CLEAR, un
        RESTORE et en remettant la pile à jour.
        Tous les registres sont alterés, sauf HL.

$32B7   Scrute le clavier sans attendre de pression sur une tou-
        che. Le code de la touche appuyée est dans A et en $47FF.
        Si A=0, aucune touche n’a été appuyée.
        Si le drapeau C est à 1, il s’agit d’une touce répétée,
        sinon, il s’agit d’une nouvelle touche.
        Le registre A est altéré.

$36AA   Envoie une chaîne de caractères sur le périphérique cou-
        rant (écran, imprimant ou magnétophone à cassette sui-
        vant la valeur de l’octet $48EF (voir “Variables systè-
        mes”). La chaîne doit se terminer par un zéro. HL doit
        pinter le premier octet de la chaîne.
        Tous les registres sont alterés.

$3C40   Envoie un caractère d’autorisation de visualisation (15)
        et effectue un retour-chariot si le curseur n’est pas en
        première colonne.
        Le registre A est altéré.

$3C43   Effectue un retour-chariot si le curseur n’est pas en
        première colonne.
        Aucun registre n’est altéré.

80                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
ROUTINES UTILES

$3CA2   Appel à l’editeur Basic. Lorsque la touche RET est pres-
        sée, la ligne sur laquelle pointe le curseur est stockée
        dans un buffer situé à partir de $489B. La fin de ligne
        est repérée par un zéro. HL est pointé sur le début du
        buffer-1.
        Le drapeau C est mis à 1 si la touche SHIFT/STOP a êtê
        pressée, à D sinon.
        Les registres A, DE et HL sont altérés.

$3CD2   Envoie à l’imprimante le caractère dont le code est
        contenu dans A. L’impression ne se fait ou’après l’envoi
        d’un retour-chariot (code $0D).

81                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
VARIABLES SYSTEMES

Adresse - Longeur - Description
(hexa)

 4000   -  $7D0   - Ecran (25 lignes de 80 octets).

Vecteurs

 47D3   -    3    - Vecteur des interruptions masquables.

 47D6   -    3    - Vecteur des interruptions non masquables.

 47D9   -    3    - Vecteur de la routine CALL.

 47DC   -    3    - Vecteur de la routine utilisateur RST.

 47DF   -    3    - Vecteur de la routine PLAY.

 47E2   -    3    - Vecteur de la commande PRINT.

 47E5   -    3    - Vecteur de la routine de sorti de carac-
                    tères.

 47E8   -    3    - Vecteur de la routine de retour-chariet et
                    saut de ligne.

 47EB   -    3    - Vecteur de la routine d’acquisition de
                    caractères.

 47EE   -    3    - Vecteur de la commande INPUT.

 47F1   -    3    - Vecteur du crayon optique.

 47F4   -    3    - Vecteur de l’interface disque.

 47F7   -    3    - Vecteur de l’interface modem.

Variables concernant l’écran et le clavier

 47FA   -    1    - Compteur d’interruptions pour le rafraî-
                    chissement de l’écran.

 47FB   -    1    - Drapeau indiquant si l’écran a besoin
                    d’être refraîchi.

 47FC   -    1    - Valeur de référence pour le compteur
                    d’interruptions.

 47FD   -    1    - Couleur du pourtour et aspect du curseur.

 47FE   -    1    - Bascule majuscule/minuscule.

 47FF   -    1    - Valeur de la dernière scrutation clavier.

 4800   -    1    - Compteur pour la répétition automatique
                    des touches du clavier.

82                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
VARIABLES SYSTEMES

Adresse - Longeur - Description
(hexa)

 4801   -    1    - Drapeau de répétition automatique dees
                    touches du clavier.                

 4802   -    1    - Attribut de couleur d’encre pour le pro-
                    chain caractère à afficher :
                       bits 0-2 : couleur d’encre ;
                       bit  3   : clignotement ;
                       bit  4   : double hauteur (texte) ;
                       bit  5   : double largeur (texte) ;
                       bits 4-6 : couleur de fond (graphique) ;
                       bit  7   : 0 - texte, 1 - graphique.

 4803   -    1    - Attribute de couleur utilisé par init :
                       bits 0-2 : encre de la colonne 0 ;
                       bit  3   : = 0 ;
                       bits 4-6 : couleur de fond ;
                       bit  7   : = 1 .

 4804   -    1    - Drapeau de redéfinition de caractères :
                       bits 0-6 : = 0 ;
                       bit  7   : 0 = normal, 1= redéfini.

 4805   -    1    - Abcisse du curseur (colonne).

 4806   -    1    - Ordonée du curseur (ligne).

Editeur de texte

 4807   -    2    - Précédent numéro de ligne.

 4809   -    2    - Numéro de la première ligne listée par la
                    touche LIST.

 480B   -    2    - Adresse de la prochaine ligne à interpré-
                    ter.

 480D   -    1    - Drapeau indiquant le mode programme (=82)
                    ou le mode direct (=80).

Générateur de sons

 480E   -    2    - Fréquences extrêmes d’un son : pour SOUND
                    A, B, C.
                       1er  octet = 256-A+C ;
                       2ème octet = 256-A-C.

83                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
VARIABLES SYSTEMES

Adresse - Longeur - Description
(hexa)

Cassette

 4810   -   30    - Zone de stockage cassette.

 482E   -    1    - Paramètre de calibrage.

 482F   -    1    - Paramètre de calibrage.

Divers

 4830   -    3    - Vecteur pour le départ à chaud.

 4833   -    3    - Vecteur pour la fonction USR.

 4836   -   15    - Zone de travail en virgule flottante.

 4845   -   41    - Table du générateur de nombres pseudo-
                    aléatoires.

 486E   -    1    - Abscisse courant de l’imprimante.

 483F   -    1    - Sélection du périphérique pour la sortie
                    de caractères :
                       00    : écran ;
                       01    : imprimante ;
                       255   : cassette.

 4870   -    1    - Sélection du péripherique pour l’acquisi-
                    tion de caractères :
                       00    : clavier ;
                       255   : cassette.

 4871   -    1    - Contrôle de l’affichage :
                       bit 0     .
                       bit 1 : 1 = ligne entrée sous Basic ;
                       bit 2 : 1 = CONT autorisé ;
                       bit 3
                       bit 4
                       bit 5 : 1 = INPUT actif ;
                       bit 6 : curseur en fin de page ;
                       bit 7 : scrolling supprimé.

 4872   -    1    - Contrôle de l’interface cassette:
                       bit 0 : suppression des messages ;
                       bit 1 : suppression de L/H/H ;
                       bit 2 : 0 = 1200 bd (bits/s) ;
                               1 = 1200 bd (bits/s) ;
                       bit 3 : retour si erreur ;
                       bit 4 : fichier trop long ;

84                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
VARIABLES SYSTEMES

Adresse - Longeur - Description
(hexa)

                       bit 5 : erreur de vérification ;
                       bit 6 : erreur de cheksum ;
                       bit 7 : opération interrompue.
                    Seuls, les bits 0-3 sont utilisables par
                    le programmeur.

Imprimante

 4873   -    1    - Type d’imprimante :
                       00    : imprimante MSX (jeu de carac-
                               téres VG 5000) ;
                       01    : autre imprimante (jeu de ca-
                               ractéres MSX) ;
                       255   : pas de contrôle.

 4874   -    1    - Contrôle de l’imprimante :
                       bit 0 : occupée ;
                       bit 6 : initialisée ;
                       bit 7 : inutilisée.

 4875   -    1    - Drapeau de communication avec l’impri-
                    mante.

 4876   -    2    - Adresse du vecteur d’initialisation de
                    l’imprimante.

 4878   -    2    - Adresse de la table de conversion de
                    l’imprimante.

Editeur de texte

 487A   -   10    - Contrôle numérique des codes des touches.

 4884   -    1    - Drapeau indiquant la sélection du mode
                    AUTO.

 4885   -    2    - Numéro de la ligne courante en mode AUTO.

 4887   -    2    - Incrément du mode AUTO.

 4889   -    1    - 0 = exécution de la boucle de contrôle
                    Basic.

 488A   -    1    - Longueur de la ligne.

 488B   -    1    - Dernière tabulation réalisée par une vir-
                    gule.

85                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
VARIABLES SYSTEMES

Adresse - Longeur - Description
(hexa)

Divers

 488C   -    2    - Numéro de la ligne courante Basic.

 488E   -    2    - Adresse de début du programme Basic.
                    (txtab).

 4890   -    1    - Messages d’erreurs :
                       00   : en français ;
                       01   : en anglais.

 4891   -    2    - Adresse de la table de conversion du
                    clavier.

 4893   -    1    - Tempo de la dernière instruction PLAY.

 4894   -    1    - Octave de la dernière instruction PLAY.

 4895   -    2    - Adresse du haut de la pile (sktop).

Interpréteur

 4897   -    1    - Utilisé par l’instruction INPUT.

 4898   -  129    - Zone utilisée pour la “tokenisation” des
                    kugbes de origrannes et des instructions
                    en mode direct.

 4919   -    1    - Fine de la zone précédente.

 491A   -    1    - Indique l’activation de l’instruction DIM.

 491B   -    1    - Type de variable :
                       00   : numérique ;
                       01   : alphanumérique.

 491C   -    1    - Drapeau de suppression de la “tokenisa-
                    tion”.

 491D   -    2    - Copie du pointeur de texte.

 491F   -    2    - Plus haute adresse RAM disponible
                    (memsiz).

 4921   -    2    - Pointeur du descripteur de la chaîne
                    effacée.

 4923   -  120    - Zone de stockage pour l’interprétation
                    des variables.

 499B   -   40    - Zone de travail des fonctions de manipu-
                    lation des chaînes.

86                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
VARIABLES SYSTEMES

Adresse - Longeur - Description
(hexa)

 49C3   -    2    - Adresse du haut de la zone “chaînes”
                    (fretop).

 49C5   -    2    - Adresse de la fin de la chaîne effacée.

 49C7   -    2    - Utilisé pour la réorganisation des varia-
                    bles (garbage collection).

 49C9   -    2    - Copie du pointeur de texte pour une ins-
                    truction FOR.

 49CB   -    2    - Numéro de la ligne de données.

 49CD   -    1    - Utilisé pour une instruction FOR.

 49CE   -    1    - Drapeau indiquant l’exécution d’un INPUT
                    ou d’un READ.

 49CF   -    2    - Stockage temporaire du code d’une ins-
                    truction.

 49D1   -    1    - Utilisé pr l’instruction RENUM.

 49D2   -    2    - Evaluation d’une formule.

 49D4   -    2    - Ancien numéro de ligne.

 49D6   -    2    - Ancien pointeur de texte.

 49D8   -    2    - Adresse de début de la zone “variables”
                    (vartab).

 49DA   -    2    - Adresse de début de la zone “chaînes”
                    (arytab).

 49DC   -    2    - Adresse de fin du stockage en cours.

 49DE   -    2    - Pointeur de données dans les lignes DATA.

 49E0   -    2    - Nom du paramètre activé.

 49E2   -    4    - Valeur du paramètre activé.

 49E6   -    3    - Octets de poids faibl de l’accumulateur
                    virgule flottante.

 49E9   -    2    - Accumulateur virgule flottante.

 49EB   -   13    - Buffer virgule flottante.

 49F8   -    1    - Variable temporaire virgule flottante.

 49F9   -    2    - Variable temporaire virgule flottante.

87                                             CLEFS POUR VG 5000
-----------------------------------------------------------------

88
-----------------------------------------------------------------
CIRCUITS ELECTRONIQUES

89
-----------------------------------------------------------------

90
-----------------------------------------------------------------
BROCHAGE DES CIRCUITS INTEGRÉS

Unité centrale

                         +------------------+
                A11  <---+  1            40 +---> A10
                A12  <---+  2            39 +---> A9
                A13  <---+  3            38 +---> A8
                A14  <---+  4            37 +---> A7
                A15  <---+  5            36 +---> A6
                CLK  --->+  6            35 +---> A5
                D4   <-->+  7            34 +---> A4
                D3   <-->+  8            33 +---> A3
                D5   <-->+  9    Z80A    32 +---> A2
                D6   <-->+ 10            31 +---> A1
                +5v. <---+ 11            30 +---> A0
                D2   <---+ 12            29 +<--- 0v.
                D7   <---+ 13            28 +---> RFSH
                D0   <---+ 14            27 +---> M1
                D1   <---+ 15            26 +<--- RESET
                INT  <---+ 16            25 +<--- BUSREQ
                NMI  <---+ 17            24 +<--- WAIT
                HALT <---+ 18            23 +---> BUSAK
                MREQ <---+ 19            22 +---> WR
                IORQ <---+ 20            21 +---> RD
                         +------------------+

 1-Bit d’adresse 11                   21-Commande de lecture mémoire
 2-Bit d’adresse 12                   22-Commande d’écriture mémoire
 3-Bit d’adresse 13                   23-Acceptation d’accès direct mémoire
 4-Bit d’adresse 14                   24-Demande d’attente au microprocesseur
 5-Bit d’adresse 15                   25-Demande d’accès direct mémoire
 6-Signal d’horloge                   26-Initialisation du microprocesseur
 7-Bit de donnée 4                    27-Signal de premier cycle
 8-Bit de donnée 3                    28-Rafraichissement des mémoires dynamiques
 9-Bit de donnée 5                    29-Masse électrique
10-Bit de donnée 6                    30-Bit d’adresse 0
11-Tension de 5 volts regulés         31-Bit d’adresse 1
12-Bit de donnée 2                    32-Bit d’adresse 2
13-Bit de donnée 7                    33-Bit d’adresse 3
14-Bit de donnée 0                    34-Bit d’adresse 4
15-Bit de donnée 1                    35-Bit d’adresse 5
16-Interruptions masquables           36-Bit d’adresse 6
17-Interruptions non masquables       37-Bit d’adresse 7
18-Arret por attente sur interruption 38-Bit d’adresse 8
19-Demande d’opéraation mémoire       39-Bit d’adresse 9
20-Demande d’entrées/sorties          40-Bit d’adresse 10

91                                             CLEFS POUR VG 5000
-----------------------------------------------------------------
BROCHAGE DES CIRCUITS INTEGRÉS

92
-----------------------------------------------------------------
BROCHAGE DES CIRCUITS INTEGRÉS

93
-----------------------------------------------------------------
BROCHAGE DES CIRCUITS INTEGRÉS

94
-----------------------------------------------------------------
COMMENT

TRANSFORMER VOTRE VG 5000 version française
en VG 5000 version internationale
(ou inversement)

Version internationale
10 POKE &"4890",0     : REM messages d’erreurs (en anglais)
20 POKE &"4891",&"B9" : REM tables du clavier (QWERTY)
30 POKE &"4892",&"12"

Version française
10 POKE &"4890",1     : REM messages d’erreurs (en français)
20 POKE &"4891",&"F9" : REM tables du clavier (AZERTY)
30 POKE &"4892",&"11"

PASSER EN MINUSCULES/MAJUSCULES PAR PROGRAMME

Majuscules  :  POKE &"47FE",1
Minuscules  :  POKE &"47FE",0


95
-----------------------------------------------------------------
CHANGER LA COULEUR DU BORD
ET L’ASPECT DU CURSEUR (suite)

OBTENIR LA LONGEUR D’UN PROGRAMME

OBTENIR LA LONGEUR DE LA ZONE “VARIABLE”

OBTENIR L’ADRESSE D’UNE LIGNE BASIC

96
-----------------------------------------------------------------
RESTAURER LA POSITION COURANTE DU CURSEUR

LIMITER L’AFFICHAGE A n DECIMALE(S)
(n compris entre 0 et 5)

STOCKER UN PROGRAMME EN LANGUAGE MACHINE

97
-----------------------------------------------------------------
UTILISER LA FONCTION USR (A)

PASSER DES PARAMETRES
AVEC L’INSTRUCTION CALL

UTILISER LES VECTEURS

98
-----------------------------------------------------------------
UTILISER LES VECTEURS (suite)

99
-----------------------------------------------------------------
REVECTORISER LA TOUCHE CTRL DELTA (RESET) (suite)

JUSTIFIER A DROITE L’AFFICHAGE
D’UNE CHAÎNE DE CARACTERES

JUSTIFIER A GAUCHE L’AFFICHAGE
D’UNE CHAINE DE CARACTERS

CENTRER L’AFFICAHGE
D’UNE CHAINE DE CARACTERES

100
-----------------------------------------------------------------
REMPLACER UNE PARTIE D’UNE CHAINE
PAR UNE AUTRE CHAINE

INSERER UNE CHAINE
A INTERIEUR D’UNE AUTRE

101
-----------------------------------------------------------------
-----------------------------------------------------------------
ANNEXES
-----------------------------------------------------------------
-----------------------------------------------------------------
ANNEXE I

TABLEAU DE CONVERSION

      Valeur de l’octet      Complément à un       Complément a deux
 Dec.  ASC       Binaire    Dec.  Hexa. Binaire   Dec. Hexa. Binaire  

:   0 :   :  0 : 00000000 : 255 : FF : 11111111 :   0 :  0 : 00000000 :
:   1 :   :  1 : 00000001 : 254 : FE : 11111110 : 255 : FF : 11111111 :
:   2 :   :  2 : 00000010 : 253 : FD : 11111101 : 254 : FE : 11111110 :
:   3 :   :  3 : 00000011 : 252 : FC : 11111100 : 253 : FD : 11111101 :
:   4 :   :  4 : 00000100 : 251 : FB : 11111011 : 252 : FC : 11111100 :
:   5 :   :  5 : 00000101 : 250 : FA : 11111010 : 251 : FB : 11111011 :
:   6 :   :  6 : 00000110 : 249 : F9 : 11111001 : 250 : FA : 11111010 :
:   7 :   :  7 : 00000111 : 248 : F8 : 11111000 : 249 : F9 : 11111001 :
:   8 :   :  8 : 00001000 : 247 : F7 : 11110111 : 248 : F8 : 11111000 :
:   9 :   :  9 : 00001001 : 246 : F6 : 11110110 : 247 : F7 : 11110111 :
:  10 :   :  A : 00001010 : 245 : F5 : 11110101 : 246 : F6 : 11110110 :
:  11 :   :  B : 00001011 : 244 : F4 : 11110100 : 245 : F5 : 11110101 :
:  12 :   :  C : 00001100 : 243 : F3 : 11110011 : 244 : F4 : 11110100 :
:  13 :   :  D : 00001101 : 242 : F2 : 11110010 : 243 : F3 : 11110011 :
:  14 :   :  E : 00001110 : 241 : F1 : 11110001 : 242 : F2 : 11110010 :
:  15 :   :  F : 00001111 : 240 : F0 : 11110000 : 241 : F1 : 11110001 :
:  16 :   : 10 : 00010000 : 239 : EF : 11101111 : 240 : F0 : 11110000 :
:  17 :   : 11 : 00010001 : 238 : EE : 11101110 : 239 : EF : 11101111 :
:  18 :   : 12 : 00010010 : 237 : ED : 11101101 : 238 : EE : 11101110 :
:  19 :   : 13 : 00010011 : 236 : EC : 11101100 : 237 : ED : 11101101 :
:  20 :   : 14 : 00010100 : 235 : EB : 11101011 : 236 : EC : 11101100 :
:  21 :   : 15 : 00010101 : 234 : EA : 11101010 : 235 : EB : 11101011 :
:  22 :   : 16 : 00010110 : 233 : E9 : 11101001 : 234 : EA : 11101010 :
:  23 :   : 17 : 00010111 : 232 : E8 : 11101000 : 233 : E9 : 11101001 :
:  24 :   : 18 : 00011000 : 231 : E7 : 11100111 : 232 : E8 : 11101000 :
:  25 :   : 19 : 00011001 : 230 : E6 : 11100110 : 231 : E7 : 11100111 :
:  26 :   : 1A : 00011010 : 229 : E5 : 11100101 : 230 : E6 : 11100110 :
:  27 :   : 1B : 00011011 : 228 : E4 : 11100100 : 229 : E5 : 11100101 :
:  28 :   : 1C : 00011100 : 227 : E3 : 11100011 : 228 : E4 : 11100100 :

105                                            CLEFS POUR VG 5000
-----------------------------------------------------------------
TABLEAU DE CONVERSION

      Valeur de l’octet      Complément à un       Complément a deux
 Dec.  ASC       Binaire    Dec.  Hexa. Binaire   Dec. Hexa. Binaire

:  29 :   : 1D : 00011101 : 226 : E2 : 11100010 : 227 : E3 : 11100011 :
:  30 :   : 1E : 00011110 : 225 : E1 : 11100001 : 226 : E2 : 11100010 :
:  31 :   : 1F : 00011111 : 224 : E0 : 11100000 : 225 : E1 : 11100001 :
:  32 :   : 20 : 00100000 : 223 : DF : 11011111 : 224 : E0 : 11100000 :
:  33 : ! : 21 : 00100001 : 222 : DE : 11011110 : 223 : DF : 11011111 :
:  34 : " : 22 : 00100010 : 221 : DD : 11011101 : 222 : DE : 11011110 :
:  35 : # : 23 : 00100011 : 220 : DC : 11011100 : 221 : DD : 11011101 :
:  36 : $ : 24 : 00100100 : 219 : DB : 11011011 : 220 : DC : 11011100 :
:  37 : % : 25 : 00100101 : 218 : DA : 11011010 : 219 : DB : 11011011 :
:  38 : & : 26 : 00100110 : 217 : D9 : 11011001 : 218 : DA : 11011010 :
:  39 : ' : 27 : 00100111 : 216 : D8 : 11011000 : 217 : D9 : 11011001 :
:  40 : ( : 28 : 00101000 : 215 : D7 : 11010111 : 216 : D8 : 11011000 :
:  41 : ) : 29 : 00101001 : 214 : D6 : 11010110 : 215 : D7 : 11010111 :
:  42 : * : 2A : 00101010 : 213 : D5 : 11010101 : 214 : D6 : 11010110 :
:  43 : + : 2B : 00101011 : 212 : D4 : 11010100 : 213 : D5 : 11010101 :
:  44 : , : 2C : 00101100 : 211 : D3 : 11010011 : 212 : D4 : 11010100 :
:  45 : - : 2D : 00101101 : 210 : D2 : 11010010 : 211 : D3 : 11010011 :
:  46 : . : 2E : 00101110 : 209 : D1 : 11010001 : 210 : D2 : 11010010 :
:  47 : / : 2F : 00101111 : 208 : D0 : 11010000 : 209 : D1 : 11010001 :
:  48 : 0 : 30 : 00110000 : 207 : CF : 11001111 : 208 : D0 : 11010000 :
:  49 : 1 : 31 : 00110001 : 206 : CE : 11001110 : 207 : CF : 11001111 :
:  50 : 2 : 32 : 00110010 : 205 : CD : 11001101 : 206 : CE : 11001110 :
:  51 : 3 : 33 : 00110011 : 204 : CC : 11001100 : 205 : CD : 11001101 :
:  52 : 4 : 34 : 00110100 : 203 : CB : 11001011 : 204 : CC : 11001100 :
:  53 : 5 : 35 : 00110101 : 202 : CA : 11001010 : 203 : CB : 11001011 :
:  54 : 6 : 36 : 00110110 : 201 : C9 : 11001001 : 202 : CA : 11001010 :
:  55 : 7 : 37 : 00110111 : 200 : C8 : 11001000 : 201 : C9 : 11001001 :
:  56 : 8 : 38 : 00111000 : 199 : C7 : 11000111 : 200 : C8 : 11001000 :
:  57 : 9 : 39 : 00111001 : 198 : C6 : 11000110 : 199 : C7 : 11000111 :
:  58 : : : 3A : 00111010 : 197 : C5 : 11000101 : 198 : C6 : 11000110 :
:  59 : ; : 3B : 00111011 : 196 : C4 : 11000100 : 197 : C5 : 11000101 :
:  60 : < : 3C : 00111100 : 195 : C3 : 11000011 : 196 : C4 : 11000100 :
:  61 : = : 3D : 00111101 : 194 : C2 : 11000010 : 195 : C3 : 11000011 :
:  62 : > : 3E : 00111110 : 193 : C1 : 11000001 : 194 : C2 : 11000010 :
:  63 : ? : 3F : 00111111 : 192 : C0 : 11000000 : 193 : C1 : 11000001 :
:  64 : @ : 40 : 01000000 : 191 : BF : 10111111 : 192 : C0 : 11000000 :
:  65 : A : 41 : 01000001 : 190 : BE : 10111110 : 191 : BF : 10111111 :
:  66 : B : 42 : 01000010 : 189 : BD : 10111101 : 190 : BE : 10111110 :
:  67 : C : 43 : 01000011 : 188 : BC : 10111100 : 189 : BD : 10111101 :
:  68 : D : 44 : 01000100 : 187 : BB : 10111011 : 188 : BC : 10111100 :
:  69 : E : 45 : 01000101 : 186 : BA : 10111010 : 187 : BB : 10111011 :
:  70 : F : 46 : 01000110 : 185 : B9 : 10111001 : 186 : BA : 10111010 :
:  71 : G : 47 : 01000111 : 184 : B8 : 10111000 : 185 : B9 : 10111001 :
:  72 : H : 48 : 01001000 : 183 : B7 : 10110111 : 184 : B8 : 10111000 :
:  73 : I : 49 : 01001001 : 182 : B6 : 10110110 : 183 : B7 : 10110111 :
:  74 : J : 4A : 01001010 : 181 : B5 : 10110101 : 182 : B6 : 10110110 :
:  75 : K : 4B : 01001011 : 180 : B4 : 10110100 : 181 : B5 : 10110101 :
:  76 : L : 4C : 01001100 : 179 : B3 : 10110011 : 180 : B4 : 10110100 :
:  77 : M : 4D : 01001101 : 178 : B2 : 10110010 : 179 : B3 : 10110011 :
:  78 : N : 4E : 01001110 : 177 : B1 : 10110001 : 178 : B2 : 10110010 :
:  79 : O : 4F : 01001111 : 176 : B0 : 10110000 : 177 : B1 : 10110001 :
:  80 : P : 50 : 01010000 : 175 : AF : 10101111 : 176 : B0 : 10110000 :
:  81 : Q : 51 : 01010001 : 174 : AE : 10101110 : 175 : AF : 10101111 :
:  82 : R : 52 : 01010010 : 173 : AD : 10101101 : 174 : AE : 10101110 :
:  83 : S : 53 : 01010011 : 172 : AC : 10101100 : 173 : AD : 10101101 :
:  84 : T : 54 : 01010100 : 171 : AB : 10101011 : 172 : AC : 10101100 :
:  85 : U : 55 : 01010101 : 170 : AA : 10101010 : 171 : AB : 10101011 :

106                                            CLEFS POUR VG 5000
-----------------------------------------------------------------
TABLEAU DE CONVERSION

      Valeur de l’octet      Complément à un       Complément a deux
 Dec.  ASC       Binaire    Dec.  Hexa. Binaire   Dec. Hexa. Binaire

:  86 : V : 56 : 01010110 : 169 : A9 : 10101001 : 170 : AA : 10101010 :
:  87 : W : 57 : 01010111 : 168 : A8 : 10101000 : 169 : A9 : 10101001 :
:  88 : X : 58 : 01011000 : 167 : A7 : 10100111 : 168 : A8 : 10101000 :
:  89 : Y : 59 : 01011001 : 166 : A6 : 10100110 : 167 : A7 : 10100111 :
:  90 : Z : 5A : 01011010 : 165 : A5 : 10100101 : 166 : A6 : 10100110 :
:  91 : [ : 5B : 01011011 : 164 : A4 : 10100100 : 165 : A5 : 10100101 :
:  92 : \ : 5C : 01011100 : 163 : A3 : 10100011 : 164 : A4 : 10100100 :
:  93 : ] : 5D : 01011101 : 162 : A2 : 10100010 : 163 : A3 : 10100011 :
:  94 : ^ : 5E : 01011110 : 161 : A1 : 10100001 : 162 : A2 : 10100010 :
:  95 : _ : 5F : 01011111 : 160 : A0 : 10100000 : 161 : A1 : 10100001 :
:  96 : ` : 60 : 01100000 : 159 : 9F : 10011111 : 160 : A0 : 10100000 :
:  97 : a : 61 : 01100001 : 158 : 9E : 10011110 : 159 : 9F : 10011111 :
:  98 : b : 62 : 01100010 : 157 : 9D : 10011101 : 158 : 9E : 10011110 :
:  99 : c : 63 : 01100011 : 156 : 9C : 10011100 : 157 : 9D : 10011101 :
: 100 : d : 64 : 01100100 : 155 : 9B : 10011011 : 156 : 9C : 10011100 :
: 101 : e : 65 : 01100101 : 154 : 9A : 10011010 : 155 : 9B : 10011011 :
: 102 : f : 66 : 01100110 : 153 : 99 : 10011001 : 154 : 9A : 10011010 :
: 103 : g : 67 : 01100111 : 152 : 98 : 10011000 : 153 : 99 : 10011001 :
: 104 : h : 68 : 01101000 : 151 : 97 : 10010111 : 152 : 98 : 10011000 :
: 105 : i : 69 : 01101001 : 150 : 96 : 10010110 : 151 : 97 : 10010111 :
: 106 : j : 6A : 01101010 : 149 : 95 : 10010101 : 150 : 96 : 10010110 :
: 107 : k : 6B : 01101011 : 148 : 94 : 10010100 : 149 : 95 : 10010101 :
: 108 : l : 6C : 01101100 : 147 : 93 : 10010011 : 148 : 94 : 10010100 :
: 109 : m : 6D : 01101101 : 146 : 92 : 10010010 : 147 : 93 : 10010011 :
: 110 : n : 6E : 01101110 : 145 : 91 : 10010001 : 146 : 92 : 10010010 :
: 111 : o : 6F : 01101111 : 144 : 90 : 10010000 : 145 : 91 : 10010001 :
: 112 : p : 70 : 01110000 : 143 : 8F : 10001111 : 144 : 90 : 10010000 :
: 113 : q : 71 : 01110001 : 142 : 8E : 10001110 : 143 : 8F : 10001111 :
: 114 : r : 72 : 01110010 : 141 : 8D : 10001101 : 142 : 8E : 10001110 :
: 115 : s : 73 : 01110011 : 140 : 8C : 10001100 : 141 : 8D : 10001101 :
: 116 : t : 74 : 01110100 : 139 : 8B : 10001011 : 140 : 8C : 10001100 :
: 117 : u : 75 : 01110101 : 138 : 8A : 10001010 : 139 : 8B : 10001011 :
: 118 : v : 76 : 01110110 : 137 : 89 : 10001001 : 138 : 8A : 10001010 :
: 119 : w : 77 : 01110111 : 136 : 88 : 10001000 : 137 : 89 : 10001001 :
: 120 : x : 78 : 01111000 : 135 : 87 : 10000111 : 136 : 88 : 10001000 :
: 121 : y : 79 : 01111001 : 134 : 86 : 10000110 : 135 : 87 : 10000111 :
: 122 : z : 7A : 01111010 : 133 : 85 : 10000101 : 134 : 86 : 10000110 :
: 123 : { : 7B : 01111011 : 132 : 84 : 10000100 : 133 : 85 : 10000101 :
: 124 : | : 7C : 01111100 : 131 : 83 : 10000011 : 132 : 84 : 10000100 :
: 125 : } : 7D : 01111101 : 130 : 82 : 10000010 : 131 : 83 : 10000011 :
: 126 : ~ : 7E : 01111110 : 129 : 81 : 10000001 : 130 : 82 : 10000010 :
: 127 : # : 7F : 01111111 : 128 : 80 : 10000000 : 129 : 81 : 10000001 :
: 128 :   : 80 : 10000000 : 127 : 7F : 01111111 : 128 : 80 : 10000000 :
: 129 :   : 81 : 10000001 : 126 : 7E : 01111110 : 127 : 7F : 01111111 :
: 130 :   : 82 : 10000010 : 125 : 7D : 01111101 : 126 : 7E : 01111110 :
: 131 :   : 83 : 10000011 : 124 : 7C : 01111100 : 125 : 7D : 01111101 :
: 132 :   : 84 : 10000100 : 123 : 7B : 01111011 : 124 : 7C : 01111100 :
: 133 :   : 85 : 10000101 : 122 : 7A : 01111010 : 123 : 7B : 01111011 :
: 134 :   : 86 : 10000110 : 121 : 79 : 01111001 : 122 : 7A : 01111010 :
: 135 :   : 87 : 10000111 : 120 : 78 : 01111000 : 121 : 79 : 01111001 :
: 136 :   : 88 : 10001000 : 119 : 77 : 01110111 : 120 : 78 : 01111000 :
: 137 :   : 89 : 10001001 : 118 : 76 : 01110110 : 119 : 77 : 01110111 :
: 138 :   : 8A : 10001010 : 117 : 75 : 01110101 : 118 : 76 : 01110110 :
: 139 :   : 8B : 10001011 : 116 : 74 : 01110100 : 117 : 75 : 01110101 :
: 140 :   : 8C : 10001100 : 115 : 73 : 01110011 : 116 : 74 : 01110100 :
: 141 :   : 8D : 10001101 : 114 : 72 : 01110010 : 115 : 73 : 01110011 :
: 142 :   : 8E : 10001110 : 113 : 71 : 01110001 : 114 : 72 : 01110010 :

107                                            CLEFS POUR VG 5000
-----------------------------------------------------------------
TABLEAU DE CONVERSION

      Valeur de l’octet      Complément à un       Complément a deux
 Dec.  ASC       Binaire    Dec.  Hexa. Binaire   Dec. Hexa. Binaire

: 143 :   : 8F : 10001111 : 112 : 70 : 01110000 : 113 : 71 : 01110001 :
: 144 :   : 90 : 10010000 : 111 : 6F : 01101111 : 112 : 70 : 01110000 :
: 145 :   : 91 : 10010001 : 110 : 6E : 01101110 : 111 : 6F : 01101111 :
: 146 :   : 92 : 10010010 : 109 : 6D : 01101101 : 110 : 6E : 01101110 :
: 147 :   : 93 : 10010011 : 108 : 6C : 01101100 : 109 : 6D : 01101101 :
: 148 :   : 94 : 10010100 : 107 : 6B : 01101011 : 108 : 6C : 01101100 :
: 149 :   : 95 : 10010101 : 106 : 6A : 01101010 : 107 : 6B : 01101011 :
: 150 :   : 96 : 10010110 : 105 : 69 : 01101001 : 106 : 6A : 01101010 :
: 151 :   : 97 : 10010111 : 104 : 68 : 01101000 : 105 : 69 : 01101001 :
: 152 :   : 98 : 10011000 : 103 : 67 : 01100111 : 104 : 68 : 01101000 :
: 153 :   : 99 : 10011001 : 102 : 66 : 01100110 : 103 : 67 : 01100111 :
: 154 :   : 9A : 10011010 : 101 : 65 : 01100101 : 102 : 66 : 01100110 :
: 155 :   : 9B : 10011011 : 100 : 64 : 01100100 : 101 : 65 : 01100101 :
: 156 :   : 9C : 10011100 : 99 : 63 : 01100011 : 100 : 64 : 01100100 :
: 157 :   : 9D : 10011101 : 98 : 62 : 01100010 : 99 : 63 : 01100011 :
: 158 :   : 9E : 10011110 : 97 : 61 : 01100001 : 98 : 62 : 01100010 :
: 159 :   : 9F : 10011111 : 96 : 60 : 01100000 : 97 : 61 : 01100001 :
: 160 :   : A0 : 10100000 : 95 : 5F : 01011111 : 96 : 60 : 01100000 :
: 161 :   : A1 : 10100001 : 94 : 5E : 01011110 : 95 : 5F : 01011111 :
: 162 :   : A2 : 10100010 : 93 : 5D : 01011101 : 94 : 5E : 01011110 :
: 163 :   : A3 : 10100011 : 92 : 5C : 01011100 : 93 : 5D : 01011101 :
: 164 :   : A4 : 10100100 : 91 : 5B : 01011011 : 92 : 5C : 01011100 :
: 165 :   : A5 : 10100101 : 90 : 5A : 01011010 : 91 : 5B : 01011011 :
: 166 :   : A6 : 10100110 : 89 : 59 : 01011001 : 90 : 5A : 01011010 :
: 167 :   : A7 : 10100111 : 88 : 58 : 01011000 : 89 : 59 : 01011001 :
: 168 :   : A8 : 10101000 : 87 : 57 : 01010111 : 88 : 58 : 01011000 :
: 169 :   : A9 : 10101001 : 86 : 56 : 01010110 : 87 : 57 : 01010111 :
: 170 :   : AA : 10101010 : 85 : 55 : 01010101 : 86 : 56 : 01010110 :
: 171 :   : AB : 10101011 : 84 : 54 : 01010100 : 85 : 55 : 01010101 :
: 172 :   : AC : 10101100 : 83 : 53 : 01010011 : 84 : 54 : 01010100 :
: 173 :   : AD : 10101101 : 82 : 52 : 01010010 : 83 : 53 : 01010011 :
: 174 :   : AE : 10101110 : 81 : 51 : 01010001 : 82 : 52 : 01010010 :
: 175 :   : AF : 10101111 : 80 : 50 : 01010000 : 81 : 51 : 01010001 :
: 176 :   : B0 : 10110000 : 79 : 4F : 01001111 : 80 : 50 : 01010000 :
: 177 :   : B1 : 10110001 : 78 : 4E : 01001110 : 79 : 4F : 01001111 :
: 178 :   : B2 : 10110010 : 77 : 4D : 01001101 : 78 : 4E : 01001110 :
: 179 :   : B3 : 10110011 : 76 : 4C : 01001100 : 77 : 4D : 01001101 :
: 180 :   : B4 : 10110100 : 75 : 4B : 01001011 : 76 : 4C : 01001100 :
: 181 :   : B5 : 10110101 : 74 : 4A : 01001010 : 75 : 4B : 01001011 :
: 182 :   : B6 : 10110110 : 73 : 49 : 01001001 : 74 : 4A : 01001010 :
: 183 :   : B7 : 10110111 : 72 : 48 : 01001000 : 73 : 49 : 01001001 :
: 184 :   : B8 : 10111000 : 71 : 47 : 01000111 : 72 : 48 : 01001000 :
: 185 :   : B9 : 10111001 : 70 : 46 : 01000110 : 71 : 47 : 01000111 :
: 186 :   : BA : 10111010 : 69 : 45 : 01000101 : 70 : 46 : 01000110 :
: 187 :   : BB : 10111011 : 68 : 44 : 01000100 : 69 : 45 : 01000101 :
: 188 :   : BC : 10111100 : 67 : 43 : 01000011 : 68 : 44 : 01000100 :
: 189 :   : BD : 10111101 : 66 : 42 : 01000010 : 67 : 43 : 01000011 :
: 190 :   : BE : 10111110 : 65 : 41 : 01000001 : 66 : 42 : 01000010 :
: 191 :   : BF : 10111111 : 64 : 40 : 01000000 : 65 : 41 : 01000001 :
: 192 :   : C0 : 11000000 : 63 : 3F : 00111111 : 64 : 40 : 01000000 :
: 193 :   : C1 : 11000001 : 62 : 3E : 00111110 : 63 : 3F : 00111111 :
: 194 :   : C2 : 11000010 : 61 : 3D : 00111101 : 62 : 3E : 00111110 :
: 195 :   : C3 : 11000011 : 60 : 3C : 00111100 : 61 : 3D : 00111101 :
: 196 :   : C4 : 11000100 : 59 : 3B : 00111011 : 60 : 3C : 00111100 :
: 197 :   : C5 : 11000101 : 58 : 3A : 00111010 : 59 : 3B : 00111011 :
: 198 :   : C6 : 11000110 : 57 : 39 : 00111001 : 58 : 3A : 00111010 :
: 199 :   : C7 : 11000111 : 56 : 38 : 00111000 : 57 : 39 : 00111001 :

108                                            CLEFS POUR VG 5000
-----------------------------------------------------------------
TABLEAU DE CONVERSION

      Valeur de l’octet      Complément à un       Complément a deux
 Dec.  ASC       Binaire    Dec.  Hexa. Binaire   Dec. Hexa. Binaire

: 200 :   : C8 : 11001000 : 55 : 37 : 00110111 : 56 : 38 : 00111000 :
: 201 :   : C9 : 11001001 : 54 : 36 : 00110110 : 55 : 37 : 00110111 :
: 202 :   : CA : 11001010 : 53 : 35 : 00110101 : 54 : 36 : 00110110 :
: 203 :   : CB : 11001011 : 52 : 34 : 00110100 : 53 : 35 : 00110101 :
: 204 :   : CC : 11001100 : 51 : 33 : 00110011 : 52 : 34 : 00110100 :
: 205 :   : CD : 11001101 : 50 : 32 : 00110010 : 51 : 33 : 00110011 :
: 206 :   : CE : 11001110 : 49 : 31 : 00110001 : 50 : 32 : 00110010 :
: 207 :   : CF : 11001111 : 48 : 30 : 00110000 : 49 : 31 : 00110001 :
: 208 :   : D0 : 11010000 : 47 : 2F : 00101111 : 48 : 30 : 00110000 :
: 209 :   : D1 : 11010001 : 46 : 2E : 00101110 : 47 : 2F : 00101111 :
: 210 :   : D2 : 11010010 : 45 : 2D : 00101101 : 46 : 2E : 00101110 :
: 211 :   : D3 : 11010011 : 44 : 2C : 00101100 : 45 : 2D : 00101101 :
: 212 :   : D4 : 11010100 : 43 : 2B : 00101011 : 44 : 2C : 00101100 :
: 213 :   : D5 : 11010101 : 42 : 2A : 00101010 : 43 : 2B : 00101011 :
: 214 :   : D6 : 11010110 : 41 : 29 : 00101001 : 42 : 2A : 00101010 :
: 215 :   : D7 : 11010111 : 40 : 28 : 00101000 : 41 : 29 : 00101001 :
: 216 :   : D8 : 11011000 : 39 : 27 : 00100111 : 40 : 28 : 00101000 :
: 217 :   : D9 : 11011001 : 38 : 26 : 00100110 : 39 : 27 : 00100111 :
: 218 :   : DA : 11011010 : 37 : 25 : 00100101 : 38 : 26 : 00100110 :
: 219 :   : DB : 11011011 : 36 : 24 : 00100100 : 37 : 25 : 00100101 :
: 220 :   : DC : 11011100 : 35 : 23 : 00100011 : 36 : 24 : 00100100 :
: 221 :   : DD : 11011101 : 34 : 22 : 00100010 : 35 : 23 : 00100011 :
: 222 :   : DE : 11011110 : 33 : 21 : 00100001 : 34 : 22 : 00100010 :
: 223 :   : DF : 11011111 : 32 : 20 : 00100000 : 33 : 21 : 00100001 :
: 224 :   : E0 : 11100000 : 31 : 1F : 00011111 : 32 : 20 : 00100000 :
: 225 :   : E1 : 11100001 : 30 : 1E : 00011110 : 31 : 1F : 00011111 :
: 226 :   : E2 : 11100010 : 29 : 1D : 00011101 : 30 : 1E : 00011110 :
: 227 :   : E3 : 11100011 : 28 : 1C : 00011100 : 29 : 1D : 00011101 :
: 228 :   : E4 : 11100100 : 27 : 1B : 00011011 : 28 : 1C : 00011100 :
: 229 :   : E5 : 11100101 : 26 : 1A : 00011010 : 27 : 1B : 00011011 :
: 230 :   : E6 : 11100110 : 25 : 19 : 00011001 : 26 : 1A : 00011010 :
: 231 :   : E7 : 11100111 : 24 : 18 : 00011000 : 25 : 19 : 00011001 :
: 232 :   : E8 : 11101000 : 23 : 17 : 00010111 : 24 : 18 : 00011000 :
: 233 :   : E9 : 11101001 : 22 : 16 : 00010110 : 23 : 17 : 00010111 :
: 234 :   : EA : 11101010 : 21 : 15 : 00010101 : 22 : 16 : 00010110 :
: 235 :   : EB : 11101011 : 20 : 14 : 00010100 : 21 : 15 : 00010101 :
: 236 :   : EC : 11101100 : 19 : 13 : 00010011 : 20 : 14 : 00010100 :
: 237 :   : ED : 11101101 : 18 : 12 : 00010010 : 19 : 13 : 00010011 :
: 238 :   : EE : 11101110 : 17 : 11 : 00010001 : 18 : 12 : 00010010 :
: 239 :   : EF : 11101111 : 16 : 10 : 00010000 : 17 : 11 : 00010001 :
: 240 :   : F0 : 11110000 : 15 :  F : 00001111 : 16 : 10 : 00010000 :
: 241 :   : F1 : 11110001 : 14 :  E : 00001110 : 15 :  F : 00001111 :
: 242 :   : F2 : 11110010 : 13 :  D : 00001101 : 14 :  E : 00001110 :
: 243 :   : F3 : 11110011 : 12 :  C : 00001100 : 13 :  D : 00001101 :
: 244 :   : F4 : 11110100 : 11 :  B : 00001011 : 12 :  C : 00001100 :
: 245 :   : F5 : 11110101 : 10 :  A : 00001010 : 11 :  B : 00001011 :
: 246 :   : F6 : 11110110 :  9 :  9 : 00001001 : 10 :  A : 00001010 :
: 247 :   : F7 : 11110111 :  8 :  8 : 00001000 :  9 :  9 : 00001001 :
: 248 :   : F8 : 11111000 :  7 :  7 : 00000111 :  8 :  8 : 00001000 :
: 249 :   : F9 : 11111001 :  6 :  6 : 00000110 :  7 :  7 : 00000111 :
: 250 :   : FA : 11111010 :  5 :  5 : 00000101 :  6 :  6 : 00000110 :
: 251 :   : FB : 11111011 :  4 :  4 : 00000100 :  5 :  5 : 00000101 :
: 252 :   : FC : 11111100 :  3 :  3 : 00000011 :  4 :  4 : 00000100 :
: 253 :   : FD : 11111101 :  2 :  2 : 00000010 :  3 :  3 : 00000011 :
: 254 :   : FE : 11111110 :  1 :  1 : 00000001 :  2 :  2 : 00000010 :
: 255 :   : FF : 11111111 :  0 :  0 : 00000000 :  1 :  1 : 00000001 :

109                                            CLEFS POUR VG 5000
-----------------------------------------------------------------
-----------------------------------------------------------------
ANNEXE II

CARACTERISTIQUES PRINCIPALES

Présentation
Coffret
Clavier
Dimensions

Alimentation extérieure

Boîtier
Dimensions
Tension entrée
Tensions sortie


111
-----------------------------------------------------------------
CARACTERISTIQUES PRINCIPALES

Caractéristiques techniques
Processeur et mémories
Langage
Affichage
Musique
Magnétophone

Cordons livrés avec l’appareil
Magnétophone
Téléviseur

Extensions
Manettes de jeu
Imprimante
Moduladeur Secam
Extension mémoire

112
-----------------------------------------------------------------
INDEX

ABS
Aquisition de paramètres
ACTION
AND
ARYTAB
ASC
ATN
...
FRETOP

113
-----------------------------------------------------------------

GOSUB
...
SGN

114
-----------------------------------------------------------------

SOUND
...
&""

115
-----------------------------------------------------------------
-----------------------------------------------------------------
CONSEILS DE LECTURE

Pour approfondir vos connaissances en Basic VG5000, et
mieux connaître le système de votre Philips, P.S.I. vous
propose une palette d’ouvrages utiles.

Pour maitriser le BASIC VG5000

Pour mieux connaitre le système Philips

117
-----------------------------------------------------------------

Achevé d’imprimer en Juillet 1985
sur les presses de l’imprimerie Laballery et C
58500 Clamecy

Dépot légal : juillet 1985
Nº d’impression : 506084
Nº d’édition : 86595-259-1
ISBN : 2-86595-259-2

118
-----------------------------------------------------------------
Votre avis nous intèresse
- Pour nous permettre de fair de meilieurs livres, adressez-vous vo

119
-----------------------------------------------------------------
CATALOGUE GRATUIT

Vous pouvez obtenir un catalogue complet des ouvrages PSI, sur simple demande,

120
-----------------------------------------------------------------

Ne tenez plus votre livre d’une main tout
en pianotant de l’autre sur le clavier, “Clefs
pour VG 5000” est un mémento qui s’ouvre
à la bonne page et vous permet d’accéder ef-
ficacement à toutes les informations dont vous
avez besoin : jeu d’instructions du Z80, réper-
toire des instructions et des opérateurs BASIC,

CLEFS POUR VG 5000

Éditions du PSI
B.P. 86
77402 Lagni/Marne
France

ISBN : 2.86595-259.2
Imprimé en France   120 FF

-----------------------------------------------------------------

