aldweb

Fermer I. aldweb

Fermer II. Gratuitiels PC

Fermer III. Gratuitiels Palm

Fermer IV. Partagiciels Palm

Fermer V. iziBasic Palm

Fermer VI. Connaissance Palm

Fermer VII. Ordinateur Poche

Fermer VIII. miniPortail

Recherche




Newsletter
Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner
293 Abonnés
Webmaster - Infos
Visites

   visiteurs

   visiteurs en ligne

Pagerank

Pub Google
article.gifLa face cachée du Sharp PC-1211

La face cachée du Sharp PC-1211
© Christophe LE GLATIN, 1999 ( reproduit ici avec son aimable autorisation )





C'est quoi la "Face cachée" !?! C'est en quelque sorte l'accès à des possibilités non officielles, mais bien réelles de l'ordinateur. C'est sous couvert de cette raison que les pionniers du PC-1211 s'en sont donné à coeur joie pour faire délirer leurs micropoches, souvent pour une autre raison : Le goût de l'interdit : savoir "ce que SHARP tente de nous cacher" ! El la joie de dire dans la foulée "na na nèr-eu on sait !". Cependant cette exploration de la face cachée revêt un intérêt évident : comprendre le fonctionnement interne du PC-1211 !


Quand tout a commencé


A ma connaissance, c'est en avril 1981 (z'ont pas perdu de temps...) qu'est mentionnée pour la première fois un "accès interdit", dans le magazine "L'Ordinateur individuel" n° 26. Marc Saal et Christian Boyer nous expliquent de "faire la petite manipulation suivante : se positionner en mode PRO, faire NEW puis ENTER, taper 10 PRINT A ENTER, taper 10 ENTER (...) appelons alors A(204) ENTER, le résultat est 0.000151%01. C'est l'image de la ligne BASIC, inversée". Ceci est d'ores et déjà suffisant pour établir une première mouture de la table des codes des instructions standards...


Ce qu'on savait hier


Ce premier article lance les utilisateurs à la quête des trésors cachés du PC-1211 et c'est peu après que dans le n°1 du nouveau magazine "L'Ordinateur de poche" paraît l'article qui fera référence, "La fache cachée du SHARP PC-1211" de Serge Boisse et Jean-Paul Cotillon. Eux ne se contentent pas d'établir la table des codes, ils découvrent une manipulation "magique" au clavier, qu'ils baptisent "Sésame", et qui va leur permettre d'accédér à une sorte de moniteur système imprévu, le "Compteur hexadécimal", qui imposera au PC-1211 de révéler tous ses secrets... Ce "Sésame", outre le décodage d'instructions, va également permettre leur codage direct et c'est ainsi que par la suite figureront dans la presse des articles expliquant le comment et pourquoi de nouvelles instructions...

Alors bon, qu'est-ce qu'on a appris ? En premier lieu : il a existé deux générations de PC-1211. Ceux de la première portée, tiltés par le Sésame de l'OP n°1 nous révèlent l'ensemble de sa mémoire. Ceux de la deuxième, qui existent à beaucoup plus d'exemplaires, ont eu leur système mis à jour car ils sont récalcitrants au "Sésame" première version. Il a fallu trouver un Sésame next gen et celui ci ne permet que l'accès aux 1536 octets des TC5514. Le mien est un next gen...


Le Sésame pour PC-1211 next gen ?
* Faire NEW en mode PRO.
* Taper en mode PRO "10 PRINT 1", ENTER.
* Taper "20 PRINT", ENTER, ligne que l'on efface aussitôt par "20", ENTER.
* Passer en mode RUN.
* Taper "RUN", ENTER, affichage "1.".
* taper "MEM", ENTER, affichage "1419STEPS 177 MEMORIES".
* Taper BREAK, affichage "BREAK AT 10".
* Taper ENTER, l'affichage indique une erreur 1 à la ligne 0 (!).
* Taper CL, passer en mode PRO.
* Taper la touche flèche descendante et laisser appuyé dessus.
* Apparition de la ligne "20 PRINT" (ressucitée !).
* Apparition du compteur hexadécimal !

Comment ça marche ? Le PC-1211 est un 4 bits : Il adresse donc sa mémoire par quartets. Les trois premiers chiffres (hexa) en guise de numéro de ligne correspondent à l'adresse actuelle du pointeur (de 000 à FFF, ce qui lui permet d'adresser 4096 quartets). Les 4 chiffres suivants sont toujours "8000". A la suite, s'il y a quelque chose en mémoire, les données apparaissent sous forme interprétée en BASIC en commençant par le code dont l'adresse est celle affichée, augmentée de 4. Ca va, vous me suivez toujours ? Ca a l'air compliqué comme ça, mais on s'y fait vite.

Après moults explorations et recherches, voici la carte de la mémoire que l'on peut établir :
000 - 05F : zone de la mémoire de réserve (96 quartets soit 48 o)
060 - B7F : zone de la mémoire utilisateur (2848 quartets soit 1424 o)
B80 - BBF : zone des variables fixes Z à W (64 quartets soit 32 o)
BC0 - BFF : pile des boucles, des sous-programmes et des parenthèses (64 quartets soit 32 o)
C00 - FFF : miroir de la zone 800 - BFF

Bien, OK pour le décodage. A présent le codage, comment on fait ? On sait déjà que le codage dans les variables se fait dans le "sens inverse" que celui dans le programme BASIC. Et, ce qui est intéressant, c'est que même si les codes sont interprétés par groupe de deux quartets, le codage inverse dans les variables s'effectue quartet par quartet...


Un exemple ? Admettons que l'on place dans la variable A$(202) une chaîne de 7 "Z" (code 6A) et que l'on regarde par le Sésame dans la mémoire (pour voir le contenu de cette variable interprétée en BASIC, c'est à dire "à l'endroit"), à l'adresse de cette variable on obtiendra une série de fonctions "EXP" de code... A6 ! Là c'était un exemple où les codes 6A et A6 sont standards.

Autre exemple : Remplacez les 7 "Z" par 7 "H" (code 58) dans cette même variable et retournez voir ce que l'on obtient par le Sésame : Plus de EXPs, mais visiblement quelque chose d'inlistable, et qui joue avec les indicateurs et le BEEP du SHARP. Le code 85 ne semble pas être, lui, vraiment standard...

Certes, le code 85 ne sert pas à grand chose. Mais grâce à cette possibilité, certains sont partis à la quête de nouvelles intructions "utiles", et la table des codes s'en est trouvée agrandie d'autant... On a trouvé, notamment, un autre caractère "insertion" et un autre caractère "guillemets", parfaitement programmables et mémorisables (codes respectifs 3A et 3C). On a aussi trouvé le moyen de programmer et mémoriser le curseur (code 50). on a trouvé aussi un autre code, le 3F, qui s'affiche "#" mais qui est très utile si on l'exécute : Il permet d'obtenir un affichage graphique point par point. Enfin pour finir, deux petites sucreries : les instructions STEPS et MEMORIES (codes AE et AF). Ces fonctions sont parfaitement inutiles, mais c'est juste pour le sport. Et MEMORIES peut se vanter d'être l'instruction la plus longue du PC-1211... Par contre leur intérêt n'est pas complètement nul : Si on liste STEPS et MEMORIES sur la CE-122, on obtient respectivement PI et SQR ! Cela veut dire que d'une part la CE-122 a sa propre table des codes, et d'autre part que SHARP avait en projet (sans suite) de concevoir un autre micropoche qui disposerait des intructions SQR et PI et qui s'enficherait dans la CE-122...


Voilà ! A l'époque, on savait donc pas mal de choses. Mais à regarder de près, on ne pouvait s'empêcher de constater qu'ils restait encore des "blancs" dans la table des codes. Les manquants étaient impossible à synthétiser directement avec le PC-1211 seul. Pour les synthétiser, le seul moyen serait une aide extérieure...


Ce que l'on sait aujourd'hui


Aujourd'hui nous disposons d'outils informatiques extrêmement puissants. En particulier aptes au traitement du son. Les enregistrements cassette du PC-1211 sont des fichiers sonores...

Nous avons des pécés modernes : servons-nous en pour traiter les enregistrements sonores du PC-1211 !! Encore faut-il connaître la structure des enregistrements cassette du PC-1211. C'est là que l'article de Christian Boyer (eh oui, encore lui !), paru dans L'OI n° 31, va nous être d'un grand secours : tout y est expliqué. Alors une fois qu'on sait comment ça marche, il suffit d'échantillonner en WAV (en 44,1 KHz pour bien voir les bits) un CSAVE, d'y modifier les bits que l'on veut à l'aide de votre logiciel de traitement du son favori (en corrigeant les checksums !), et de réinjecter le tout dans le micropoche. J'ai testé pour vous, ça marche.

Ca veut dire quoi ? Tout simplement que, grâce cette technique, on est totalement libre de programmer n'importe quel code dans le PC-1211. Le PC moderne au service du premier micropoche : C'est beau, non ?


Voici la table complète des codes Basic.


Dans cette table, les codes sur fond blanc sont les codes standards, ceux sur fond gris ne peuvent être obtenus directement, enfin ceux sur fond noir provoquent en plus un comportement anormal du PC-1211 lors de leur listage BASIC.

Bref, aujourd'hui, on sait tout. Le PC-1211 n'a plus de secrets. Et mon Pentium bien aimé m'apporte désormais ce qui a toujours manqué dans le PC-1211 : les précieuses fonctionnalités de PEEK et de POKE...


Conclusion


Une seule conclusion s'impose : synthétiser l'ensemble des codes "cachés" utiles du PC-1211 dans une même configuration de mémoire de réserve pour les avoir à disposition en permanence ! C'est ce que j'ai réalisé et que je vous propose maintenant :


Le fichier WAV de l'enregistrement cassette
de la configuration de la mémoire de réserve
"Face cachée"


Pour le charger, raccordez la sortie de votre carte son vers l'entrée EAR de votre CE-121 ou CE-122, en mettant assez fort pour que le PC-1211 entende bien, tapez y CLOAD "FCACHEE" ENTER et lisez le fichier WAV à l'aide de votre player favori. A l'issue, vous devez obtenir :
L'instruction STEPS (code AE) affectée à la touche A
L'instruction MEMORIES (code AF) affectée à la touche S
L'instruction # (code 3F) affectée à la touche D
Le caractère "insertion" (code 3A) affectée à la touche Z
Le caractère "guillemets" (code 3C) affectée à la touche X
Le caractère "curseur" (code 50) affectée à la touche C
Il ne vous reste plus qu'à effectuer un CSAVE normal (sur cassette) de cette configuration de la mémoire de réserve et d'utiliser ces nouveaux codes comme vous l'entendez dans vos programmes...

Si vous avez des commentaires, infos, critiques (constructives) à apporter à cette page, n'hésitez-pas à me contacter.


Date de création : 07/02/2003 @ 19:51
Dernière modification : 07/02/2003 @ 23:38
Catégorie :


Imprimer l'article Imprimer l'article

 
react.gifRéactions à cet article


Réaction n°11 

par SergeBoisse le 29/01/2012 @ 19:23

Ah les enfants, que de souvenirs ! C'est vrai qu'avec mon copain jean-paul on avait fait cet article dans le N°1 de l'OP...  Puis on a basculé sur le FX702P dont le codage interne des instructions permettait de "caser" des programmes plus long en mémoire. Je suis encore revenu chez sharp avec le PC1251 puis le PC1500... dire que ça fait plus de trente ans !
http://sboisse.free.fr/technique/info/vintage.php

Réaction n°10 

par Jean le 03/06/2011 @ 18:59

J'ai 56 ans et toujours mon TRS-80 sous la main.

De bons vieux souvenirs

JF

Réaction n°9 

par aldweb le 22/02/2009 @ 12:33

Bonjour garry,

On peut trouver le manuel (en anglais) du CE-122 ici : http://www.classiccmp.org/dunfield/t80ppc/

Viser la ligne PC-1 Printer/Cassette interface manual, le Radio Shack PC-1 étant le clone du Sharp PC-1211.

@+
aldweb

Réaction n°8 

par garry le 22/02/2009 @ 10:59

Je ne sais pas comment utiliser avec le "printer" CE-122
je n'ais pas trouver les commands LPRINT ou LLIST
j'ais le manual de PC-1211 mais non de CE-122

Réaction n°7 

par aldweb le 24/01/2007 @ 22:27

Bravo Sébastien d'y voir un rajeunissement !

@+
aldweb
DébutPrécédent [ 1 2 3 ] SuivantFin
 
Spécial !



Version mobile
de l'aldweb Site

m.aldweb.com


Ni Français, ni Anglais ?

Essayez donc l'un de ces drapeaux :
[de] [es] [it] [pt]
Géolocalisation
Météo / Spam / www

Météo Lyon


aldweb contre le SPAM


Sites web de la famille

Sondage
Comment trouve-tu le nouvel habillage de l'aldweb Site ?
 
Superbe !
Joli
Moyen
Moche...
Résultats
News Amis
^ Haut ^