J'ai écrit un logiciel de dessin vectoriel, non seulement celui-ci devrait vous convenir mais en plus vous aurez le loisir de vous former à la création sur écran en utilisant une souris pour effectuer toutes les manipulations possibles que j'ai imaginées.

Si seulement j'avais suivi les cours préparatoire au le lycée, je n'aurais pas eu besoin de me documenter tout seul, Mais j'ai quand même pu l'écrire et je tiens donc à remercier mes professeurs.

Je prenais régulièrement des notes, en fait des cours complets de méthodologie pour actionner des vérins et construire des diagrammes dans le but de définir des actions. Elève attentif je ne faisais pas qu'observer mes professeurs mais conscencieusement je prenait tout autant attention à mes cours qu'à mes devoirs. Quand j'ai terminé ces études, je suis allé travailler comme informaticien pour apprendre sur le clavier comment programmer.

Il faudrait quand même savoir que je mémorisais les acquis qui m'ont été enseignés et le travail accumulé par cette activité m'a été bénéfique car c'est avec une facilité déconcertante que je développe à nouveau et comme toujours le logiciel qui m'a fait connaître.

Quand j'ai rencontré le monde de l'informatique professionel avec des ordinateurs qui ne tombaient pas en panne, car ces «machines» étaient conçus dans un but lui aussi professionel. Et une fois, que j'eus la preuve du fonctionnement avec des langages de haut niveau d'abstraction (plus éloigné du processeur mais littéralement explicite) que je me suis mis à bosser sérieusement.

Mais je m'étais d'ailleurs déjà mis à programmer sur une calculatrice Texas-Instrument en seconde où nous devions en acheter une pour résoudre des équations comme Δ=b2-4ac puis sur une calculatrice Sharp dotée d'une imprimante pour écrire des sinusoïdes avec un plotter de quatre couleurs une pour le noir, une pour le vert, une autre bleue et une dernière rouge. Puis, j'ai essayé le ZX-81 de Sinclair et enfin un Oric-1 avec au moins 8 couleurs différentes et une résolution de 240x200 pixels. Au lycée préoccupé par ces ordinateurs et comme nous apprenions à tracer des hyperboles je me suis demandé comment adresser l'écran pour afficher des points plutôt que des caractères.

Familiarisé très tôt avec l'électronique, par exemple avec un jouet qui s'appelais le Simon et qui avait quatre couleurs disposé en cercle (lui aussi) et autant de sonorité, une par lumière, il fallait répéter une suite sur les quatres touches qui s'éclairaient à la suite et qui était mémorisé dans sa mémoire et généré de façon aléatoire. Très vite je me suis amusé à imaginer comment celà fonctionnait et ma première lecture d'ouvrage d'initiation professionel remonte à mes seize ans ou je suis partie avec deux magazines d'informatique en vacances sous les bras, la revue l'«Ordinateur Individuel» et «Micro-Système», je me suis vite dit que c'était difficile mais je me suis assidûment mis à lire ces revues régulièrement pour comprendre et décoder ce mystère, ce langage et l'informatique tels qu'ils se présentaient à l'époque (en 1980). Avec une pléthore d'ordinateurs différents dont on a retenu l'apple ][ les Commodores, les Sinclair et les Amstrad. Différents fabriquants qui créent de toutes pièces des machines qui n'avaient jamais été faites auparavant. Il faut le noter car c'était bien une invention, considéré comme des jeux pour les adolescents que nous étions. Percer le secret de ces machines, voilà le but que je m'étais fixé. Les termes de mémoire et d'horloge sont bien connus mais savez vous ce qu'ils représentent pour un informaticien ?

La mémoire d'un ordinateur représente sa capacité à retenir des informations. L'horloge : sa capacité à agiter un flux plus ou moins rapide.

Le microprocesseur est cadencé avec cette horloge et va donc lire ou écrire selon cette fréquence. Il me semble que quelques opérations sont néccésaires la lecture dans la mémoire et l'écriture qui consiste à positionner sur le bus d'adressage les signaux correspondants à une adresse puis d'activer le signal Read/Write en anglais.

Une autre opération consiste à comparer deux valeurs puis de faire des choix avec l'instruction JMP pour sauter d'autres instruction et en lire d'autre évidemment. Une de ces instructions se nomme Call ou JSR pour appeler un bloc d'instruction puis revenir à la position de départ de celle-ci. Celle qui la suit et peut alors se décomposer en enregistrant cette position pour revenir à la suivante en l'enregistrant dans la pile (stack).

Les opérations de calcul agissent de même que celles des calculatrices dont le registre A serait l'accumulateur et celui qui serait affiché.

En fait, alors ces simples opérations permettent de tout faire car le reste en découle, vous le savez bien et vous pouvez noter cette analogie avec l'enseignement que vous avez suivi à l'école. Car, nous avons appris ensemble mais les aléas de la vie nous ont séparé. Des morceaux d'instruction par là, d'autres instructions par ici, un microprocesseur ne fonctionne pas différement si ce n'est qu'il les execute dans l'ordre ou elle sont écrite. Ce coeur de silicium lit des instructions puis les décodent à travers un masque pour orienter ces calculs. Alors, quand vous utilisez une calculatrice celle-ci fonctionne car un système micro interprète vos instructions. Mais ceci fait-il partie d'un mémoire ou d'explication au fonctionnement d'un calculateur numérique ?

Quand j'étais allé suivre un cours d'électronique, j'avais utilisé des quadruples porte Nand pour laisser ou pas passer le courant en réalisant une porte ET en Français d'où l'idée de l'utiliser pour faire une addition. Cela ne suffit pas parce qu'il faut pouvoir aussi indiquer la retenue avec cette fonction, mais vous avez compris et l'addition d'un bit doit se faire avec la fonction OU.

La façon dont les ordinateurs mémorisent les chiffres s'appelle le système binaire ou chaque bit (binary element) est positionné (allumé) ou pas. On utilise les puissances de deux comme 20=1, 21=2, 22=4 que l'on additionne pour recomposer un chiffre en utilisant le système décimal que l'on connaît bien. Donc 5 en décimal, s'écrit 101 en binaire soit 4+0+1=5 et ainsi de suite pour toutes les valeurs entières, un bit particulier: un drapeau est utilisé pour le signe de ce nombre de l'ensemble Z. Les nombres décimaux utilisent une partie de ce champ de bit pour indiquer la position de la virgule avec 102 pour représenter la valeur de 100 et 10-2 pour celle de 0.01 et ainsi de suite selon le nombre de bits significatifs alloué à ce calcul car les informations sont groupées par 8,16,32,64 bits. Ce qui permet d'accéder à une plus grande plage de calcul et d'augmenter la précission et la vitesse de ceux-ci avec les processeurs modernes qui utilise un champs de bit de plus en plus important à la fois. On utilise les registres pour décomposer les calculs en faisant en sorte que la retenue passe d'un groupe de bits à l'autre. Que ce soit pour les additions ou les multiplications dans un espace de représentation possible selon la taille (le nombre de bits) qui circule entre la mémoire et le calculateur.

Celle-ci augmente progressivement avec la miniaturisation et l'intégration des composants et toujours en utilisant des multiples de deux avec lequel on peut représenter n'importe quel nombre décimal. Je vous l'ai expliqué. D'un côté un bus de donné qui est soit lu soit écrit et qui est retenu par des transistors quand ils sont alimenté en électricité. C'est pourquoi on appele cette mémoire la mémoire vive (ram en anglais) qui se maintient en état de mémoriser les informations quand l'électricité passe, elle est aussi dite volatile quand l'alimentation est coupé cette information s'efface. Vous le voyez bien quand une ampoule est allumée ou pas et son état dépend de l'interrupteur. Une petite combinaison de porte électronique (des transistors) maintient cette état comme des relais électromagnétiques.

Une autre mémoire se nomme mémoire morte, elle est figée une fois pour toute dans une grille de silicium et celle-ci est utilisée comme mémoire permanente pour démarrer l'ordinateur avant que le système soit monté en mémoire du disque dur - ce qui n'existait pas sur les «ordinateurs jeux» du début ou le BASIC pour (Beginer All Symbolique Instruction Code) de Bill Gate était gravé dans cette ROM (pour Read Only Memory) et donner la main à l'utilisateur immédiatement (sans avoir à charger le gestionnaire de fenêtres).

Mais alors pourquoi ne pas le faire ? parce que de cette façon votre système peut s'améliorer et qu'il occupe aussi une place importante en mémoire. A cette époque les «micros-ordinateurs jouets» enregistraient les données sur des casettes audio pendant que ceux, plus professionel avaient des bandes magnétiques ou aussi des rubans de papier perforé. Les moyens de stokage étaient limité et un simple disque dur occupait une place considérable pour seulement 5 méga-octets. Les disquettes s'appelaient des floppy-disk et faisait 3 pouces 1/2, 5 pouces 1/4 ou 8 pouces. de largeur. Non seulement chaque octet était compté mais ils n'étaient pas nombreux. En plus de celà, le stockage sur ces supports n'était pas complétement fiable et prenait un temps de lecture, un temps d'accès très lent sur les bandes, parce qu'il était séquentiel. Il fallait lire la bande magnétique du début à la fin pour trouver les informations et l'on n'avait pas d'accès direct comme avec les disques où la tête de lecture se positionne sur une partition directement comme avec les CD-Audios, quand vous appuyez sur la touche qui permet de passer à la piste suivante.

La parcimonie de ces informations demandait beaucoup d'astuces aux informaticiens qui devaient sans cesse optimiser les données pour qu'elles occupent moins de place (en mémoire). Ces habitudes se sont perdues au fil du temps, avec les capacités plus importantes de la mémoire de stokage ainsi que celle de travail. On peut le regretter, toutefois, car on constate que certaines opérations ne vont pas plus vite étant donné ce fait, la course à la puissance se trouve corroboré par le fait que les logiciels sont de plus en plus lourds et la complexité de ces machines les rend non seulement moins facile à programmer, du fait des couches plus abstraites avec le système, mais aussi plus vulnérables à toutes sortes de défauts. Un exemple simple consiste à utiliser un navigateur Web pour que l'on ne sache plus où est le curseur d'entrée (un fait vérifié).

Les systèmes opérationnels n'ont pas toujours étaient si rapide et je me souviens qu'il fallait sur ces mini-ordinateurs plusieurs minutes avant de démarrer et qu'un opérateur devait alors saisir ce qui n'est qu'un DOS-Batch pour certain et ce depuis les systèmes qui ont eu des noms comme CP/M pour Control Process Machine ou MS-DOS pour MicrosoftTM. Bill aurait eu un contrat avec IBM (International Business Machine) pour pouvoir lui aussi vendre son système à d'autres fabricants d'ordinateurs, ce fût le début de sa fortune. Un DOS signifie Disque Opérating Système le terme est flatteur en français «système d'exploitation» que je préfère appeler d'utilisation.

Je me faisais rire quand avec ces systèmes compliqués, il n'avait même pas connaissance ou bien il feignait de la faire tellement ils voulaient nous apprendre ce qu'ils faisaient sans même savoir ce que nous faisions, d'où l'idée de ce chapitre que je tiens à vous raconter, ce qui peut paraître étrange, mais qui semble être sous-jacent à l'utilisation de leurs ordinateurs plutôt que les nôtres.

Je reviens à mes indications quand j'avais demandé comment obtenir l'adresse mémoire de l'affichage de l'écran c'était $B800 sur cet ordinateur avec une carte CGA et de voir sur le marché un appareil qui s'appelait le ZX80 pour une machine d'un tout petit prix on avait alors un clavier sensitif un microprocesseur Z80 de Zilog (8 bits) et un connecteur pour le brancher sur la télévision qui devait, où plutôt qui était Noir et Blanc. L'affichage de partie de caractère en damier permettait en affichant des caractères semi-graphiques d'afficher sommairement des pixels qui étaient gros comme un quart de caractère. Le jeux bien connu des first player shooter existait déjà avec un labyrinthe successivement dessiné avec ces caractères. Un calcul très précis devait alors être effectué pour que quatre quart de caractères deviennent des lignes. Ce serait donc Wozniak qui aurait réalisé la première pouce graphique mais je n'en suis pas sûr tout ceci n'est pas forcement connu et bien que les radars déplacent un stop sur écran je n'avais rien vu de tel jusqu'alors. Les progrés de la miniaturisation permettent désormais d'avoir un système autrement plus sophistiqué dans le creux de la main si vous avez un téléphone portable.

Accessoirement, j'évoque cette particularité pour décrire l'évolution de ces machines. Mais néanmoins quand sur un iphone vous avez une résolution horizontale de 240 pixels je peux aisément comparer avec mon Oric-1 qui affiche la même chose sur une télévision de salon et de distinguer encore une fois ces pixels bien caractèristiques.

Mais les ordinateurs n'ont pas toujours étaient comme maintenant, l'Eniac le premier d'entre eux n'avait ni clavier ni écran encore moins de souris - simplement des interrupteurs et des voyants pour positionner des données en séquence et visualiser les résultats.
Ils n'étaient pas conçu avec des transistors mais des lampes à vide comme les amplificateurs de guitare. Mais je dois supposer que les principes de calcul de ces appareils ont été définis sur ce prototype et l'on dit même que la première bombe atomique à été calculée sur cette Eniak, il occupait la taille d'un stade de basquet que vous pouvez comparer avec votre calculatrice. Quand nous étions au lycée, nous avions supposé sachant cela et connaissant ceci que nous voyont l'avancée de la miniaturisation et que seule la taille de nos doigts imposée une limite (fonctionnelle). La pratique informatique date d'encore plus loin qu'on ne le pense, j'en tiens pour preuve les langages qui ont été définis dans les années 50-60 comme cobol, le fortran, le pascal et le C. mais pas le java ni le php qui sont plus récents.

Une fois tout ceci expliqué, que pouvons-nous faire de ces ordinateurs qui foisonnent ? Tout ou rien, c'est selon les candidats ! les différents métiers sont utilisés par les ordinateurs pourrait-on dire ... mon père m'avait expliqué que l'informatique en soi n'était rien si elle n'était pas appliquée à un domaine d'activité et comme mon frère décalquait des comics, je me suis mis à programmer un outil de dessin.

Les bases certaines de la programmation étant acquises, dessiner des vecteurs semblent facile et pour cela microsoft préconise d'utiliser les fonctions moveto-lineto, un langage qui tout en étant simplifié permet en fait de déplacer un curseur et de dessiner consécutivement une ligne à chaque fois. La notion de vecteur n'est pas connue bien que le début et la fin d'une ligne donne un sens et la distance entre deux points la norme, mais avez-vous vu les fonctions : Plot(x,y); suivi d'une fonction Ray(angle,distance); qui serait utile pour dessiner des rayons comme sur les bicyclettes, si vous utilisez la graphique device interface elle n'existe pas ?

Les opérations effectuées par les outils de dessin consistent donc à ajouter des éléments de dessin soit des primitives, soit des objets plus complexes composés de primitive. et de les ajouter à la collection d'affichage de l'espace ou du plan en cours. En quelques étapes, la mémorisation d'un point de départ d'un segment, après son déplacement quand vous relâcher le bouton de la souris, vous obtenez le point d'arrivée. Il suffit alors, d'ajouter l'éléments ligne ainsi défini aux conteners ou metalist des éléments graphiques de même pour un cercle, un rectangle, un losange ou une sphère. Les points de chemin des courbes de Bézier agissent de la même façon comme une suite d'élément dans une collection de points de contrôle.

La spécialisation du dessin de ces éléments permettent de rajouter des effets aux tracés. Il s'affiche séquentiellement l'un après l'autre, chaque segment étant recouvert par le suivant et il semblerait alors que le dessin d'une figure soit instantané ou plutôt très rapide. Mais qu'elle soit aussi parrallélisable si l'on veut la tracer dans le temps.

Effectivement, la définition d'un dessin est mono-opérateur la projection de ceux-ci dans le temps semble inter-temporelle, étant donné qu'elle est la même quand elle est projetée dans l'espace-temps!

Je m'explique : si vous avez des données vectorielles de description d'une image et que vous devez la dessiner sur l'écran : chaque constituant de l'image doit s'afficher comme une succession des éléments qui la forme. Or, quand un dessin est composé de plusieurs figures, alors chacune d'entre elle est dessinée à la suite. Mais quand vous voulez animer une image de 3 dimensions mais aussi en 2 dimension alors vous pouvez prendre le temps qu'il faudrait pour faire une animation ou chacune d'elle est calculée avec une position prédéterminée. Que vous avez pu alors définir non pas comme un dessin mais comme une succession de dessin.

C'est en quoi ce calcul est parallélisable à l'envi : ce qui vous permez alors de les décrire et de les afficher dans l'ordre non pas ou vous suggérez leurs apparitions, mais plutôt quand elles sont calculées et pour cela il suffit alors d'envoyer chacune d'entre elles (ces images) vers un calculateur pour alors relire ces images dans un réseau d'images perceptibles. Quand le calculateur aura fini de les définir on pourraît regrouper celles-ci pour les animer dans un temps imprescriptible.

Cette loi imprescriptible, celle qui parle au coeur de l'homme (Jean Jacque Rousseau).

© denis bertin.



© copyright BeeLog