Mais tout de même, voici les principaux avantages de la PB-2000C, sortie en 1989 :
- meilleur contraste de son écran : d'une résolution de 192x32, identique à la PB-1000, il est dorénavant non tactile. Il faut savoir que sur PB-1000, avec des piles faibles, l'écran pouvait vite devenir illisible.
- sa mémoire est de 32 Ko d'origine, extensible à 64 Ko via un module RP-33 comme la FX-850P ; légèrement différent du RP-32 dédié à la PB-1000.
- son format mono-bloc : elle est plus compacte et plus légère que la PB-1000. Elle n'a besoin que de trois piles CR2032 et d'une CR1120, au lieu de trois "grosses" LR6. De plus, ce format est probablement plus fiable. La charnière de ma PB-1000 est passée une fois au SAV (nappe endommagée).
- elle supporte plusieurs langages sur cartes ROM séparées : un interpréteur C, un Basic, un DL-Pascal (le plus rapide, pas développé par Casio), un Prolog, et un pseudo assembleur CASL pour les étudiants japonais.
La PB-2000C : le noir lui va si bien. |
Mais, la PB-2000C a aussi des inconvénients :
- son clavier n'est pas aussi bien disposé que celui de la PB-1000 : disparition de la large touche espace, disparition des deux touches shift et de la touche F. Et la sérigraphie de base n'est pas complète : pas de langage par défaut, pas d'accès direct aux fonctions mathématiques. De plus, les overlays clavier ne tiennent pas très bien en place.
- elle ne contient pas d'assembleur intégré
- les programmes, en ramdisk pourtant non volatile, sont perdus à chaque changement de carte ROM. Seuls les fichiers texte sont préservés.
- pas d'horloge-calendrier intégrée, pas de fonction alarme. En réalité, l'horloge est physiquement présente ; mais elle a été désactivée quand la PB-2000C est arrêtée, pour éviter les conflits avec les cartes ROM ! Xerxes a découvert qu'il est toujours possible d'y accéder en assembleur. Démonstration : http://www.silicium.org/forum/viewtopic.php?f=46&t=34198
Pour comparer ses performances, j'ai recopié à l'identique mon programme sur les nombres premiers :
10 INPUT"N?",N
20 J=INT(SQR(N)):I=2
30 IF FRAC(N/2)=0 THEN80
40 FOR I=3 TO J STEP 2
50 IF FRAC(N/I)=0 THEN80
60 NEXT I
70 BEEP:PRINT"1":GOTO10
80 PRINT I:GOTO10
Le test sur le nombre 524 287 s'exécute ici en 10 secondes environ. C'est équivalent à la PB-1000 (et non deux fois plus rapide, comme je le croyais au début). Et ce résultat est bien normal : le CPU HD61700, ainsi que l'architecture matérielle, sont très proches entre ces deux machines.
Pour tester l'interpréteur C, j'ai recopié mon programme développé initialement pour le Casio Z-1 :
main() {
double n,q;
long i,j,intq;
printf("n?");
scanf("%lf",&n);
j=(long)(sqrt(n));
q=n/2;
intq=(long)q;
if ((q-intq)==0) {
printf("2");
} else {
i=3;
while (i<=j) {
q=n/i;
intq=(long)q;
if ((q-intq)==0) {
j=0;
} else {
i+=2;
}
}
if (j==0) {
printf("%ld",i);
} else {
printf("1");
}
}
}
Et là, les performances sur le test avec 524 287 sont plutôt catastrophiques ! En effet, il faut environ 1 minute et 19 secondes pour afficher le résultat. On peut considérer que le C sur ce type de machine est adapté pour l'apprentissage de la programmation ; mais, de toute évidence, cet interpréteur Casio ne permet pas une exploitation optimale du hardware.
Dernière chose, il y a quelques mois, j'avais ré-écrit un autre programme C pour PB-2000C : le jeu d'inversion. Rien de très compliqué, sauf peut-être le générateur de nombres aléatoires ; car cette machine ne possède pas l'instruction idoine en C (en Basic, il y a l'instruction RND). Sans accès à l'horloge interne pour générer la "graine" de l'agorithme aléatoire, j'ai utilisé l'écriture dans un fichier "seed.dat" :
http://www.silicium.org/forum/viewtopic.php?f=46&t=34989&start=15#p425526
En conclusion, c'est quand même une très belle machine, du plus bel effet dans ma collection ! On lui pardonne volontier ses défauts, et je la recommande sans hésiter.