Section courante

A propos

Section administrative du site

Couleur et graphiques

Lorsque vous allumez ORIC, il passe automatiquement en mode texte (TEXT), c'est-à-dire que vous pouvez utiliser l'écran pour taper directement et lorsqu'il est plein, il défilera automatiquement vers le haut. La zone texte est également utilisée pour les graphiques basse résolution.

Avant d'expérimenter avec LORES, ce serait une bonne idée de découvrir quelles couleurs sont disponibles. Il existe deux commandes de couleur, INK et PAPER. Celles-ci définissent respectivement les couleurs de premier plan et d'arrière-plan et peuvent être utilisées soit comme commandes directes, soit dans des programmes. Ils doivent être suivis d'un nombre (0 à 7) pour spécifier la couleur, et peuvent être utilisés en mode TEXT ou HIRES :

Valeur Description
0 Noir
1 Rouge
2 Vert
3 Jaune
4 Bleu
5 Magenta
6 Cyan
7 Blanc

Essayez-les maintenant. Si vous êtes habitué aux ordinateurs devant effacer l'écran avant de pouvoir changer de couleur, vous constaterez qu'ORIC n'a pas besoin de le faire. Voici un programme court pour vous montrer toutes les combinaisons de couleurs d'ORIC :

  1. 5 REM COULEURS
  2. 10 TEXT
  3. 20 FOR N = 1 TO 25
  4. 30 PRINT "CE TEXTE EST EN COULEUR DE PREMIER PLAN"
  5. 40 NEXT N
  6. 50 FOR I = 0 TO 7
  7. 60 FOR P = 0 TO 7
  8. 70 INK I : PAPER P
  9. 80 WAIT 100
  10. 90 NEXT P
  11. 100 NEXT I
  12. 210 INK 7 : PAPER 4

Bien sûr, quand vous mettez le premier plan et l'arrière plan avec la même couleur, vous ne pourrez pas lire les mots !

Pour les graphiques basse résolution, vous pouvez utiliser l'écran en mode texte (TEXT) ou vous pouvez saisir LORES 0 ou LORES 1. La zone d'écran disponible pour le traçage est de 0 à 38 sur l'axe X (horizontal) et de 0 à 26 sur l'axe Y (vertical). La position 0,0 se trouve dans le coin supérieur gauche de l'écran. La colonne la plus à gauche ne peut pas être utilisée, car elle contient l'attribut contrôlant l'arrière-plan ou la couleur du premier plan (PAPER) de cette ligne.

La colonne suivante contrôle le premier plan ou la couleur INK, mais peut être utilisée en mode texte (TEXT). Si LORES 0 ou LORES 1 sont sélectionnés, l'écran passe au noir de fond et l'attribut de l'ensemble de caractères standard ou alternatif est également placé à l'extrême gauche de l'écran.

LORES 0 utilise l'ensemble de caractères standard et LORES 1, l'ensemble alternatif.

Par exemple :

  1. 10 LORES 0
  2. 20 PLOT 16,12,"BONJOUR"     

Si vous tapez maintenant :

  1. 10 LORES 1

Si la ligne 20 est toujours intacte, au lieu d'afficher BONJOUR, un ensemble étrange de blocs 1 sera affiché. Ce sont des caractères de l'ensemble alternatif - 4, et ceux-ci sont ceux partageant les mêmes codes ASCII que les lettres de BONJOUR. C'est la seule différence entre LORES 0 et LORES 1. Ce programme affichera l'ensemble complet de caractères alternatifs :

  1. 5 REM ** CARACTERES ALTERNATIF **
  2. 10 FOR N = 32 TO 128
  3. 20 PRINT N,CHR$(27);"I";CHR$(N)
  4. 30 PRINT
  5. 40 WAIT 25
  6. 50 NEXT N

Vous pouvez utiliser ce programme pour sélectionner des caractères pour former vos propres formes graphiques. C'est une façon dont il peut être utilisé.

  1. 1 REM *** MONSTRE ***
  2. 2 REM *** DEMO LORES 0/1 ***
  3. 5 LORES 1
  4. 6 D=0
  5. 9 REPEAT
  6. 10 A$="F9":B$="6I"
  7. 20 FOR C=0 TO 35
  8. 30 PLOT C,D,A$
  9. 35 PLOT C,D+1,B$
  10. 45 PLOT C,D," "
  11. 50 PLOT C,D+1," ""
  12. 55 NEXT C
  13. 56 SHOOT
  14. 60 D=D+2
  15. 70 UNTIL D=26
  16. 75 EXPLODE
  17. 80 CLS

Les caractères en A$ et B$ n'apparaissent pas dans leur forme normale, car LORES 1 a été sélectionné. Le reste du programme envoie le caractère composé le long des lignes successivement jusqu'à ce que la ligne 26 soit atteinte, où elle explosera !

Pour voir les caractères standard, tapez simplement LORES 0 à la ligne 5. Si vous avez besoin de mélanger des caractères alternatifs et standard sur le même écran, c'est-à-dire de mélanger du texte et des graphiques, alors c'est facile. Pour utiliser des caractères standard dans LORES 1, CHR$(8) passera au ensemble standard et CHR$(9) reviendra.

Si vous les utilisez en sens inverse, vous pouvez bien sûr afficher des caractères alternatifs dans LORES 0. Voici deux programmes pour démontrer cet effet. Dans tous les programmes utilisant LORES 0 ou LORES 1, il est conseillé de désactiver le curseur clignotant en tapant CTRL+Q en même temps. Répéter cette action réactivera le curseur.

  1. 5 REM ** TEXT DANS LORES 1 **
  2. 10 LORES 1
  3. 20 A$ = CHR$(8) + "BONJOUR" + CHR$(9)
  4. 30 FOR N = 2 TO 24
  5. 40 PLOT N,N,"KKKK"
  6. 50 PLOT N,26=N,A$
  7. 60 NEXT N
  8. 70 WAIT 500
  9. 8 0 CLS
  10. 5 REM ** CARACTERES ALTERNATIF DANS LORES 0 **
  11. 10 LORES 0
  12. 20 A$ = CHR$(9) + "BONJOUR" + CHR$(8)
  13. 30 FOR N = 2 TO 24
  14. 40 PLOT N,N,"KKKK"
  15. 50 PLOT N,26-N,A$
  16. 60 NEXT N
  17. 70 WAIT 500
  18. 80 CLS

Positions de l'écran

Si vous avez besoin de savoir quels caractères se trouvent à une position particulière sur l'écran en mode TEXT ou LORES, utilisez SCRN(X,Y).

Tapez CLS pour effacer l'écran. Le curseur devrait maintenant se trouver dans le coin supérieur gauche. Taper :

  1. PLOT 10,20,"A"

Un A majuscule apparaîtra près du bas de l'écran.

Tapez :

  1. PRINT SCRN (10,20)

Le nombre 65 sera renvoyé, car il s'agit du code ASCII de la lettre A.

Voici un programme court utilisant REPEAT pour une boucle jusqu'à ce qu'un missile tombant atteigne une cible. SCRN(X,Y) détecte quand le missile est à un endroit de la cible (le code ASCII pour + est 43 - voir ligne 220), et le programme se termine par une explosion. Après avoir lancé le programme, changez le mode dans lequel il fonctionne, en ajoutant la ligne 115 LORES 0 ou 115 LORES 1. Cela vous montrera les différents effets que vous obtenez selon le mode que vous avez sélectionné.

  1. 100 :REM ** UTILISE DE SCRN(X,Y) **
  2. 110 :CLS:INK 1:PAPER 4
  3. 120 :FOR N =20 TO 25
  4. 130 : PLOT N,26," + "
  5. 140 :NEXT N
  6. 150 :REPEAT
  7. 160 : A = INT(RND(1)*36 + 2)
  8. 170 : FOR P = 0 TO 24
  9. 180 : PLOT A,P,"V"
  10. 190 : WAIT 4
  11. 200 : PLOT A,P," "
  12. 210 : NEXT P
  13. 220 :UNTIL SCRN(A,P + 1) = 43
  14. 230 :EXPLODE

Ce programme a été mis en retrait pour le rendre plus facile à comprendre. Cela fonctionnera parfaitement bien avec les deux-points et les espaces initiaux supprimés.

Pour compléter cette section sur les graphiques basse résolution, voici un programme pour montrer comment les couleurs de fond peuvent être tracées dans un cercle.

  1. 10 REM **** TRACE DES COULEURS LORES ****
  2. 20 LORES 0
  3. 30 STP = 2*PI/50
  4. 40 R=10:X=10:Y=10
  5. 50 REPEAT
  6. 60 E=18+RND(1)*6
  7. 70 PLOT X + R*SIN(C),Y + R*COS(C),E
  8. 80 C=C+STP
  9. 90 UNTIL C>2*PI
  10. 100 REPEAT:UNTIL KEY$<>""
  11. 110 CLS

Graphiques haute résolution

Si vous souhaitez dessiner des images haute résolution, vous devez taper HIRES. Essayez-le maintenant.

Vous devriez constater que le haut de l'écran devient noir, ne vous laissant que trois lignes de texte en bas. Ceci est utile, car vous pouvez taper des instructions de dessin et voir l'effet sur l'écran ci-dessus. En mode immédiat, vous pouvez donc utiliser ORIC comme tablette graphique pour tester vos consignes. Lorsqu'ils sont corrects, vous pouvez les intégrer dans vos programmes.

Si vous souhaitez revenir en mode TEXT, tapez simplement TEXT et l'écran reviendra à son format d'origine. TEXT et HIRES peuvent être utilisés comme commandes dans les programmes.

Avant de commencer à dessiner quoi que ce soit, vous devez imaginer que l'écran est divisé en 240 positions (étiquetées 0 à 239) sur l'écran et 200 positions (étiquetées 0 à 199) sur l'écran. Celles en travers sont appelées positions X, et celles en bas, positions Y. Si vous avez utilisé des graphiques, vous serez familiarisé avec cela - la seule différence est que l'origine (0,0) se trouve dans le coin supérieur gauche.

Il existe plusieurs commandes de dessin spécialisées facilitant les graphiques sur ORIC.

CURSET définit le curseur sur une position absolue X, Y, ou tracera ce point. Il doit être suivi de trois paramètres. (Ce sont des chiffres que l'ORIC doit connaître).

Le curseur de HIRES ne clignote pas à l'écran comme le curseur TEXT.

Exemple :

  1. CURSET 120,100,1

déplacera le curseur au centre de l'écran et affichera un pixel ou un petit point. Le premier paramètre est la distance sur l'écran (0 à 239), le second est la distance vers le bas de l'écran (0 à 199) et le troisième est le numéro FB (FOREGROUND/BACKGROUND). Les codes FB sont :

Valeur Description
0 Couleur d'arrière-plan
1 couleur de premier plan
2 Inverse les couleurs
3 Nulle (ne rien faire)

Tapez maintenant HIRES et expérimentez avec CURSET.

La commande graphique suivante est CURMOV. Ceci est similaire à CURSET sauf que X et Y sont relatifs à la dernière position du curseur. Encore une fois, ORIC doit connaître les numéros X, Y et FB. Assurez-vous que la valeur de X ou Y plus la position actuelle du curseur ne vous fait pas quitter l'écran, sinon vous obtiendrez un message d'erreur.

DRAW X,Y,FB tracera une ligne droite de la position actuelle du curseur au curseur actuel plus X et Y.

Essayez ce programme court. Vous devriez trouver qu'il dessine un carré. Notez que les nombres négatifs sont tirés de droite à gauche ou de bas en haut. Si la forme n'est pas assez carrée, essayez de changer les lignes 30 et 50 :

  1. 5 REM ** CARRE **
  2. 10 HIRES
  3. 20 CURSET 60,40,3
  4. 30 DRAW 120,0,1
  5. 40 DRAW 0,120,1
  6. 50 DRAW -120,0,1
  7. 60 DRAW 0,-120,1

N'oubliez pas : Changer de mode, ou même taper à nouveau HIRES, effacera définitivement votre image !

Motifs

ORIC a encore une autre astuce pour vous. Lorsque vous allumez, la commande DRAW est configurée pour tracer une ligne continue. Il est cependant possible de tracer des lignes pointillées, des lignes pointillées,..., selon vos propres spécifications.

Voilà comment cela fonctionne. Si vous vous souvenez qu'il a été mentionné plus tôt qu'ORIC pense en octets de 8 bits, vous pouvez donc compter de 0 à 255 en utilisant 8 zéros et uns. Lorsque l'ORIC est activé, le nombre 255 est chargé dans le masque de motif. (255 s'écrit 11111111 en code binaire.)

Vous pouvez définir le masque sur n'importe quel nombre de 0 à 255 pour obtenir différents effets. Si vous voulez des tirets de taille égale, vous pouvez taper PATTERN 15.

15 est 00001111 en binaire.

c'est-à-dire 8 + 4 + 2 + 1, donc la moitié de la ligne est « allumée » et l'autre moitié est « éteinte ». Essayez de dessiner à nouveau le carré, mais cette fois, réinitialisez le masque de motif sur des nombres différents. Rien ne vous empêche d'avoir deux côtés continus, un pointillé et un pointillé. Pour vous aider à comprendre comment cela fonctionne, ajoutez simplement cette ligne en entrée.

  1. 15 PATTERN 170     

(170 est 10101010 en binaire). Il devrait vous envoyer un pique !

Pour un aperçu vraiment passionnant des capacités d'ORIC en mode HIRES, essayez ce court programme générant des motifs d'interférence en dessinant des lignes proches les unes des autres :

  1. 5 REM ** MOIRE **
  2. 10 HIRES
  3. 20 FOR A=0 TO 1
  4. 30 FOR B=0 TO 239 STEP 6
  5. 40 CURSET 0,199*A,3
  6. 50 DRAW B,199-398*A,1
  7. 60 CURSET 239,199*A,3
  8. 70 DRAW -B, 199-398*A,1
  9. 80 NEXT B:NEXT A

CHAR

Si vous deviez essayer d'afficher en mode HIRES, vous n'obtiendriez que du texte sur les 3 dernières lignes. Il existe cependant une commande vous permettant d'imprimer n'importe où sur l'écran haute résolution. Tapez NEW pour effacer la mémoire, puis HIRES. Placez maintenant le curseur au milieu de l'écran en tapant CURSET 120, 100, 3. Tapez maintenant CHAR 65,0,1. Vous devriez avoir un A majuscule au milieu de l'écran.

CHAR est la commande, suivie de trois paramètres :

CHAR X, S, FB

Nom Description
X Ce paramètre permet d'indiquer un code A.S.C.I.I., soit une valeur entre 32 et 127.
S Ce paramètre permet d'indiquer qu'il est soit 0 (ensemble de caractères standard) soit 1 (ensemble de caractères alternatif)
FB Ce paramètre permet d'indiquer la valeur de premier plan/arrière-plan (0 à 3).

A.S.C.I.I. (généralement prononcé «Askey») signifie American Standard Code for Information Interchange. Il est assez standardisé et attribue des numéros de code aux lettres, chiffres et symboles. Il existe une commande ASC du BASIC retournant la valeur d'un caractère dans une chaîne de caractères, et cela fera gagner du temps comme vous le verrez dans le prochain programme :

  1. 5 REM ** EMPREINTE LATERALE **
  2. 10 HIRES
  3. 20 CURSET 50,50,3
  4. 30 N$="BONJOUR JE SUIS ORIC"
  5. 40 FOR A=1 TO LEN(N$)
  6. 50 CHAR ASC(MID$(N$,A,1)),0,1
  7. 60 CURMOV 10,10,0
  8. 70 NEXT A

Les lignes 40 à 70 contiennent une boucle analysant la longueur de N$ et affiche les caractères conformément à la commande CURMOV. Remplacez N$ par votre nom ou essayez de modifier les paramètres CURMOV pour voir ce qui se passe. Faites attention à ne pas sortir de l'écran, sinon vous obtiendrez un message d'erreur.

Cercles

Pour dessiner des cercles, tapez simplement CIRCLE, suivi de deux nombres - d'abord le rayon, puis le code FB. Le centre sera à la position actuelle du curseur. Faites attention que votre rayon n'enlève pas la circonférence de l'écran. Essayez ceci comme une commande directe en mode HIRES :

  1. CURSET 120,100,3

alors

  1. CIRCLE 50,1

Si vous avez précédemment défini PATTERN sur une valeur différente, le cercle sera dessiné en points,... Essayez ce programme, pour un effet intéressant.

  1. 100 : REM ** CERCLES DE DENTELLE **
  2. 110 : HIRES
  3. 120 : CURSET 120,100,3
  4. 130 : FOR N=99 TO 1 STEP -1
  5. 140 :  CIRCLE N,1
  6. 150 :  PATTERN 100-N
  7. 160 : NEXT N

Points

Si vous voulez savoir si un pixel particulier sur l'écran est en couleur de premier plan ou d'arrière-plan, par exemple s'il y a un envahisseur spatial au centre de l'écran, alors POINT est la commande dont vous avez besoin. Pour voir comment cela fonctionne, essayez ceci en mode direct. Tapez :

  1. HIRES

Tapez maintenant (pour curseur placé à la position dans la couleur d'arrière-plan) :

  1. CURSET 0,0,0

Tapez maintenant :

  1. TEXT

Ensuite, tapez :

  1. PRINT POINT (0,0)

Comme 0,0 est défini sur arrière-plan, vous obtiendrez 0 comme valeur affiché. Tapez HIRES. Tapez cette fois CURSET 0,0,1 (curseur placé à la position 0,0 en couleur de premier plan). Tapez maintenant :

  1. TEXT

Tapez alors :

  1. PRINT POINT (0,0)

Cette fois, vous devriez obtenir -1, car le pixel est mis au premier plan.

FILL

C'est une commande utile pouvant remplir une zone de tant de lignes avec une valeur et autant de cellules de caractères avec une valeur, entre 0 et 127. Il y a 200 lignes, 40 cellules par ligne. La valeur produit des couleurs et des motifs en fonction des attributs.

Voici un court programme pour vous montrer les détails fins qu'ORIC peut réaliser :

  1. 5 HIRES
  2. 10 FOR N=0 TO 199
  3. 20 X=RND(1)*8+16
  4. 30 FILL 1,1,X
  5. 40 NEXT N

La ligne 20 choisit les couleurs d'arrière-plan au hasard de la ligne 0 (en haut) à la ligne 199 (en bas). Expérimentez pour trouver ce que les autres attributs permettront d'accomplir. Ce programme montre comment mélanger des motifs graphiques avec des attributs de couleur et de clignotement. A noter que la ligne 130 évite d'utiliser les codes de contrôle perturbant la synchronisation de l'écran :

  1. 100 :REM ** DEMO DE FILL **
  2. 110 :HIRES
  3. 120 :REPEAT
  4. 130 : A = RND(1)*128 + 1:IF A>23 AND A<32 THEN 130
  5. 140 : CURSET RND(1)*90+10,RND(1)*90+10,1
  6. 150 : FILL RND(1)*90+1,1,A
  7. 160 :UNTIL KEY$<>""

Double hauteur et caractères clignotants

Si vous voulez des caractères spéciaux, par exemple un clignotant ou en double hauteur, il existe une routine dans ORIC réalisant cela pour vous. Vous devrez vous référer au tableau couvrant les caractères de contrôle. CTRL+D active/désactive la double hauteur automatique. Ceci n'est accessible que par le biais d'une déclaration d'affichage. Taper :

  1. PRINT CHR$(4)

Tout ce que vous entrez maintenant apparaîtra deux fois dans des lignes consécutives. Essaye-le. Mais comment l'arrêter ? Comme il s'agit d'un interrupteur à bascule, taper PRINT CHR$(4) une deuxième fois désactivera cette action. Les autres caractères de contrôle sont obtenus d'une manière similaire. Mais il retour aux doubles clignotants ! Le programme suivant vous donnera l'effet que vous désirez :

  1. 10 PRINT CHR$(12)
  2. 20 PRINT CHR$(4); CHR$(27);"N CARACTERES DOUBLE CLIGNOTEMENT"
  3. 30 PRINT CHR$(4)

Ne vous inquiétez pas si cela semble effrayant; Je vais expliquer chaque ligne à la fois. La ligne 10 efface l'écran. Cela garantit également que vous commencez en haut de l'écran. Vous verrez pourquoi c'est important lorsque nous ajouterons la ligne 15 plus tard.

La ligne 20 contient plusieurs déclarations. CHR$(4) active la double hauteur automatique (pour éviter de tout taper deux fois), CHR$(27) est A.S.C.I.I. code pour échapper (pour démarrer la routine de caractère d'échappement) et le N dans les guillemets sélectionne les caractères à double hauteur et clignotants pour le reste du texte - il ne sera pas imprimé lui-même.

La ligne 30 désactive le D/H automatique. Essayez de changer le message entre guillemets, ainsi que de modifier le code d'échappement, par exemple "J BONJOUR" produira des caractères non clignotants à double hauteur. Lorsque vous avez découvert comment obtenir différents effets, ajoutez cette ligne : 15 PRINT - puis RUN le programme. À partir du résultat étrange, vous verrez à quel point il est important de commencer sur un numéro de ligne pair (0,2,...).

En conclusion, voici un programme utilisant de nombreuses commandes graphiques haute résolution. Il montre également comment les informations pour les commandes de dessin peuvent être conservées dans les instructions DATA :

  1. 100 :REM ** POUR VOS PENSEES **
  2. 110 :HIRES
  3. 120 :X = 100:Y = X
  4. 130 :CURSET X,Y,1
  5. 140 :PAPER 6:INK 1
  6. 150 :CIRCLE 70,1 '**ROUE AVANT**
  7. 160 :REPEAT
  8. 170 :CURSET X,Y,3
  9. 180 : DRAW 69*SIN(F),69*COS(F),1
  10. 190 : F=F+.1
  11. 200 :UNTIL F>2*PI
  12. 210 :F=0
  13. 220 :CURSET 200,140,3
  14. 230 :CIRCLE 30,1 '**ROUE ARRIERE**
  15. 240 :REPEAT
  16. 250 : DRAW 29*SIN(F),29*COS(F),1
  17. 260 : CURSET 200,140,3
  18. 270 : F=F+.1
  19. 280 :UNTIL F>2*PI
  20. 290 :CURSET 100,15,3
  21. 300 :REPEAT
  22. 310 : READ A,B
  23. 320 : DRAW A,B,1
  24. 330 :UNTIL B = 25
  25. 340 :CURSET 160,20,3
  26. 350 :FOR N = 1 TO 10 '**TEXTE 1**
  27. 360 : READ L
  28. 370 : CHAR L,0,1
  29. 380 : CURMOV 7,0,3
  30. 390 :NEXT
  31. 400 :CURSET 160,32,3
  32. 410 :FOR N = 1 TO 99 '**TEXTE 2**
  33. 420 : READ L
  34. 430 : CHAR L,0,1
  35. 440 : CURMOV 7,0,3
  36. 450 :NEXT
  37. 500 :DATA -10,0,10,10,0,20,0,-20,40,0
  38. 510 :DATA -10,-10,15,0,-5,10,60,60,0,25
  39. 520 :DATA 79,82,73,67,32,82,73,68,69,83
  40. 530 :DATA 84,79,32,87,79,82,75,33,33


Dernière mise à jour : Mardi, le 1er mars 2022