Initiation au BASIC COULEUR

Tandy
Cat. No 26-9486

Initiation au BASIC COULEUR 
TRS-80tm COLOR COMPUTER


Affichage :
COLOR BASIC v.r.
© 1980 TANDY
OK

v.r. = 2 chiffres désignant la version que vous utilisez

Language : COLOR BASIC
           Beginners All-purpose Symbolic Intructions Code
           Code d'instruction symbolique à l'intention des débutants

CHAPITRE 1 : FAITES CONNAISSANCE AVEC VOTRE ORDINATEUR

Affichage:
PRINT "message"<ENTER>
Résultat:
	OK
	PRINT "message" 
    message
    OK
     
Inverse Vidéo
<SHIFT> + <0> (zéro)

Notion chaine (strings) versus opération (numbers)
 Une chaîne de caractère est entre guillemet...
 Sans guillemet, il s'agit d'un nombre
 
 "2 + 2" signifie l'affichage de la formule 2 + 2.
 2 + 2   signifie l'opération arithmétique d'addition de 2 + 2 = 4
 donc PRINT "2 + 2 = " 2 + 2   : affiche "2 + 2 = 4"
   et PRINT  2 + 2  affiche 4

Opération: 
	+ ajout
    - soustrait
    / divise
    * multiplie
 
Nombre à virgule : exemple: 15,2

Couleur:
 CLS(chiffre_couleur_fond)
 0 : noir
 1 : vert
 3 : bleu
 4 : rouge
 7 : pourpre
 8 : orange
 rien : vert (CLS<ENTER>)

Sons:
 SOUND tonalité,durée
 exemple: 
 SOUND 255, 100

CHAPITRE 2 : VOTRE ORDINATEUR N'OUBLIE JAMAIS RIEN (si vous ne le débranchez pas...)

Les variables:
	Nombre:
		nomVariable = nombre
        Exemple: A = 13
                 A = 17,2
        affichage : tel qu'un nombre 
        Exemple:  PRINT 13
                  A = 13
                  PRINT A
                  affiche la même chose
    Chaîne de caractère
         nomVariable$ = chaine
         Exemple: A$ = "allo"
                  B$ = "toi comment ca va?"

CHAPITRE 3 : VOUS VOYEZ COMME C'EST FACILE

Création et exécution d'un programme
NEW<ENTER>
10 PRINT "SALUT"<ENTER>
RUN<ENTER>

NEW    : efface la mémoire
10     : signifie la ligne d'instruction numéro 10
RUN    : exécute le programme

Ajouter une ligne: 
20 print "QUEL EST VOTRE NOM?"<ENTER>

LIST<ENTER>  : affiche la liste d'instruction du programme

Demander une chaîne de caractère à l'usager:
30 INPUT A$<ENTER>

Afficher le message entrée
40 PRINT "HI", A$<ENTER>

Faire une boucle (répéter le programme)
50 GOTO 10

l'instruction GOTO 10 dit à l'ordinateur de refaire la ligne 10 et ce qui suit...
pour arrêter une boucle infinie appuyer sur la touche <BREAK>

Effacer une ligne d'un programme
numéro_de_ligne<ENTER>

CONDITION:
	IF valeur = valeur THEN no_ligne

    Exemple: 
 		IF R$ = "OUI" THEN 20 
        si R$ est égal à "OUI" on saute à la ligne 20

        IF COULEUR = 9 THEN 40
        si la couleur est égal à 9 on saute à la ligne 40

CHAPITRE 4 : BATTEZ LA MESURE

Boucle:
  10 FOR X = 1 TO 10 
  20 PRINT "X = " X
  30 NEXT X
  40 PRINT "J'AI TERMINÉ LE COMPTAGE"

  Syntaxe:
  FOR nomVar = valeurDépart TO valeurFin [STEP ajout]
    instructions
    ...
  NEXT nomVar

  Exemple : compter les multiples de 3
  10 FOR X = 3 TO 3 STEP 3
  20 PRINT " " X " ",
  30 NEXT X

CHAPITRE 5 : CHANTER LE TEMPS QUI PASSE

Boucle d'une seconde...
10 FOR Z = 1 TO 460 
20 NEXT Z

Boucles imbriquées
10 FOR Z = 1 TO 3
	20 FOR Y = 1 TO 2
	30 NEXT Y
40 NEXT Z

Afficher un message dans la colonne suivante:
PRINT ,message

  Horloge: 
  10 FOR H = 0 TO 23
     20 FOR M = 0 TO 59
        30 FOR S = 0 TO 59
           40 CLS 
           50 PRINT H":"M":"S
           60 SOUND 150,2
           70 FOR T = 1 TO 375
           80 NEXT T
        90 NEXT S
     100 NEXT M
  110 NEXT H
  120 GOTO 10 (horloge sans fin!)

  Chanson, Three blind mice
  10 FOR X = 1 TO 2
     20 SOUND 125,8   "Three"
     30 SOUND 108,8   "blind"
     40 SOUND 89,8    "mice"
  
     44 FOR Y = 1 TO 230 (pause)
     46 NEXT Y

  50 NEXT X

  60 FOR X = 1 TO 2
     70 SOUND 147,8   "See"
     80 SOUND 133,8   "how"
     90 SOUND 133,8   "they"
     100 SOUND 125,8   "run"
  
     110 FOR Y = 1 TO 230 (pause)
     120 NEXT Y

  130 NEXT X
   
  Listage avancée:
  LIST noLigneDépart-noLigneFin<ENTER>

CHAPITRE 6 : DECISIONS, DECISIONS ...

Condition et fin de programme:
	10 PRINT "VOULEZ-VOUS UN ECRAN ROUGE OU BLEU?"
    20 INPUT C$
    30 IF C$ = "ROUGE" THEN 100 
    40 IF C$ = "BLEU" THEN 200
    50 PRINT "VOUS DEVEZ ENTRER ROUGE OU BLEU"
    60 GOTO 20        // ce n'était ni rouge ni bleu

    100 CLS(4)        // couleur rouge
    110 END           // fin du programme

    200 CLS(3)        // couleur bleu
    210 GOTO 10       // redemande la question du début

CHAPITRE 7 : JEUX DE HASARD

Choisir un nombre de 1 à 10
10 PRINT RND(10)

Roulette russe:
    NEW<ENTER>
	10 PRINT "CHOISISSEZ L'ALVEOLE (1-10)"
    20 INPUT X
    30 IF X = RND(10) THEN 100
    40 SOUND 200, 1
    50 PRINT "--CLIC--"
    60 GOTO 10
 
    100 FOR T = 133 TO 1 STEP -5
        110 PRINT "          BANG!!!!"
        120 SOUND T, 1
    130 NEXT T
    140 CLS
    150 PRINT @ 230, "DESOLE, VOUS ETES MORT"
    160 SOUND 1, 50
    170 PRINT @ 390, "VICTIME SUIVANTE"

Jeter les dés:
	10 CLS 
    20 X = RND(6)
    30 Y = RND(6)
    40 R = X + Y
    50 PRINT @ 200, X
    60 PRINT @ 214, Y
    70 PRINT @ 394, "Vous avez jete un " R
    80 PRINT @ 454, "Voulez-vous jeter à nouveau les dés ?"
    90 INPUT A$
    100 IF A$ = "OUI" THEN 10

CHAPITRE 8 : COMMENT CONSERVER UN PROGRAMME SUR BANDE

CCR-81
petit câble à la prise TAPE
petite fiche grise --> prise REM
grande fiche grise --> prise AUX
fiche noire        --> prise EAR

Sauvegarder le programme:
	appuyer sur PLAY + RECORD (en même temps)
	
	CSAVE "nomProgramme"<ENTER>  // le nom du programme doit avoir 8 lettres

	le TRS affiche OK lorsque l'enregistrement est terminé

Charger le programme:
	Touche PLAY
	NEW<ENTER> (pour effacer tout programme existant)
    CLOAD "nomProgramme"<ENTER>  // le nom du programme
    le TRS affiche S              lorsqu'il recherche (search) le programme
      puis affiche F nomProgramme lorsqu'il l'a trouvé
         et        OK             lorsque le programme est chargé

    taper RUN ou LIST...

Programme multiple:
	Touche PLAY
    SKIPF "nomProgramme"<ENTER>  // aller au dernier programme
       ou 
    SKIPF "nomProgramme"<ENTER>  // inscrire un nom de programme qui n'existe pas
                                 // pour aller à la fin...
    le TRS affiche OK
    
    CSAVE "nouveauProgramme"<ENTER>

CHAPITRE 9 : COLORIEZ L'ECRAN

10 CLS(0)        // ecran noir
20 SET(0,0,3)    // point bleu(3) à la position x,y : 0,0
                 // 0,0 = coin haut gauche   63,31 = coin bas droit
30 GOTO 30

Le visage de l'ordinateur
5   CLS(0)                   // ecran noir
10  FOR H = 15 TO 48
20     SET(H,5,5)            // ligne du haut
30     SET(H,20,5)           // ligne du bas
40  NEXT H
50  FOR V = 5 TO 20
60     SET(15,V,5)           // ligne de gauche
70     SET(48,V,5)           // ligne de droite
80  NEXT V
90  SET (32,13,8)            // nez orange
100 FOR H = 28 TO 36
110    SET(H,16,4)           // bouche rouge
120 NEXT H
130 SET(25,10,3)             // oeil gauche bleu
140 SET(38,10,3)             // oeil droit bleu
150 RESET(38,10)             // efface le point
160 GOTO 140

REBONDIR UN POINT
5  CLS(0)
10 FOR V = 0 TO 31
20    SET(31,V,3)
30    RESET(31,V) ou 30 IF V > 0 THEN RESET(31,V-1)
40 NEXT V

50 FOR V = 31 TO 1 STEP -1
60    SET(31,V,3)
70    RESET(31,V) ou 30 IF V < 31 THEN RESET(31,V+1)
80 NEXT V
90 GOTO 10

JOYSTICKS:
	10 CLS
	20 PRINT @0, JOYSTK(0);
	30 PRINT @5, JOYSTK(1);
	40 PRINT @10, JOYSTK(2);
	50 PRINT @15, JOYSTK(3);
	60 GOTO 20

PINCEAUX:
	10 CLS(0)
    20 H = JOYSTK(0)
    30 V = JOYSTK(1)
    40 IF V > 31 THEN V = V-32 

    50 C = JOYSTK (2)
    60 IF C < 31 THEN C = 3
    70 IF C >= 31 THEN C = 4

    80 SET(H,V,C)

    100 P = PEEK(65280)
    110 IF P = 126 THEN 10
    120 IF P = 124 THEN 10
    130 GOTO 20

CHAPITRE 10 :

Messages et erreurs
?/0 ERROR         : division par zéro
?FC Error Message : chiffre non compris entre 0 et 8 (CLS)
                  : chiffre non compris entre 1 et 255 (SOUND)
?SN ERROR         : erreur de syntaxe (ne comprend pas l'inverse vidéo)
?TM ERROR         : Type Mismatch error (erreur d'assortiment)
                    exemple: D = "chaine"
OK                : tout va bien

Touche du clavier:
SHIFT + 0 : inverse vidéo
SHIFT + @ : pause un programme, appuyer sur une touche pour continuer...
BREAK     : arrête un programme

Commandes:
CLS[(code_couleur{0,8})]   : efface l'écran (change de couleur)
END                        : finir le programme
FOR nomVar = noDepart TO noFin [STEP nombre] : boucle (se répète avec l'instruction NEXT nomVar)
GOTO noLigne               : saute au numéro de ligne spécifié
IF condition THEN noLigne  : si la condition est vrai, saute au numéro de ligne
INPUT nomVar[$]            : demande l'entrée d'une chaîne de caractère... nomVar$
                                           ou d'un nombre                  nomVar
LIST [noDépart-noFin]      : affiche toutes ou quelques lignes d'un programme
pos = JOYSTK({0,3})        : position du joystick (lire les positions de JOYSTK(0) avant les autres!)
                             0 = horizontale gauche (0,63)
                             1 = verticale   gauche (0,63)
                             2 = horizontale droit  (0,63)
                             3 = verticale   droit  (0,63)
          

NEW                        : efface la mémoire et crée un nouveau programme
NEXT nomVar                : voir for ... to ... step ... next
PEEK(adresse)              : renvoie la valeur d'une adresse
bouton = PEEK(65280)       : bouton des joystick
                             127, 255 = rien
                             126, 254 = bouton gauche
                             125, 253 = bouton droit
PRINT message[,variable]   : affiche un message

      ponctuation à la fin : imprime quoi?
      =============================
      virgule              : imprime en colonne
      point-virgule        : regroupe le texte de la ligne (aucun changement de ligne)
      aucune               : changement de ligne
      ponctuation au début
      =============================
      virgule              : imprime sur la colonne suivante
      @ noCaractère, message : imprime le message au noCaractère précisé
                               commence à 0, 32 caractère par ligne...


RESET(x,y)                 : remet le point à sa couleur originale
nombre = RND(limite)       : choisi un nombre aléatoire entre 1 et limite
RUN [noligne]              : exécute un programme
SOUND tonalité{1,255}, durée [1 = 6/100s, 100 = 6s] : fait un son
SET (x{0,63},y{0,31},couleur{0,8})  : fait un point de couleur aux coordonnées x,y

[] : signfie non nécessaire
{} : valeur possible