Home |
Histoire Générale |
|
Quelques machines importantes et technologies jalonnent la route, que je vous propose de suivre vue de ma fenêtre : subjectivement donc. |
Avant de commencer notre voyage, voyons de quoi nous parlons : une calculatrice est un moyen de calcul portable, personnel, autonome. Mes favorites sont Scientifiques et Programmables, mais cela ne définit qu'un sous-ensemble des calculatrices.
Pour les divers termes mis en rouge,
voir le glossaire en fin de page.
Au début l'électronique n'a pas encore été rêvée, et les précurseurs s'appuient sur les technologies de leur temps, notamment l'horlogerie. Personne ne contestera que certaines horloges astronomiques sont des pièces fabuleuses et réalisent de complexes calculs astronomiques ou religieux.
Plus près de nous, les relais électromécaniques sont mis à contribution. On arrive ensuite aux lampes électroniques et c'est la naissance de gros monstres principalement financés par l'armée : Eniac etc. Cette épopée est bien décrite dans le livre de R.Moreau "Ainsi naquit l'informatique", qui a le mérite de mettre en perspective les efforts français et même russes.
De drôles de bêtes, certaines comme le Gamma Tambour (BULL) utilisent un cylindre à surface magnétique comme mémoire principale ! Apparaissent aussi dans le rôle de la mémoire centrale les Tores de Ferrite, les lignes à retard, tubes cathodiques et autres bizarreries coûteuses.
Enfin, le transistor est inventé qui s'agrège en circuit intégré dès 1958. C'est un ingénieur de chez Texas Instruments, Jack Kilby, qui réalise cet exploit, il est d'ailleurs lauréat du prix Nobel 2000 de physique pour cela.
Le microprocesseur est ensuite inventé chez Intel pour les besoins de fabrication d'une calculatrice de poche japonaise, eh oui, c'est le 4004 (4 bits).
Par ailleurs, ultime brique fondamentale des machines contemporaines (selon moi), les algorithmes Cordic sont inventés en septembre 1959 par John E. Volder, pour une application aéronautique. Cette méthode de calcul permet de déterminer les fonctions transcendantes par lecture de tables de constantes et simples additions ou décalages.
Tout est prêt, mais pour des raisons de coût le
calcul personnel reste encore une affaire de crayon, papier, règle
à calcul et table de logarithmes.
Les années 50-60 sont donc une période intermédiaire
unique, ou les besoins de calcul sont importants, le niveau scientifique
élevé, mais les technologies pas encore matures.
C'est le règne des dernières machines à calculer
électro-mécaniques.
Mais c'est une autre histoire...
Les machines à calculer se posent d'abord sur les tables et comportent encore des pièces mécaniques : le chaînage d'additions produit la multiplication, et une division particulière donne la racine carrée (voir Logithèque du EL9600).
Progressivement les machines perdent leurs éléments mécaniques, utilisent des transistors puis des circuits intégrés. Une excellente description de ces technologies se trouve sur le site de Rick Bensene.
Après l'arrivée de modèles 4 opérations, la première machine scientifique est la HP 35 (1970). La HP 65 (1974) est la première machine de poche programmable, suivie par la SR 52 en 1975.
Les précurseurs sont des sociétés aujourd'hui
oubliées (voir la rubrique Marques),
et un grand nombre de ces marques se contentent de proposer des
modèles simples, étant incapables de monter en gamme
et de suivre dans la guerre des prix (c'est le cas de Monroe).
Hewlett Packard, Texas Instruments, Commodore, Novus entre autres
se détachent du lot par leur capacité à remporter
les challenges techniques. Si Commodore finit par disparaître
de la scène, c'est surtout par manque de vision stratégique
: ils se focalisent (avec succès certes au début)
sur les micro-ordinateurs personnels.
Quelques exotiques, tels Sinclair, Sears ou Litronix ne font que
passer en dépit d'une offre intéressante.
L'architecture interne est alors de facto standardisée, avec l'affichage à base de LED rouges électroluminescentes 7 segments qui permettent peu d'autonomie et donc favorisent les batteries rechargeables sur les modèles de budget suffisant. Les autres se contentent de piles mais en font grande consommation. La mémoire est par définition volatile, imposant une solution de sauvegarde, là encore disponible seulement sur le haut de gamme ou sur les modèles proposant des espaces programmables importants : ce sont les cartes magnétiques.
La programmation se fait par des langages machine spécialisés (LMS) par touches, chaque pression étant mémorisée, et la machine étant capable de les rejouer automatiquement à vitesse "élevée". Les facilités essentielles apparaissent progressivement et s'imposent :
Les claviers, qui doivent proposer de plus en plus de fonctions, offrent plus de touches et s'enrichissent de touches de sélection de fonctions [2nd], [inv], [f], [g] voire [h], et la limite de lisibilité et de taille du clavier est rapidement atteinte.
Aux débuts le terme langage semble un peu disproportionné, mais la grosse informatique d'alors était elle aussi assez frustre.
Il est clair que à part le mode d'entrée "caisse enregistreuse", c'est le mode de calcul RPN qui est le plus simple à implémenter : pas de hiérarchie algébrique, pas de parenthèses, ceci au prix bien sûr d'une plus grande difficulté d'utilisation (Note : je connais TRES bien la RPN). Seul HP à quelques rares exceptions près (plutôt bas de gamme en général) l'a proposé, et n'a même proposé que ce système sur sa gamme.
Ayant été un précurseur dans le domaine scientifique, HP réussit ainsi à se constituer un public d'inconditionnels qui prêtaient peu attention au rapport qualité / prix, mais privilégiaient la puissance et la précision. On assista donc à une guéguerre entre ces fans et tous les autres utilisateurs de calculatrices, la plus vive rageant entre HP et TI.
A l'époque, les pas de programmes se comptant en quelques dizaines, il n'était pas idiot de chercher à économiser une ou deux pressions de touches dans un programme, ce que permettait assez souvent la notation RPN. De même, la possibilité d'utiliser des codes compressés (ou "codes mergés", voir Glossaire) était importante.
Sur les modèles algébriques les divers fabricants s'évertuaient à proposer la plus grande capacité de mise en attente des opérations possible, et une hiérarchie des opérateurs la plus fidèle possible à l'usage mathématique, ceci afin que les utilisateurs puissent entrer leurs calculs comme sur papier sans avoir à les décomposer.
Le système de TI, baptisé AOS (pour "Algebraic Operating System"), était tout de même en fait un peu postfixé comme le RPN, dans le cas par exemple des fonctions scientifiques (sin, exp, ...) : on tapait le nombre, puis l'opération...
Autre progrès, l'idée du partitionnement permit dès les TI58/59 en 1977 le choix libre par l'utilisateur de répartir la mémoire disponible entre données et programmes. Cette idée évolua, et on passa d'une allocation par groupes de 10 mémoires en allocation à une mémoire près, puis à la répartition automatique par la machine au fur et à mesure de la saisie du programme.
Autre idée de cette époque, les modules de bibliothèque de programme furent aussi introduits sur les TI58/59. Cette idée succédait à la réunion de bibliothèques de programmes disponibles sous forme de livres ou directement comme cartes magnétiques pour les modèles en disposant.
Parallèlement à cette évolution bien sûr on assistait à l'expansion des capacités des mémoires, et ce qui était acceptable ou praticable avec 100 mémoires ou 500 pas de programme risquait d'être difficile avec 10 fois plus.
Côté fonctions, on commençait à trouver les limites en proposant des possibilités de plus en plus évoluées : calcul d'intégrales (Romberg...), Solve (d'abord sur la HP 34C), puis enfin calcul sur les nombres Complexes (HP 15C, 1982). Là encore une limite était atteinte.
A ce moment un des composants des machines subit une mutation, ce fut l'arrivée des affichages à LCD ("Liquid Cristal Display"). Ce mode d'affichage, extrêmement économe en énergie par rapport aux LED, favorisait l'implantation de la mémoire permanente (proposée déjà sur la HP25C, mais à quoi sert de conserver la mémoire si allumer la machine vous oblige de toutes façons à changer les piles rapidement ?).
L'autre apport du LCD est la possibilité de dessiner librement toutes sortes de formes sur l'afficheur. Très vite arrivent les indicateurs de mode permettant de facilement visualiser par exemple le mode angulaire. Surtout, on peut alors créer des matrices de points afin de dessiner avec une excellente qualité des caractères non limités par un certain nombre de segments.
La FX 602P est l'exemple parfait, apportant l'affichage alphanumérique. Elle succède à la fx 502P, à affichage LCD 7 segments, qui inaugurait aussi la séparation de la mémoire en 10 zones de programme, évolution nécessaire vu l'inflation des capacités.
La HP 41C (1979) est assez atypique en ce qui concerne l'affichage car elle utilise encore un système à segments, non plus 7 mais 17. Son clavier ne comporte que 58 des 160 fonctions disponibles, car pour simplifier la machine ne comporte qu'une touche "Shift". On est en effet aux limites du modèle, et HP l'a poussé au maximum à sa façon : clavier assignable (on peut redéfinir le rôle de toutes les touches) et annulation de fonction par maintien de pression de la touche (si on ne relâche pas immédiatement la pression, la machine affiche "NULL" et n'exécute pas l'opération), fonctions appellables par frappe alphabétique de leur nom, mode "alpha" pour la frappe de lettres.
De nouvelles extensions font aussi leur apparition, les configurations ne sont plus figées : imprimante, mémoire, lecteur de cartes, mini-"réseau" HP-IL de la HP41, lecteur de cassettes, RS 232, table traçante...
C'est la première fois qu'à une large échelle apparaissent des groupes d'utilisateurs qui découvrent des possibilités non documentées du système : programmation synthétique sur la HP41, langage machine sur les Basic (mais j'anticipe...).
Mais cette transition est de courte durée car des idées nouvelles vont bousculer ces machines au langage de programmation somme toute encore frustre.
Au début des années 80, les utilisateurs principaux cessent d'être des professionnels fortunés pour qui les calculatrices sont essentiellement des outils de calcul ou le support de programmes tout faits, et la masse grandissante des étudiants se met au calcul électronique. Ces gens, eux, sont des programmeurs, n'ont jamais utilisé de règles à calcul, et sont demandeurs de technologie.
Les japonais dans l'ombre ont déjà lancé depuis quelques années des machines d'un nouveau genre : plates, de format horizontal, longues, avec un affichage LCD permettant l'utilisation de lettres et chiffres. Il s'agit notamment du Sharp EL 5100.
S'appuyant sur ces modèles, Sharp lance sa bombe en 1979 : le PC 1211, premier ordinateur de poche capable de comprendre le langage Basic.
Les japonais débarquent ! L'outil est tellement nouveau, que le Basic est extrêmement lent. Cette machine est cependant d'une facilité d'utilisation déconcertante, a une mémoire honorable pour l'époque (1424 octets nommés "pas"), un excellent affichage LCD à matrice de poins 5x7, mémoire permanente bien sûr et comme périphériques une interface cassette et une mini-imprimante. Son clavier qwerty simple en fait immédiatement un grand classique, c'est un best-seller.
Casio réplique rapidement avec le FX702P en 1982. Bien plus rapide que le père fondateur PC1211, c'est un machine un peu spéciale, qui a de la personnalité (voir la page Casio). Le marché du calcul bascule, et les machines à langage spécialisé se sentent mal, sans parler des modèles uniquement numériques ou à LED.
Seuls les Japonais (Sharp et Casio) ont présenté des machines Basic, et déjà les modèles se multiplient, tout en restant originaux et intéressants. La réplique de Sharp à la FX702P est le magnifique PC1500, en1982. C'est la première machine au monde à proposer une matrice graphique continue (pas de vide entre les caractères) et adressable point par point. Les ordres Basic PEEK, POKE et CALL lui ouvrent la porte de la programmation en assembleur. Cerise sur le gâteau, cette machine est rapide. Inversement, elle ne dispose que de 1 Ko disponible pour l'utilisateur dans le modèle de base. Le PC 1500 accueille aussi un périphérique extraordinaire, qui a fait vendre un bon nombre de configurations, à savoir une petite imprimante / table traçante 4 couleurs utilisant de petits stylos à bille. La liste des périphérique est impressionnante.
On assiste à l'inflation de la taille mémoire. Par exemple le PC1600, successeur du PC1500, peut accueillir deux modules de 64 Ko chacun, alors que son Z80 ne peut en théorie adresser plus de 64 Ko au total. C'est l'usage de la pagination qui permet ce genre de tour de force.
La multiprécision apparaît chez Sharp toujours, qui propose sur le PC1260 puis bien plus tard sur le PCE500 le calcul sur 20 chiffres, applicable sur toutes les fonctions (le Basic ne travaille traditionnellement que sur des nombres réels).
Avec une telle mémoire, les machines adoptent la gestion de fichiers en mémoire, comme l'avait ébauché Casio avec ses 10 zones de programmes dès la FX 502P.
Le Casio PB1000 va introduire aussi un écran à zones sensitives, alors que le PC1600 dispose d'une entrée analogique...
Le Sharp PC1260 toujours introduit un mini-tableur, tandis que les matrices commencent à être traitées. On commence à assister encore une fois à la recherche effrénée des nouveautés, des fonctions qui feront la différence... mauvais signe ?
Les machines commencent à se ressembler, et en dépit de leurs personnalités diverses leurs possibilités sont les mêmes. Leur gros problème est que la programmation, si elle pouvait s'envisager rapidement mise en oeuvre par des passionnés pour créer un logiciel de quelques kilo-octets, est une toute autre affaire lorsque la machine offre des dizaines de Ko, un grand écran graphique, et des périphériques de stockage performants.
Il est devenu tout simplement impossible de nourrir soi-même la bête. Dans ce contexte, des tentatives de lancement de nouveaux langages sont faites : Forth, Pascal, C, Prolog. Le HP71 propose un module d'extension permettant la programmation en Forth. Ce langage est puissant, mais fort complexe et son choix, logique du fait de la tradition RPN de HP, n'est pas le bon pour fidéliser un groupe. Le Pascal du TI74 n'attire pas plus la foule, quand aux diverses déclinaisons du C elles arriveront après la bataille.
Afin de faciliter l'utilisation, enrichir la palette fonctionnelle et remplacer l'utilisateur défaillant, les constructeurs intègrent des Bibliothèques de programmes en ROM (par exemple sur la FX 880P).
Comme le montraient les signes, une époque se termine.
Pendant ce temps, du côté du bas de gamme subsiste une niche permettant la survie des LMS. Au plus fort de l'âge d'or du Basic, des machines comme les FX602P ou TI66 offrent une bonne capacité scientifique numérique, environ 500 octets, et un langage alphanumérique simple.
Ensuite on assiste aussi au lancement des TI 95 (1988), HP 42S (1989) et autres machines plus ambitieuses mais qui restent assez confidentielles. La voie à suivre pour la vague suivante n'est pas là.
Ces deux machines (TI95, HP42S) sont d'ailleurs aussi les seules à se réclamer de la compatibilité avec des modèles plus anciens (respectivement TI59 / TI 66 et HP 41). Par exemple, la HP42S est capable de traiter les nombres complexes mais lever un drapeau permet de lui demander de réagir comme son ancêtre HP41 pour les calculs. La TI95 peut reprendre les programmes écrits 10 ans plus tôt sur TI58 sans aucun changement !
Ce faux bas de gamme connaît les notions de fichiers, offre une bonne précision, un affichage graphique, des menus, des extensions.
En 1988 Casio découvre la solution à la stagnation des Basic : ils lancent la fx7000G en France, via au début une campagne de publicité (au moins) dans Sciences et Avenir. C'est là que je tombe béat devant l'idée : une calculatrice à écran graphique !!
Le grand écran presque carré offrant 8 lignes de texte permet l'analyse graphique interactive de fonctions. Intégrale, dérivée, points d'interception, zooms, tout devient plus intuitif. Par contre, le langage de programmation ressemble aux vieux LMS, car s'il s'affiche très joliment sur le grand écran LCD tout en caractères alphanumériques, sa pauvreté d'expression est assez rebutante : Test if, Goto, Labels, c'est tout. Pas de chaînes alphanumériques, et seulement 422 octets pour l'utilisateur sur le précurseur fx7000G. Voilà la solution : offrir un outil de calcul qui ne nécessite plus de programmation, un outil VISUEL.
Casio a inventé ce concept, mais il a été perfectionné par d'autres, notamment TI qui lance en 1989 la très mature TI81, disposant des matrices, du mode de trace le long de la courbe, de menus "déroulants".
Des idées s'ajoutent successivement, dont la sauvegarde de données vers et depuis un ordinateur de table (PC ou Mac), le partage de l'écran entre deux applications (TI 82 en 1996), des éditeurs de tableaux et listes etc.
Toutes les idées ne sont pas retenues par le marché. Par exemple, Casio encore invente des écrans couleur et installe le premier sur la CFX 9900GC (1995). Mais pour une raison mystérieuse, ceci ne s'impose pas, peut-être du fait de la légère perte de netteté de l'écran, ou pour des contraintes de prix ?
Nous voici parvenus dans un marché de masse : l'ère des clients et du pré-mâché - les "applications", et nous y sommes encore. Mais une dernière révolution va survenir...
Hewlett Packard est le premier à proposer le calcul symbolique sur sa superbe HP 28C. Après correction de la taille mémoire trop restreinte, avec la HP28S qui dispose de 32 Ko et malgré un écran deux fois plus petit que la concurrence, HP détient à nouveau le haut de gamme absolu. C'est aussi l'explosion du nombre de types de données (et presque l'idée d'objets) et les premiers pas vers les variables locales, facilitant une programmation plus abstraite.
Peu après Sharp présente la EL 9300 qui accepte le "Pretty print" permanent en affichage ET en saisie (c'est à dire qu'à l'écran l'expression est écrite comme dans un livre). Cette machine, cependant, n'a aucune capacité de calcul symbolique : parfois on aimerait que les Japonais et les Américains se parlent !
Aujourd'hui à la suite d'un certain nombre de perfectionnements, le haut de gamme est représenté par la TI 92 (dont la première version remonte à 1995). TI a fort intelligemment renoncé à développer un système de calcul symbolique et s'est "contenté" d'intégrer à une plateforme de type calculatrice suffisamment puissante (un véritable ordinateur avec microprocesseur 68000 en fait) des logiciels initialement destinés à des machines de table.
On entre dans la dynamique des versions de logiciels (et non plus de plateforme matérielle), et les capacités mathématiques s'améliorent de génération en génération.
Le langage de programmation des machines graphiques devient structuré et permet de mettre en oeuvre les méthodes du génie logiciel.
Deux autres idées intéressantes sont l'apparition de systèmes de mesure connectables à la calculatrice (par exemple le CBL de TI ou le EA100 de Casio), et l'échange Temps Réel de données, par câble ou par infrarouges (idée faiblement mise à contribution hélas).
Enfin, les machines deviennent évolutives et même leur logiciel de base peut être changé par écriture en Flash ROM d'un fichier librement téléchargeable sur Internet ! On ne change plus de modèle, on le met à jour.
Aujourd'hui et ce depuis le début des années 90, le facteur d'évolution des calculatrices n'est plus vraiment la technologie (sauf au travers du facteur prix), mais la demande des consommateurs. Il s'agit en effet de vente de masse, par millions d'unités, essentiellement dans le milieu scolaire.
Les besoins du système éducatif sont donc un des principaux facteurs d'adaptation. L'élévation progressive du niveau mathématique des étudiants est un facteur positif, très lent cependant.
Les constructeurs se sont raréfiés, et il devient impossible pour un nouvel acteur de se lancer dans le domaine (sauf en OEM d'un "grand", ou dans le bas de gamme). Il est même possible que les 4 grands (TI, Casio, Sharp, HP) ne se retrouvent un jour plus qu'à 3, voire 2.
L'offre actuelle ne comporte presque plus que des machines graphiques préprogrammées. Il existe encore de très rares représentants de la génération BASIC, qui sont tous d'anciens modèles laissés en vie (à part au Japon bien sûr), et seul l'extrême bas de gamme offre encore le LMS, mais cela ne devrait plus durer bien longtemps.
La compatibilité avec les systèmes personnels (DOS, Windows) a été un échec du fait de son coût. Qui peut imaginer faire fonctionner un système de Microsoft sur un système destiné au calcul et tenant dans la poche ? Les PDA sont une autre de sorte de bête, et la plupart ont des capacités scientifiques totalement nulles.
Cependant il faudra bien aller sans doute vers les écrans tactiles couplés à des stylets, tant le public s'habitue aux interfaces graphiques des PC.
Dans le domaine des périphériques l'époque est à l'indigence pour une raison très simple : tout le monde (ou du moins tous ceux qui ressentiraient le besoin d'extension) possédant un ordinateur, le simple lien entre ce dernier et la calculatrice donne accès à la vraie imprimante, au vrai modem, etc de la machine de table. D'ailleurs il n'est pas certain qu'une imprimante présentable pour calculatrice coûterait moins cher qu'une imprimante pour "grand" système.
En ce qui concerne le logiciel commercial, deux obstacles sont la concurrence avec le constructeur sur ce qui est purement calcul, et le fait que les étudiants ne sont pas des professionnels ayant besoin d'une application "verticale", et prêts à payer pour cela. Dans certains domaines une offre existe tout de même : bâtiment, voile, génie electrique, assurance...
On a prédit parfois la fin des calculatrices, qui devaient être supplantées par les ultra-portables, puis par les PDA / téléphone portable, mais il existera toujours une demande pour une calculatrice scientifique à 50 F et pour un modèle permettant le calcul symbolique dans les universités (ou équivalents) dans la zone des 1000 F.
Nous sommes aujourd'hui à nouveau dans une situation
de stagnation, où les constructeurs peinent à trouver
les fonctions qui permettront à leur modèle de s'imposer.
Comme nous l'apprend l'histoire, cela signifie qu'une nouvelle
révolution est proche. Je parie qu'elle se trouvera du
côté de langages de programmation beaucoup plus graphiques
et expressivement puissants.
7 segments : Type d'affichage, permettant en général d'afficher seulement les 10 chiffres. On utilise 7 segments arrangés en forme de "8". L'allumage de certains de ces segments permet de représenter les chiffres mais aussi quelques lettres. Exemples :
Adressage indirect : Pour pouvoir utiliser une donnée, il faut savoir où elle se trouve : il faut connaître son "adresse". Si on la connaît, on peut directement aller la retrouver : c'est l'adressage direct. Une extension très utile est de pouvoir mémoriser l'information consistant à savoir où se trouve la donnée finale. Pour retrouver cette dernière, il faut donc d'abord retrouver son adresse puis muni de celle-ci trouver la vraie donnée : c'est l'adressage indirect. Dans les langages évolués on le fait "sans le savoir" en écrivant (exemple en Basic) : A=B(C). L'adresse de la donnée est en fait stockée dans C : c'est indirect, alors que D=E(4) est de l'adressage direct. Sur les machines plus anciennes, on devait le spécifier explicitement, par exemple si STO permettait le stockage, on devait préciser STO IND pour le stockage indirect.
AOS : "Algebraic Operating System" ou Système Opératoire Algébrique : il s'agit du nom (d'ailleurs déposé) que Texas Instruments donne à la méthode d'interprétation des priorités de calcul sur ses machines ayant précédé la saisie par ligne de commande. En effet sur une telle machine la valeur affichée reflète le calcul en cours, et il faut mémoriser les termes non encore utilisés. Par exemple, si on tape 52 + 23 / 7 =, on s'attend à ce que la division soit effectuée en premier, donc que le terme 52 soit mémorisé. L'ensemble des règles de comportement était donc ce fameux "AOS".
Basic : "Beginners' All purpose Symbolic Instructions Code" ou Code d'Instructions Symbolique Tous Usages pour les Débutants - Il s'agit d'un langage de programmation très répandu, très simple car conçu dans un but éducatif. Il peut être tout à fait suffisant pour certains besoins, surtout les versions étendues qui ajoutent diverses possibilités comme la possibilité de définir des fonctions, et des bibliothèques de fonctions traitant par exemple les matrices etc. Ce langage s'est imposé tout naturellement sur les machines de poche à langage évolué (il existe très peu de machine programmables dans un autre langage évolué connu). De nos jours, les machines se programment avec des dialectes disparates relativement inspirés du BASIC, mais offrant beaucoup plus de fonctions mathématiques. De nos jours le principal reproche fait au BASIC est son utilisation permanente des numéros de ligne du programme, lourde et peu lisible.
Calcul Symbolique : Mode de fonctionnement des calculatrices capables de manipuler directement les expressions mathématiques. On peut donc utiliser des variables muettes dans les calculs et obtenir des résultats symboliques, tels que : (x-2)*(3+x)+(x-1)*(2-x) qui donne 4*(x-2) ou sqrt(10)*sqrt(3+sqrt(5)) qui vaut 5+sqrt(5). Les "connaissances" des machines s'améliorent sans cesse, et le calcul de primitives par exemple, initialement limité au cas trivial des polynômes (sur la HP28), s'est très remarquablement renforcé. Certaines machines intègrent même des équations différentielles.
Cartes Magnétiques : Le premier support de stockage permanent des machines de poches. Ces cartes se présentent sont diverses tailles, en général une bande plastifiée d'environ 10 cm sur 2 cm revêtue d'un enduit magnétique. La machine qui en fait usage possède une tête de lecture-écriture semblable à celle d'un magnétophone, et un petit moteur qui assure l'entraînement de la carte devant la tête. La capacité des cartes a évolué d'une centaine à un millier d'octets, correspondant au programme ou aux mémoires. Sur ses derniers modèles acceptant des cartes (HP75C/D et HP71B), HP a eu l'ingénieuse idée de supprimer le moteur : l'utilisateur devait faire passer manuellement la carte dans le lecteur. La possibilité de lien avec un ordinateur et l'inflation des capacités mémoire ont tué ce périphérique intéressant mais coûteux.
Clavier Qwerty : Clavier dont l'agencement de touches suit la convention anglo-saxonne "Qwerty", ainsi appellée du fait que les premières touches alphabétiques sont dans cet ordre sur le clavier : Q, W, E, R, T, Y ... Cet arrangement n'est pas particulièrement pratique (ni l'inverse), il est conventionnel. Malheureusement, il existe une convention différente pour les claviers français, qui sont "Azerty" (vous aves compris !), ce qui est pénible lorsuqe l'on passe de l'un à l'autre.
Codes Mergés : Les premières machines programmables stockaient les codes des touches car elles simulaient simplement la pression desdites touches (même pour les commandes seulement utiles dans un programme). Or, utiliser un mot machine (de 6 pour la HP65 à en général 8 bits) pour chaque touche était un gaspillage dans certains cas. Par exemple, une fonction secondaire (accessible après pression sur [2nd]) prenait deux pas de programme. De même RCL 05 prenait 3 pas sur la SR 52. Pour éviter cela et économiser de la place, il a été imaginé de placer dans le même pas de programme toutes les pressions de touches correspondant à une fonction. Du fait du nombre de fonctions, ce n'était pas toujours faisable, d'où les machines à code "partiellement" ou "totalement" mergé.
Cordic : Technique de "rotation de coordonnées" inventée en 1959 par John E.Volder pour un ordinateur embarqué dans un avion, qui aboutit à une famille d'algorithme permettant de calculer toutes les fonctions scientifiques standard (log, exp, sin, tan ...) d'une façon particulièrement simple et efficace à adapter sue des machines à calculer. En effet, on utilise uniquement l'addition, la soustraction, et des décalages de chiffres.
Ecrans Couleur : Ecrans affichant plusieurs couleurs, bien sûr. Une telle technologie a été découverte pour un écran LCD par Casio, qui l'a proposé sur la CFX9900GC. En réalité on ne voit que trois couleurs : orange, vert et bleu, et ceci lorsque l'on a bien réglé l'écran. Je trouve le résultat tout à fait correct, mais cette technologie ne s'est jamais imposée. Il ne faut pas la confondre avec les écrans rétro-éclairés très très gourmands en énergie que l'on voit maintenant sur les organiseurs de poche.
Flags : Drapeaux en anglais, il s'agit de toutes petites mémoires ne pouvant stocker que les valeurs "Vrai" ou "Faux", et seulement inscriptibles et testables. L'utilité est donc de "lever" (mettre à Vrai) ou "baisser (mettre à Faux) le drapeau pour mémoriser des conditions ou des états. L'autre rôle des drapeaux est souvent de commander le comportement de la calculatrice. Par exemple, tel drapeau si levé / baissé signale le mode degré / radian. On parle alors de drapeaux systèmes, qui peuvent ne pas être manipulables par l'utilisateur (seulement testables).
Flash ROM : Mémoire ROM, donc non volatile (ne s'efface pas en absence de tension), mais qui est reprogrammable en interne dans la machine même. Ce type de mémoire, vu pour la première fois sur la TI83+, succède aux mémoire à bulles et plus lointainement aux tores de ferrite comme mémoire non volatile et réinscriptible. On ne peut l'effacer que par blocs, ce qui fait que de temps en temps il est nécessaire de réorganiser le contenu pour rendre disponibles à nouveau les blocs entièrement libérés : c'est la "garbage colleciton" (ramassage des poubelles). On utilise en général la Flash Rom pour contenir le système d'exploitation de la machine, ou des applications.
Forth, C, Pascal, Prolog : Langages de programmation trouvant leur origine sur des ordinateurs de table (ou plus gros), et qui sont apparus sur quelques rares machines de poche. Le Forth a existé sur le HP71B, du fait de la tradition RPN de HP (Forth étant basé sur une pile). "C" a existé sur les Casio PB2000C et FX890P. Pascal a été disponible sur le TI74 en tant que module d'extension. Prolog a été disponible sous forme de carte ROM sur le PB2000C. Les machines de poche exigent que les langages soient interprétés pour des raisons de simplicité et de taille mémoire, et les langages traditionnellement compilés comme C et Pascal étaient donc interprétés, ce qui présente quelques avantages.
GOTO : "GO TO" ou "Aller à" : désignation courante de l'ordre de programmation qui demande à ce que l'exécution d'un programme se continue ailleurs qu'à l'instruction suivante. Sur beaucoup des premières machines cet ordre était abrégé "GTO". Depuis l'avènement de langages de programmation sophistiqués sur les ordinateurs, il est considéré comme peu lisible de baser ses programmes sut l'utilisation du GOTO, car cela embrouille la logique du traitement et mène à la fameuse "programmation spaghetti". Malheuseusement pour les snobs, cet ordre de programmation reste indispensable et il est présent dans tous les langages de haut niveau actuels.
Indicateurs : Petits symboles additionnels visibles ou non à l'écran qui signalent un mode de fonctionnement ou un état actuel. Par exemple beaucoup de machines signalent que l'exécution d'un programme est en cours en affichant un symbole à l'écran (en général "RUN" ou "BUSY"). Sur les machines graphiques ces symboles distincts sont remplacés par des pictogrammes qui apparaissent dans une partie réservée de l'écran. Voir aussi flags en ce qui concerne les indicateurs binaires.
Langage Machine : C'est le langage qui est réellement compris par le composant électronique situé au coeur de la machine (voir Z80). En réalité il s'agit d'un flot incompréhensible (en pratique) de valeurs binaires, mais par extension on désigne ainsi les programmes écrits de façon intelligible qui programment directement le microprocesseur. Inversement, sur toutes les machines le langage visible par l'utilisateur n'est pas compréhensible pour les composants et un programme écrit par le fabricant doit donc le traduire pour la machine (ce dernier programme étant bien sûr nécessairement en langage machine...).
LCD : "Liquid Crystal Display" ou Ecran à Cristaux Liquides - cette technologie d'affichage est basée sur la réflexion de la lumière et non sa génération. Il s'agit de faire parcourir ou non par un courant électrique une couche très fine d'un matériau sensible qui réagit en se polarisant ou non, ce qui croisé avec un filtre polarisant bloque ou non le passage de la lumière. Originellement on avait pensé que les symboles "actifs" devaient laisser passer la lumière, apparaissant clairs sur un fond sombre, mais finalement l'habitude inverse s'est imposée. Les afficheurs LCD montrant des chiffres clairs sur fond sombre sont donc en général anciens (et rares !!).
LED : "Light Emitting Diode" ou Diode Electro-Luminescente - composant électronique qui émet de la lumière, en général rouge, lorsque traversé par un courant. Ce composant pouvait se façonner en barres fines avec lesquelles on pouvait dessiner les 10 chiffres. Fort consommateur de courant, elles furent totalement remplacées par le LCD dès son apparition commerciale à la fin des années 70.
LMS : "Langage Machine Spécialisé" : cet acronyme a été créé dans les années 80 par le journal "L'Ordinateur de Poche" pour désigner les "langages" de programmation frustres des machines pré-alphanumériques. Par extension, cela désigne tout ce qui n'est pas langage un peu évolué. Par exemple, la HP42S est une machine LMS en dépit de ses possibilités et de ses capacités alphanumériques.
Matrice graphique continue : Lors de l'arrivée des afficheurs LCD, des afficheurs à points devinrent possibles. D'abord les caractères étaient formés dans des matrices (en général 5x7 points) disjointes, chacune affichant un caractère. Le Sharp PC1500 fut la première machine sur laquelle la matrice de points était continue, sans séparations entre caractères. Ceci permettait de tracer des traits et autres graphiques.
Mémoire Permanente : Terme originellement marketing désignant la capacité pour une machine de ne pas perdre le contenu de la mémoire programme entre deux utilisations. Lorsque l'on "éteint" ces machines, la partie mémoire reste alimentée, ce qui est possible du fait de sa très faible consommation (technologie de composants "CMOS" et dérivés). Hewlett Packard utilisait plutôt le vocable "mémoire continue". De nos jours certaines machines sont capables de fonctionner plusieurs dizaines d'années sur un seul jeu de piles !
Modules : Petits objets que l'on peut enficher ou plus généralement brancher sur une calculatrice, et qui lui permettent d'offir des fonctions supplémentaires, d'utiliser des bibliothèques de programmes, ou de la mémoire supplémentaire (voire les trois). Ce concept permet aussi de mettre à jour les machines sans avoir à lancer de nouveaux modèles, et d'intéresser des professions très spécialisées sans obliger l'utilisateur de base à payer pour des fonctions qu'il n'utilisera jamais.
Multiprécision : Désigne toutes les techniques pour augmenter le nombre de chiffres exacts dans le résultat d'un calcul, sur une machine n'offrant pas cette précision dans son logiciel de base. Il existe aussi des machines (essentiellement les plus récents modèles BASIC de Sharp) qui permettent à l'utilisateur de choisir de réaliser les calculs sur 10 ou 20 chiffres. En général les calculs en multiprécision sont réalisés en utilisant des tableaux de nombres en précision normale.
Nombres Complexes : Notion mathématique qui généralise les nombres "réels" en supposant que l'on peut trouver des nombres qui élevés au carré donnent un nombre négatif. Cette notion bizarre est très efficace. Sur les calculatrices, la première bonne implémentation fut celle du HP15C, utilisant une 'pile' RPN double parallèle (partie réelle / partie imaginaire). Actuellement, toutes les machines moyen-haut de gamme sont capables de manipuler ces nombres, utilisables pour toutes les fonctions scientifiques.
NOP : "No OPeration" : c'est une instruction qui ne fait rien, explicitement. Ceci peu être utile pour réserver de la place, ou pour supprimer des instructions inutiles sur des machines (anciennes) ne permettant pas la suppression d'instructions, ou pour perdre du temps par exemple dans un jeu ou un programme d'horloge etc...
OEM : "Original Equipment Manufacturer" : Industriel qui fabrique réellement l'objet. Lorsqu'une marque achète par exemple des calculatrices à un fabriquant et se contente d'apposer son nom avant de la vendre, on dit qu'elle se fournit en OEM. Toutes les calculatrices vendues par Radio Shack, par exemple, sont des modèles OEM en général issues de fabricants japonais (Casio ou Sharp).
Partitionnement : Technique de répartition de la mémoire entre l'espace des programmes et celui des données. Originellement le rôle de chaque partie de la mémoire était figé, l'inconvénient étant que si on ne souhait pas programmer mais mémoriser beaucoup de données (ou l'inverse), la capacité mémoire n'était jamais idéalement répartie. TI a proposé sur la TI58/59 la possibilité de répartir cette mémoire entre les deux rôles, par blocs de 10 registres de données (correspondant à 80 pas de programme). HP proposa un système entièrement dynamique sur la HP34C, toute la mémoire non utilisée par le programme étant affectée aux données. Curieusement, la HP41 plus récente et plus moderne proposa un partitionnement au registre près, mais statique ?
Pagination : Technique permettant de mettre plus de mémoire dans une machine que n'est en théorie capable d'utiliser son micro-processeur. En général il existe une instruction ou un dispositif matériel accessible qui permet de changer quelle partie de la mémoire disponible sera accessible à un instant donné. Lorsque l'on veut utiliser une autre "page", il faut la sélectionner pour qu'elle devienne accessible. Il est intéressant de noter que cette technique a été utilisée à deux époques : au début lorsque les micro-processeurs étaient limités (sur la HP35 par exemple), et actuellement alors que les capacités mémoires explosent.
Pause : Instruction programmable qui provoque un arrêt temporaire de l'exécution du programme et l'affichage de la valeur en cours de calcul. Ceci permet donc de visualiser des résultats intermédiaires sans nécessiter d'intervention manuelle pour relancer le programme. TI fut le premier à la proposer sur la SR52, sous le vocable "PAU". HP ajouta sur la HP41 la capacité à lire une touche pressée pendant la pause ("PSE"), ce qui permettait notamment la programmation de jeux. Cette notion est tombée en désuétude sur les machines BASIC qui sont capables d'afficher des messages tout en continuant l'exécution du programme.
PDA : "Personal Digital Assistant" ou Assistant Personnel Digital. Il s'agit d'une machine à priori suffisamment portable pour être gardée dans la poche, et qui offre les services essentiels d'Agenda, Carnet d'Adresse et Liste de Tâches. Ces machines ont en général des capacités de traitement très importantes, mais ne proposent aucun outil de calcul, et sont inutilisables pour les tâches scientifiques.
Pretty Print : "Impression jolie" en anglais, est une façon d'afficher les expressions mathématiques de façon fidèle à ce que l'on écrirait dans un bon livre : exposants, parenthèses, signes d'intégrale etc sont respectés. Beaucoup de machines actuelles affichent les résultats ainsi, mais une seule permet de les taper ainsi, c'est la Sharp EL9600 (et la 9400 bien sûr, ainsi que la plus ancienne EL9300).
Qwerty : voir Clavier Qwerty
RPN : "Reverse Polish Notation" ou Notation Polonaise Inverse (NPI) - mode d'entrée des calculs selon laquelle les opérations mathématiques agissent sur une pile de nombres préalablement entrés dans la machine. Exemple, addition de 1 et 4 : [1] [ENTER] [4] [ENTER] [+]. Les deux nombres sont placés sur une "pile" par la frappe de [ENTER] et l'opération "+" réalise la somme de ces deux nombres, affichant alors 5. Noter que très vite le RPN fut amélioré pour ne pas nécessiter la seconde frappe de [ENTER] dans l'exemple ci-dessus. L'adjectif vient du fait que l'on écrit "1 4 +" alors que la notation polonaise originale écrivait "+ 1 4". Seul HP pratiquement a utilisé ce système, sur toutes ses machines sauf les plus récentes.
SST : "Single STep" : Touche du clavier permettant d'exécuter l'instruction courante du programme et de passer à la suivante. Par des pressions répétées sur cette touche, on peut donc avancer lentement dans son programme, et observer à loisir ce qui se passe. Cette fonction n'est pas disponible en général sur les machines non-LMS, ce qui n'est pas justifié et est très ennuyeux pour corriger les problèmes. Certains BASIC de bonne tenue cependant le permettent, comme le PC1500, en utilisant la touche "flèche vers le bas". Il existe en général lorsque SST est disponible la possibilité de BST "Backwards Step", qui elle permet de revenir en arrière d'une instruction, sans exécution bien sûr dans ce cas.
Temps Réel : Se dit d'un système sur lequel les temps de traitement ont des durées maximales garanties. Par extension, on le dit aussi de sytèmes capables de réagir "suffisamment vite" aux demandes. Evidemment cette problématique est assez étrangère aux machines de poche, sauf en ce qui concerne la fonction d'horloge (donnant l'heure) disponible sur certains modèles.
Z80 : Un des microprocesseurs actuellement les plus courants dans les calculatrices. Le microprocesseur est le composant programmable de la machine, le "moteur". L'intérêt de celui-ci est qu'il ne doit pas coûter plus de 5 F en nombre, et qu'on le trouve partout. Dans les temps plus anciens, le processeur pouvait avoir été conçu spécialement pour la famille de machines, voire pour l'unique machine auquel il était destiné.
Zones sensitives : Certains écrans permettent l'utilisation du doigt ou d'un stylet spécifique pour désigner des endroits. Sur les calculatrices l'écran est découpé en zones assez grandes, ce qui ne permet pas de dessiner car trop grossier. Cette possibilité d'interaction avec l'utilisateur n'a été vraiment utilisée que par Casio sur le PB1000 et Sharp sur la EL9600 (actuellement disponible...). Hélas souvent les films sensitifs obscurcissent de façon sensible l'écran, et l'idée brillante d'utilisation qui imposera le concept reste à trouver.