Home

Les Instructions Cachées de la HP-41C

image

Contents

1. Los situ Dans le monde des HP41C il faut casser les instructions pour recoller les morceaux Les calculatrices de premi re g n ra tion ne sont plus Vous tes peut tre l heureux possesseur de l une d elles pour le v rifier entrez 899 RGL IND X la calcula trice ne doit pas afficher NON EXISTENT Dans ce cas choyez l comme un bien pr cieux Nous nous sommes alors d cid s nous lancer dans une plong e profonde II nous a fallu peu de temps pour com prendre que les m moires hautes taient des fragments de la m moire programme D une part notre p che rame nait en surface des lambeaux d tiquettes alphab tiques d autre part ph nom ne Assist s d une imprimante nous partons pour un voyage dans l hyper espace adressable L affichage de la41 Cest tr s mal quip pour permettre ce d codage le tableau de la page 61 donne l ensemble des carac t res affichables avec leur code Sur 256 octets possibles la calculatrice en explicite seulement 80 avec une redon dance pour les caract res 67 et 91 Les octets restant sont mat rialis s par le ca ract re plein Les 21 caract res mar qu s d une ast risque ne peuvent tre ge n r s directement au clavier Nous dispo sions heureusement de trois imprimentes qui allaient nous tre d une utilit majeure Ce p riph rique est susceptible d impri mer des caract res diff rente pour los codes de 1 127 elle fournit c
2. tre des signes cebalistiques sur l cran modifier des registres sans avoir l air d y toucher bouleverser les assignations et hisser de multiples drapeaux sont des oc cupations dignes d occuper les longs jours de l t tout ceci s ajoute le plaisir du fruit d fendu les filles et fils d Eve onttou jours aim croquer les pommes certains ayant fait de fort belles d couvertes en les regardent simplement tomber Les ma chines con ues par Hewlett Packard tant want ss Alice arrive au bout de son long p ri ple Rien n indique que tout doive s crouler comme un ch teau de cartes au contraire La voici qui res sort bien d cid e utiliser tout ce qu elle a d couvert pour toutes sortes d applications Lesquelles L histoire ne le dit pas elle sont lais s es au bon plaisir d Alice consid r es comme des produits s rieux affoler ces pauvres b tes et leur faire faire les pieds au mur a une incomparable sa veur Mais l effet de cette jubilation initiale s att nuant avec le temps consid rons ces tr sors cach s d un il plus critique Et tout d abord qu est ce qui diff rencie les instructions d acc s aux registres internes des fonctions usuelles de la calculatrice Leur origine n est pas miraculeuse la majorit d entre elles ont manifestement t pr vues par le constructeur probable ment pour des raisons de maintenance Leurs seules diff rences avec les fonctions stan
3. modifi s entro temps ce que le programme RG s empresse de faire d s le pas 031 Dans ce dernier cas il reste la solution de replacer dans c son ancienne valeur conserv e dans M ce que fait RG aux pas 25 et 26 Apr s avoir longuement d mont le m canisme qui conf re RG Sa transpa rence int ressons nous au devenir des donn es qui ont t immerg es en zone programme elles sont devenues un en Somblo d instructions Et l on co surprend r ver si l on pouvait contr ler au bit pr s le contenu de ces registres quelles merveil leuses possibilit s nous seraient offertes nous aurions alors tout loisir de g n rer n importe quelle suite d octets Et nous revoici plong s en eau profonde en des lieux fertiles en merveilles il est d cid ment difficile de rester s rieux Comme la fin de toute histoire il faut une morale nous vous proposons celle ci avant de vous quitter S il te vient lecteur une id e d lirante ne la rejette pas comme telle Recueille la tudie la et enfin essaye la Une monstruosit logicielle n a jamais fait exploser une calculatrice et parfois a marche Mais ceci est maintenant ton histoire Philippe Descamps Patrick Imbauli et Bruno Langlois Voita core s rie esttermin e sa pour es exemples us Satin que vous tawerez prochanament en Fiches Prati aus s wasan
4. e cortains nous sont dautres conservent devenus familiers une part de leur myst re les registres M N Oet les tr is octets de poids faible de P constituent les 24 octets du registre alphanum rique le registre Q contient la derni re ti quette alpha appel e il intervient proba blement aussi au cours des op rations d changes avec les p riph riques car il ost p riodiquement vid si l imprimante est connect e les registres et e contiennent 36 dra peaux indiquant siune touche du clavier est ou non assign e De plus e est galement utilis pour la num rotation des instruc tions le registre a et une partie de b contien rasvan n R sum de l pisode pr c dent la suite d une op ration de stockage in direct l g rement h r tique Alice a suivi le lapin blanc dans les profon deurs de la HP 41 C Elle est mainte nanten face de 11 registres internes Chacun porte l inqui tante inscrip tion Programmez moi nent la pile d adresse de retour des sous programmes les 12 bits de poids faibles de b codent l adresse du pointeur programme le registre c contient cod en hexad ci mal l adresse absolue du 1 registre sta tistique une constante 16916 qui modi fi e provoque imm diatement un ME MORY LOST l adresse absolue de la s pa ration entre la zone programme et la zone donn es l adresse du END final de la m moire programme les 56 bits du
5. l utiliser reprenons l exemple passion nant et passionn de Je t Aime I s agit de cr er une cha ne de 11 carac t res notre premier acte sera d crire la s quence oi 1 2 RCLIND 16 O3 T AAAAAAAAAAA Troquons maintenant notre suite de A contre les caract res qui nous convien nent Revenons au pas 2 et ex cutons le CRIC la calculatrice affiche RCL IND a ce qui ne nous surprend plus Le pr fixe de la cha ne de code 251 a t absorb sur le deuxi me octet de RCL IND 16 La calcula trice consid re maintenant les octets qui suivent comme des instructions et non plus comme des caract res Profitons en et in s rons HMS code 74 carau re J LN 14X 101 RCLOO 32 espace RZ 116 t RCL 07 39 gt 85 A INT 105 i HR 109 mi LN TX 101 e RCL 00 32 espace RGL 01 33 f Un BST et la calculatrice affiche T Je H AR e Les t 1 et m minuscules ne sont pas in clus dans la MEM de la 41C et sont donc remplac s par des p t s mais l impri mante elle reconnaitra les siens 1 ne nous reste plus qu effacer les ins tructions 1 et RCLIND 16 ainsi que les onze signes moins qui suivent la chaine obte nue e sont les restes de la th orie de A refoul s en dehors de la zone de onze ca ract res qu ils nous avaient permis de di mensionner Tout cela marche fort bien mais des pro bl mes surviendront si vous tentez d ins rer des caract res ayant un code d cimal Lost compris e
6. 08 et entrons l instruction SF 75 Correspondahce entre la notation matricielle des touches et les codes instructions de la table d assigna tion 4 2 3 a 5 1 BLog 9 RCLO9 S1009 HMS EBLOO 1 RGLOI STOO T RT 1 3 2 L8LO9 AGLIO S1010 HMS LBLOI 2 R LO2 S1002 TT CT ET 2 3 LBLIO E RCLII SIO1 MOD LBLOZ 3 RGLOS STO05 7 23 25 17 9 1 4 Figrin roi soi UBLO3 4 RCLOA STO04 X lt Y cree 3 o 5 L8LI2 GTOT RCL13 1013 LBLO4 5 RCLOS ST00b 31 23 15 7 6 LBLI3 XEOT RCLI4 ST014 LBLOS 6 RCLOG STO06 NE ES 6 7 LBLI4 WT RCLI5 ST015 LBLO6 RCLO7 RCLO7 STO 07 2 2 13 5 8 O RCLOO Sro00 Leto7 6 RCLOB 67008 28 20 12 4 La premi re instruction correspond la touche se condaire la deuxi me la primaire Le nombre qui suit indique le num ro du drapeau correspondant dans le registre pour les touches primaires etdans le registre e pour les touches secondaires Cette touche recouverte par la touche ENTER f est inexistante Le contact est il pr sent 00 En mode calculune pression prolong e de la touche 1 x d clenche l affichage de XROM 32 00et c est pourtant bien la fonc tion SF 00 qui est ex cut e Premi re d couverte majeure il est pos sible d assigner toutes les fonctions de deux octets et plus particuli rement les fonctions d acc s aux registres internes Mais avant de r aliser cet exploit il nous reste comprendre le r le des instructions LBL 08
7. LBL 00 RCL 01 et 1 qui font suite aux fonctions et commandes assign es Pour cela nous effectuerons une permuta tion effa ons le LBL 00 au pas 06 et rem pla ons le par LBL 08 de m me au pas 04 rempla ons LBL O8 par LBL 00 En mode calcul on constate que le CRIC est mainte nant affect la touche etla commande ON L instruction qui suit une fonc tion a done pour r le de pr ciser la touche laquelle cette fonction est assign e No tons que cette modification de l affecta tion des touches n est r alisable que si les touches impliqu es ont d j re ue une as signation et donc que les indicateurs bi naires des registres e ou correspondants sont lev s Le tableau ci contre donne la correspon dance entre le code matriciel des touches et le code de la table d assignation que la calculatrice visualise par les instructions correspondantes ainsi que le num ro du drapeau dans les registre e ou Le m me codage des touches du clavier est gale ment utilis pour les assignations des fonctions de l utilisateur Cette informa tion est stock e non pas dans la table d as signation mais au niveau du programme dans lo quatri me octot du LBL global cor respondant cf L O n 24 L acc s aux registres internes nous am ne une programmation synth tique sans larmes pleurs et autres grincements de dents Avant de vous d crire la marche suivre reprenons le listing de nos instructions lis i
8. dans un joyeux carillon on attendant vos matruetions Vous avez H las aT appeido 3 LIN la calculatrice positioma lesregisres fa main f Avouons sereinement que nous avons De nombreuses calculatrices de milieu tout fait pour cela Si vous tentez une di de gamme disposent de telles fonctions qui sion par z ro la calculatrice refusera en af fichant DATA ERROR Si vous d cidez de charger n importe quoi dans le registre c rien ne viendra arr ter votre main et le r sultat ne se fera gu re attendre La seule r ponse que l on peut opposer cet argument est qu un MEMORY LOST n a jamais tu personne nous en sommes de vivantes preuves Retirez les accus per fois 48 heures dans les cas graves et apr s cette brutale catharsis votre 41 C se r veil lera oublieuse de vos mauvais traitements et aussi docile qu auparavant Nous affirmons donc p remptoirement que les fonctions synth tiques sont des fonctions comme les autres II ne faut pas les maintenir dans le ghetto des gadgets et autres abracadabras La manipulation du registre alpha n est pas plus myst rieuse que celle de la pile op rationnelle et la cr ation de cha nes artificielles pas plus L rtauras batite repr sentent le pain quotidien du statisti cien Alors o est le probl me et que vient faire ici la manipulation des registres inter nes Tout vient du fait que les registres statistiques de la 41 C n occupent pas une position fixe
9. directe meni aux registres qui portent ces num ras sous r serve que le SIZE s lectionn Soit suffisant L affichage de ces fonctions est cependant l g rement surprenant st RCL 100 ET RCL 101 donnent respective ment RCL OO et RCL O1 de RCL 102 RCL 111 onobtientdes regis tr s tiquet s de A J on retrouve le code des tiquettes utilisateur d j mentionn Les codes de 112 116 nous ram nent en terrain connu ils correspondent aux re gistres TZYXL de la pile op rationnelle De 117 127 on g n re les appellations suivantes saossr0v022 Ces nouveaux registres ne sont pas des registres de donn es comme c tait le cas pour les registres 100 111 Quand le chargement d une valeur quel conque dans entra na imm diatement un MEMORY LOST Quand la m me op ration avec les regis tres MNO et P remplissait le registre alpha de signes incongrus Quand l al ration des registres e et bouleversait compl tement nos assigna tions Quand la modification du registre d se r percutait aussit t sur les drapeaux nous avons compris que nous avions d sormais acc s aux registres internes de la calculatrice Et cest ainsi que nous sommes pass s de l autre c t du mi roir Mais ceci est une autre histoire A ETES Philippe Descamps Bruno Langlois et Michel Sladki Lois de l autre c t du miroir De ces 11 registres internes tiquet s M N O P 0 La b c d
10. en m moire L utilisateur peut les assigner la place qu il d sire pour oublier ensuite o il a bien pu les mettre A cela trois parades sont possibles D cider que les registres statistiques oc cupent une localisation d fine en m moire et crire tous ses programmes en accord avec cette d cision C est aussi sacrifier les avantages de la mobilit et cela peut aboutir d insolubles confits quand l utilisation d un sous pro gramme on MEM done non modifiable Viendra interf rer avec vos registres statis tiques La seconde solution consiste sacrifier E rasas Codage d octet CD Ce programme g n re un caract re partir de son code d cimal compris entre Oet 255 Ce code initialement en X est remplac par le caract re correspondant lequel est galement concat n au contenu initial de Alpha si ce dernier n exc de pas six caract res Les registres LetT sont perdus Y et X sont conserv s Le programme utilise un niveau do sous programme Donn es m instructions Afichage TT introduire code d cimal Sattehage 02 x 2288 Ex cuter fonction Fonctions 2 1a xea CO Cette version utilise Je registradi Les fonctions FIX pr en sous programme ne sont pes des fonctions standard comme pourrait le laisser croire la liste du pro caract res 1 s agit d instruction synth tiques FIX 10 FIX 151 codes 156 10 156 15 Les modi
11. instruction la s quonco des codes devient 17 144 00 00 159 117 RCLOO TONE M Le quatri me octet nul dispara tre aima blement au 1 PACK Si on g n ralise le processus on obtient le sch ma suivant 1 introduire la s quence 1 RCLIND 16 RCL IND XX Instruction XXest galau code du premier octet de la fonction g n rer moins 128 c es facile une fois qu on le sait La quatri me instruction doit avoir le code du deuxi me octet de l instruction fi nale 2 Apr s avoir positionn le programme Sur RCLIND 6 revenir en mode calcul et ex cuter le CRIC 3 Revenir en mode programme et effa er l instruction affich e 4 Eliminer les instructions 1 et RCL 00 pour ne conserver que la fonction d sir e Avec le CRIC il vous est maintenent pos sible de combler les trous de notre tableau La fonction TONE est la plusattirante pour notre d lectation les 117 TONE suppl mentaires ne sont pas de simples doublons des dix sons de base Six nouvelles fr quences apparaissent dans les basses dont la dur e varie consid rablement de cinq secondes pour les plus longs quel ques dizi mes de seconde pour certains pratiquement inaudibles mais qui dans une boucle donnent un superbe bruit de cr celle Les fonctions de stockage et rappel des m moires utilisateurs sont galement fort tentantes pouvons nous franchir la bar ri re des 99 Oui les codes de 100 111 donnent effectivement acc s
12. sor mais pathologiques sont passionnants et curieusement tr s utiles tudier Nous y reviendrons une autre fois ET Manipulation des drapeaux FL Le but de ce programme est de pouvoir initialement en X positif sion d sire armer manipuler tous les drapeaux Flags de la le drapeau n gatif pour le d sarmer En fin 41 C y compris et surtout les drapeauxin d ex cution le drapeau est dans l tat tornes gt voulu la pile et le registre alpha sont d Le num ro du drapeau s lectionn est truits Exemple Armer le drapeau 52 52 XEQ FL La machine s arr te en mode programme Armer le drapeau 50 50 XEQ FL Le canard reste suspendu l affichage angoissant Le programme commence par d termi fonctions SF IND ou CF IND L ensemble ner l octet puis le bit de cet octet qui doit de dest nouveau replac dans N et encore tre modifi d cal pour que les sept octets du registre Le contenu duregistredestplac en Met Modifi Soient situ s dars Er o ils sont cente chaine d cal e pour que octet cile eeuP r s et replac s dans d devienne le troisi me octet de N Le regis Ce programme repr sente un excellent tre N est alors rebascul dans d Le bits exemple de manipulation de registre au ni lectionn de 16 23 est modifi par les veau du bit 9 En utiisant les fonctions synth tiques le listing sur imprimante change un peu I Voici tes principaux Chang
13. suscepi ble d tre condens e dans une cha ne de 7 caract res qui apr s transit par le registre M pourra tre rappel e en X sous forme nu m rique le tout en 10 octets soit un gain de 4 cctets par constante au totalune co nomie de plus de 9 registres est ainsi obte nue Si l on note galement que l interpr tation de la cha ne de caract res est plus rapide que celle de la constante num rique correspondante on peut obtenir un gain de temps l ex cution de l ordre de 40 L initialisation par cha ne du registre d est une autre possibilit int ressante L i nitialisation des drapeaux le formatage de l affichage le choix du mode USER AL PHA irigonom trique peuvent utiliser un Loue t nombre important de pas de programme de plus certaines possibilit s comme la mise enalimentation continue ou la d con nection de l imprimante par logiciel ne peuvent pas tre directement program m s Ici encore la programmation d une cha ne de septoctets suivie de RCL M STO d r gle tous ces probl mes en trois instruc tions Mais passons la pratique et examinons quelques m thodes propres concr tiser toutes ces possibilit s de r ve Quelques instruments aratoires nous permettront de mieux cultiver notre jardin la commande mu et le Cric feront ils passer le message Et d abord le CRIC Toujours le CRIC Maintenant assign demeure sur la calculatrice il nous faut savoir comment
14. D31 144 04 RON 117 Positionnons le pointeur sur le premier RCL IND 16 au pas 02 Revenons en mode calcul et utilisons le CRIC En mode alpha l affichage ne montre qu un seul caract re un pat 1 En effet l instruction 1 a pour code Hexa 11 Revenons en mode pro gramme Apparemment rien n est chang l affichage indique toujours 02 RCLIND 16 Effa ons cette instruction gt listons le programme Nous obtenons codes 159 02 RCL 00 03 TONEM Que s est il procuit Pour le comprendre revenons notre s quence de codes Code 17 144 144 144 159 117 Ocet 1 2 3 4 5 6 Lo pointeur programme ect initialement positionn sur l octet 2 L utilisation du ET o x LES 4 A sx 57 h2 LE RoZ 32 Ensemble s caract res allichables de la HP 41 C Tes Chiles correspondem aucoded cimal les dessins aux 43 4 64 E gt imobasquej fsurlign 33 4 point wF osaso Aaz ao g Toeman iE L PE E a Zy Z uleme o A ouvrant 5 sel x a 92 lantistash x V4 93 J crochet 2570 fermant E 48a 5709 a so i a poin 94 mu grec 8 ZX eu BO o xpa 8O Z a mouta aaa x leva 9 M ne N ol 978101 a parenth ses a aie ar 82 126 bian 32 8 y E append ET CRIC change cet octet en alpha le p t et d cr mente une unit l adresse du poin teur maintenant positionn sur l octet 3 L instruction RCL IND 16 affich e est alors la traduction des octets 3 et 4 et non plus 2 et 3 Lorsqu on d truit cette
15. a touche gt et le CRIC d crit dans le n 24 de L O at fect la touche gt Vous pouvez parvenir Que sepasse t ilquandon esse une touche nat ce r sultat soit en recommen ant les op rations n cessaires l obtention du CRIC soit en lisant la deuxi me piste d une certe d tat si vous avez enregistr ces as signations gr ce la fonction WSTS Effectuons encore deux nouvelles assi gn tions ASN 12 touche 1 x ASN gt 13 touche Vx Passons maintenant en mode pro gramme et introduisons la s quence EN ER GTO puis revenons en mode calcul La calculatrice est maintenant pr te pour la mise feu c est le CRIC qui va nous Servir de propulseur Le pointeur programme est actuellement positionn sur le premier oc tet du END permanent L octet qui pr c de est le troisi me octet du END g n r par la calculatrice la suite du GTO il a pour code hexad cimal 09 Si nous utilisons le CRIC le pointeur pro gramme s incr mentera de 9 octets fran chissant ainsi all grement la barri re du END terminal Aussh tdit aussit t fait En mode USER pressons la touche XROM 05 03 s affiche bri vement Sans bruit sans se cousse nous avons quitt l atmosph re Envol s vers un espace m moire interdit pourquoi ne pas tenter quelques exp riences en orbite et vous livrer aux joies de l apesanteur Attention d s maintenant suivez scru pu
16. ci bien s r vos risques et p rils veillez bement stock es Tout ceci est possible ne pas avoir de programme capital en peut tre tristement at Une autre possibilit int ressante du re gistre d est son aptitude g n rer tous les Caract res la demande Le processus est Ceci a pour effet de donnerlavaleur1au un peu plus long qu avec la fonction premier digit hexad cimal Par la suite au BDLSPEC mais il a l avantage de fonction Cours des transferts d un registre dansles ner sans imprimante et comme vous ne m moires cene valeur sera consid r e disposez pas tous de ce co teux joujou Il est temps de lever le rideau car la repr sentation d butera dans un instant Abordons maintenant le registre C En voici la structure pr cise Z4EEs9 14 16 9 RAR Rata eus qey EE IR A Lors La localisation des premiers registres statistiques est donn e par ERESAEA EE RARE RUE C est essentiellement la valeur R qui nous int resse car elle donne en hexad ci mal l adresse absolue du premier registre RO des donn es le registre imm diate ment inf rieur est le premier de la m moire programme cf carte ci contre L op ration SIZE est extr mement com plexe Elle agit en d calant toutes les valeurs contenues dans les registres de donn es et de programmes en fonction du nouveau nombre de m moires affect es aux donn es Une modification directe de la val
17. compte du f gistres statistiques sont localis s dans les registres 00 05 Les choses changent lorsqu on consi d re le programme MODG long de 43 mans G instructions ilne contient pas moins de 21 fonctions ou cha nes synth tiques soit pratiquement la moiti C est un taux de dopage assez exceptionnel mais votre calculatrice le supporters tr s bien Le but de F inclus dans MODc est de placer la fronti re programme donn es eu niveau du premier registre statistique En s lectionnant par les premi res lignes du MODc la position de ce registre on peut ainsi choisir l altitude atteindre Ce programme a encore d autres pro pri t s qui seront plus ais ment compr hensibles une fois que son m canisme aura t diss qu Rappelons avant tout la Structure du registre c d j d crite dans L O n 25 EIo Xa X Xg 169 R Re Rali La Lo eh 6 5 4 3 2 1 X1 2 X3 est l adresse absolue en bi naire cod e sur 12 bits du premier regis tre Statistique R1 R2 R3 est l adresse absolue en bi naire du premier registre de donn es Le but de FX va tre de permuter ces deux adresses Quand on change simplement les oc tets 7 et 6 avec les octets 3 et 2 on parvient au r sultat voulu mais si la pr sence de L 1 dans l octet 6 la place de X 1 inutilis par la machine est sans cons quence la modi fication m me transitoire de l adresse du END final de la m mo
18. d cimal 8 II ne reste plus enutilisant le registre alpha qu iso ler le troisi me octet du registre qui Contientia caract re nouvellement synth tis On notera du registre Ncomme registre nu m rique transitoire ce qui permet d pargner la pile op rationnelle et les registres m moires CD comporte un Sous progr mme pour traiter le cas o le code Initial est 52 RN 16 80 2 sma L SSL 15 11 CF 68 28 0 1 S4 FIX 5 12 CF et 29 Hae 55 END 13 CF g KE WCFe hair 15 SI 2 ROL 16 ARCE d 33 STO 5 17 SCI HAE SI LBL MOD 18 x l 35 CLX 62 TREG INI X 19 XO d 36 LASTX A3eL8L FE 20 SCT IND X 37 STOL 4 REL c a Lx 85 CLA 22x07 39 KO 46 STO l aOd 48X0 c 67 nhare 24 STO 41 ST0 8 elg 42 RDN 9 REL E 46 On 43 END une m moire pour stocker l adresse du pre mier registre statistique Les possibilit s d interf rences sont alors limit es ce seul registre mais il faut crire les sous programmes de traitement statistique en adressage indirect ce qui oblige manipu ler un pointeur alourdit la programmation et ralentit l ex cution La troisi me solution est celle que nous vous proposons c est peut tre la bonne Ce programme est divis en deux parties D abord l ensemble RG COR X et Y qui correspond aux fonctions sta tistiques d sir es l exception des pas 25 et 26 ce programme est classique et fonc tionne en tenant
19. dard sont de deux types dans un pre mier temps elles ne sont pas directement accessibles au clavier En fait ceci n est plus tout fait exact g n rer une fonction en utilisantle CRIC n cessite ilest vraiune Loue natste vingtaine de pressions de touches et cela peut paraitre beaucoup si on oublie que la programmation de la fonction PROMPT en utilise neuf Enfin cet argument s effon dre totalement quand ces fonctions sont assign os elles sont alors aussi ais ment disponibles que les fonctions banales Dans ces conditions pourquoi s en priver La deuxi me diff rence est beaucoup plus s rieuse ces fonctions sont d licates manipuler La 41 C est d un naturel assez chatouil leux chose compr hensible chez une grande Diva de l informatique de poche mais si lon va la taquiner au plus profond de ses circuits alors l c est la grande p moison Les fonctions synth tiques ne Sont pas couvertes par les tests d erreur du fastidieuse que l utilisation de BLDSPEC ou ACCHR A ceux qui avanceraient qu une calcula trice programmable est faite pour r soudre des probl mes et non pour en poser je r pondrai que toutes ces fonctions artifi cielles ont leur place dans vos programmes o elles se r v leront aussiutiles voire plus n cessaires que les tesis ou les appels de sous programmes Sans tarder adminis tronsune preuve de ce que nous avan ons Le programme que nous vous proposons encadr 1 p
20. der gs t niers bits du dernier octet forment la derni re co lonne le bit de poids fort tant rejet en avant der ni re colonne II en est de m me pour les octets comme le dessin l indique les octets suivants se rangeront successivement de la m me mani re Ceux qui se sont int ress s cette techni que ont pu observer que le processus de construction est particuli rement vorace en espace m moire La programmation du papillon donn en exemple dans l encadr concernant la fonction BLDSPEC ne n cessite pas moins de 28 octets Or la repr sentation finale de ce caract re tient dans 1 registre II suffit 1 de programmer cette cha ne de 7 octets pour que en cours d ex cution elle soit stock e dans le regis tre M ot de l reppel e en X RCLM Co t total de l op ration 10 octets Laissons l les possibilit s d impression pour envisager d autres domaines d appli cations moins imm diats Vous d sirez utiliser la technique d int gration de Gauss en seize points Ceci sup pose que vous devez introduire dans votre programme 16 constantes num riques ayant chacune dix chiffres significatifs plus deux chiffres et le signe pour l expo EN m sant soit 14 octets en moyenne Que vient faire ici la programmation de cha ne de caract res vous demandez vous Encore une fois la repr sentation fi nale de votre constante tient dans un regis tre ettoute l information est donc
21. dresserelative apr s compilation comme pour les GTO couris La distance maximale est de 511 x7 7 soit 3 5 K octets ce qui donne la taille maximum d un programme Pr cisons au passage que les tiquettes A Jeta e sont en fait des tiquettes nu m riques ayart pour code 102 112 pour les tiquettes de Jet 124 127pour les Voici toutes les instru des assignations Enfin les n octets suivants donnent les n caract res composant l tiquette L instruction END poss de une stru ture plus Simple puisqu elle n occupe que trois octets Les deux premiers sont rigoureuse ment identiques ceux des tiquettes al pha Le troisieme la structure suivante 0p001001 Seul le bit p est apparemment variable s ilest z roil ne se passe rien de particu lier s il est un 1 alors le programme qui pr c de est PRIVATE uctions de vatre HP 41 C AEEA ANANE N NAAN NNA EONA ANANA NO Ke LT NON NON NGNGNG6N7NE NI NANBNG NDNE NF NY RTE Ta rue gr fee Var fra ea La zac zac Vese Je g te FAFARA RAPA EAFA AA NAEP EAA A I aro OPOP EA ALP EMEA EP EALAES re Gel PAPA AAA PAEA A ARE ser dell EA A ARAKA ar AT g A GAI Bees lelre fer GA GAUERA ONAA jar fra me ser y Paar as ror Pi aov or Foe erco g rar re a G zer OA CAA RA Ra a KAKAA GA a den fret els be l es le
22. du clavier al pha La premi re application qui vient l esprit ost de pouvoir programmer ces ca ract res suppl mentaires inaccessibles au clavier mais n anmoins pr sents dans les MEMs de la calculatrice Ilest agr able d introduire dans les messages affich s des p renth ses des crochets apos trophes et guillemets Sans oublier les ca ract res chinois dont l utilit pour la pro grammation d un jeu de pendu ne vous Aura certes pas chapp Mais c est en conjonction avec l impri mante que la possibilit de g n rer de nou velles chaines de caract res prend toute sa valeur Envisageons l exemple suivant ne sa chant comment vous y prendre pour d cla Lier Dans la for t des instructions de la 41C Alice vient de d couvrir quelques cha nes qui ne manquaient pas de caract res Las Commentles programmer Mais bon sang Pour quoi ne pas utiliser ces registres qui lui tendent les bras et pour lesquels elle dispose du Cric Suivons la rer votre flamme une superbe blonde aux yeux de feu ou un grand brun au regard de velours vous d cidez de lui faire parve nir sur carte magn tique ce doux message Je t Aime I gt qui simprimara automati quement au grand ravissement de l me s ur Vous cririez probablement la s quen ce CF 13 Je ACA SF 13 t ACA 39 ACCHR CF 13 A ACA SF13 ime ACA 33 ACCHR PRBUF Soit un coquet totel de 39 octets En utilisant les chain
23. e qui aurait notamment pour ef fet d liminer tous les octets nuls B bur de lam moire Regislres internes Tanie d acsignanton size 48 cor se coco Galil e ARERI e CE4Se Esie arte de le m mo Nous avons vu aujourd hui les registres MN OP c d qui semblent les plus riches sur lo plan des applications pratiques Le r le du registre Q n est pas totalement ex plicit Les registres a et b permettent de Voyager au travers des m moires mais l a dressage absolu qu ils utilisent s accorde mal surle plan de la programmation avec la plasticit de la m moire programme Les registres et e sont d di s aux as signations Or le m canisme des assigna tions est le compl ment indispensable des techniques pr c demment tudi es Il nous a permis de cr er et d assigner toutes ces nouvelles fonctions et de les utiliser le plus normalement du monde Mais ceci est une autre histoire Philippe Descamps Bruno Langlois troisi me pisode La HP 41 persiste et assigne Les affectations de fonctions standard dela HP 41 C destouches du clavier utili sent un registre 7 octets pour chaque af fectation de rang impair effectu e Voici tout ce qui est dit dans votre manuel d utilisation concernant le stockage des as Signetions une petite note perdue au bas de la page 186 Pourtant le traitement des assignations est un excellent exe
24. ements registres M crochet ouvrant N anti slash D crochet fermant i i FRE ND X waa SZ Ke Em2 ma s10 Pw ms ni xor ma el St a Eom La 41 C offre 30 drapeaux manipulables comme une chi pour quelques autres D sirez vous metire en m moire la ma trice binaire nombre de drapeaux dont vous disposez se Nombre r v lera vite insuffisant De l autre c t du miroir on assiste au miracle de la multipli en prenant quelques pr cautions La plus m moire car importante est de conserver les premiers drapeaux dans l tat suivant O d sarm 3 arm ET n Pour se guider dans cet espace trange il ne faut pas oublier d agiter tous les drapeaux possibles je de caract res et non por l utilisateur C ost beaucoup pour laplu comme un nombre La chose est impor part des applications mais trop restreint tante car toute tentative pour rappeler ou visualiser un nombre pathologique d une m moire autre que les registres internes S Meaga un graphe Le pile op rationnelle comprise normalise le N coutez pas grand m re HP quand elle vous dit qu on ne peut pas manipuler les gation Fer aipe drapeaux internes de 30 55 On peut II Rappeler le registre d le stocker dans suffit de g n rer la bonne cha ne de carac une m moire g n rer un autre registre ou t res et d en charger lo rogistre d Tout r utiliser d autres valeurs binaires pr ala ce
25. ent tou jours tre pr c d es d une destruction d un nombre gal d octets Revenons en mode calcul et pressons la touche 1 x Le petit carillon retentit montrant que la fonction BEEP a bien remplac e la fonction Si nous avons pu retrouver nos deux fonctions standards la commande PACK assign e la touche est r solument absente de notre table d assignation Rappellons qu une commande est un or dre non programmable elle n a pas de code propre Dans ces conditions quelle astuce la cal culatrice utilise Lelle pour m moriser une commande Nous venons de voir que chaque instruc tion assign e tait pr c d e de LBL 03 au pas 02 nous trouvons encore LBL 03 suivi de LBL 09 Serait ce notre PACK Modi fions encore la table et rempla ons LBLO9 par LBL 08 pour voir Un retour en mode calcul nous permet de constater que c est maintenant la com mande ON qui est assign e la touche 2 Nous vous laissons le loisir et le plai Sir de d couvrir les commandes obtenues pour les autres LBL courts de 0 14 et les instuctions RCL ou STO d un octet Int ressons nous maintenant au pas 05 nous y trouvons le caract re C Sans trop de surprise c est le CRIC et c est nous m me qui l avons plac l Mais il n estpas pr c d de LBL 03 et occupe 2octets code 241 67 il faut donc supposer que le LBL 03 qui pr c de nos fonctions d un octet n est l qu titre de bouche trou Effacons les pas 09 et
26. ermet de calculer les divers param tres d une r gression lin aire pente et ordonn e l origine de la droite de r gression coefficient de corr lation esti mation de y pour x donn et r ciproque Syst me d exploitation ment Fonctions statistiques A partir das valeurs contenues dans les registres statis tiques o qu ils se trouvent 2x 2y 2xy 2x2 Diet 17 GE n ces programmes calculent T Pour RG les param tres de la droite de r gression S1LBL RG 18 ponte rendus en Xet ordonn e l origine dens leregisire KER FIS 19 MEAN Pour COR le coefficient de corr lation AIR Z Pour X une estimation de la variable x pour un y PES donn 22 LASTK Pour Y une estimation de la variable y pour un x 23 R donn 2 Exemple 25 REL xi 40 5 38 6 37 9 362 351 34 6 26 STO a 43 RTN yi 104 5 102 100 97 5 98 5 94 18 27 RIN SARL uroduir les couple yi ENTER xi no At SEY 38 RL 45 XER Z Bour caleuler la pente XEQ RG 1 L LASTE 3 E D ne SSES REO 2m FL Pour calculer R coefficient de corr lation en Soie 5 XEQ COR gt 0 995 KA pE dge Pour x 37 calculer 9 37 XEQ Y 98 65 z a5 Z Pour y 98 13 calculer 95 13 XEQ X 35 00 ue E Se oi Allez donc utiliser cela comme sous programme Mie Tai NB tout fait entre nous c est le genre daprogrmme que j w statistiques en R 10 efface les m moires R 108R 15ets Fais m trouver dans le module MEM d applenton statistique
27. es m mes caract res modulo 128 pour les codes de 129 255 Les codes Oet 128 sorit repr sent s par le caract re galement ob tenu avec les codes 10 et 138 La fonction ACSPEC permet de plus de visualiser sous forme binaire un registre 7 octets presque complet La remarquable fonction BLDSPEC permet l inverse de g n rer l ensemble des 256 octets nous vous en parlerons dans un article suivant Arm de ces diff rents outils et d une bonne dose de patience il nous a t possi ble de d coder la totalit des instructions La table des codes estdonn e dans le ta bleau ci contre Les codes 1 143 l ex ception des codes 29 30 et 31 repr sen tent les instructions d un octet et n appel lent aucun commentaire particulier s beaucoup plus g nant cette lecture desre gistres programme s av rait r solument destructive puisqu entra nant l alt ration des programmes et ventuellement la perte de contr le au clavier ce n tait que le d but des nombreux accidents qui al laient mailler nos recherches Notre premier but fut de d crypter les codes affich s car ce ne sont pas les ins tructions en clair qui s affichent lors du rappel des m moires hautes mais leur code Dans nos esprits cela pouvait autori ser des trucs int ressants comme l au toprogrammation de la machine Nous tions encore loin d imaginer tout ce que nous allions d couvrir De 144 173 on trouve
28. es synth tiques on peut crire directement Je t Aime PRA Soit 14 octets II nous reste incontestable ment plus de place pour d velopper la suite L imprimante a galement la possibilit d utiliser des caract res sp ciaux g n r s par les fonctions BLDSPEC et ACSPEC no enmia Instructions BLDSPEC et ACSPEC instruction BLDSPEC sert construire des ca ract res sp ciaux Sur l imprimante chaque carac t re est inscrit dans une matrice 7x7 Pour d finir un nouveau caract re on en d finit successive ment les 7 colonnes de la mani re suivante A Chaque ligne est associ e une valeur num ri Points Dessinons un pillon 64 imprimer 4 4 22 8 D 16 64 que les valeurs des points que l on veut imprimer sont ajout es Somme desvaleurs recaracl re et consfruisons Une fois construit nous accumulons dans un registre tampon buffer le caract re par la fonction ACSPEC L impression est d clench e par l instruc tion PRBUF Le fonctionnement de ces instructions est pres que limpide BLDSPEC permet de d finir 7 bits du registre simplement en convertissant en binaire le nombre rentr Puis l impression visualise le regis tre 7 bits par 7 bits le premier septet rentr tant gauche le bit de poids faible en haut Si donc nous accumulons un registre m moire programme rappel par 999 RCL IND X les 7
29. est situ avant GTO On constate que l espace maximum adressable est de 15x7 7 soit 1 12 octots de part et d autre de l instruction GTO ce qui est bien la valeur indiqu e dans l an noxe G du manuel d utilisation Les GTO de 3 octets et tous les XEQ ont un espace adressable beaucoup plus tendu Leur structure est la suivante tiquettes a e ceci explique qu elles ne soient pas accessibles indirectement Les tiquettes alpha et les END atteignent le sommet de la complexit LBL z 116001 005r Ruten 1111k octet 1 cotet 2 ostot 3 ts totatatstatzta cha ne de caract res octet 4 Le codage des 2 premiers octets nous est maintenant familier il donne l adresse re lative du label alpha ou du END suivant dans la m moire programme C est cette proc dure de cha nage qui permet l acc s rapide aux tiquettes globales L octet 3 annonce la pr sence d une t s TOT LATE octet 2 OTO 1110 XEO 1110 0u 1101 0020an octet 1 Se 2e3 185860 cha ne de caract res et donne sa longueur maximum 15 caract res cod e sur les 4 bits hs la L actet 4 donne le code de la touche cla vier dens le cas o l tiquette a t assi gn e Nous en reparlerons de fa on plus d taill e dans un prochain article traitant metaren octet 3 Les 7 bits de e e7 codent pour l ti quette de O 127 mais oui I Los bits o ozetr ra codent pour l a
30. eur R du registre c a un effet plus simple et plus int ressant la fronti re entre la zone don n e et la zone programme co quo nous ap pelerons le rideau est d plac e sans alt ration des valeurs pr sentes dans les re gistres travers s Ainsi si nous augmen tons de 16 la valeur de R on a le r sultat suivant Roo Apr s Avait Le registre 16 devient le registre O Les 16 premi res m moires donn es consti tuent maintenant les premi res instruc tions du premier programme en m moire Immersion transmutation le r ve dos al chimistes Ce ph nom ne pr sente deux applica tions majeures D une part une grande li bert dans la synth se des programmes g n ration de cha nes alphab tiques com plexes d instructions 3 ou 4 octets D au n tre part cette technique constitue un v ri table ascenseur pour permettre UN sous programme ne travaillant pas en adres Sage indirect d tre la hauteur Siun sous programme manipule un vec teur implant entre les adresses RO1 Ann en utilisant un pointeur en ROO il pourra sans modification travailler sur un vecteur d butant en Fxx avec un pointeur en R xx 1 il suffit de lever le rideau de xx 1 re gistres Pendant cette op ration les valeurs contenues dans les registres ROO et Rxx 2 sont rang es en zone programme et parfaitement prot g es si l on n effec tue pas de tassement de la m moire pro gramme c
31. fications du format d affichage n ont p d importance FIX 10 se comporte comme FIX 9 1 autres comme FIXO par contre dans le ragistre d les dr peaux 36 39 sont positionn s pour repr senter sous forme binaira les cinq chiffres hexad cimaux do A F exactement comme ils sont la repr sentation binaire d etet em 18 KO SOLBL 16 82 X0 19 SF 25 He 93 GT 16 26 FIK IND gt 37 RTN B4 570 21 XEO IND gt JBL 16 65 15 22 XO d B FIX e 86 MoD 223 ST 48 RTH 97 KO 24 RO L ALLBL 11 88 LASTK 25 ASHF 42 FIX 1 89 7 26 ASTO Y 43 RTH 18 INT EE 4LBL 12 DENI 28 AREL Y 45 FIX 2 12 80 d 29 ASHF 46 RTH 13 SF 25 38 ASTO Y 47LBL 13 14 FIK IHD Y 31 STO C 48 FIX 3 15 XEQ IND Y 32 AREL Y 43 RTH 16 KO d 33 RDK S eLBL 14 17 FC 34 RTH Si FIX 4 chiffresO 9 avec les instructions FIX normales Autotal ls programme fonctionne da la fa on suivante 1 D composition du code d cimal an base 16 2 chargement du registre d avec la valeur 1 1 etsau vegarde de son contenu initial en X fonction X lt gt d 3 Synth se du chiffre hexad cimal 4 bits de poids fort soit par la fonction FIX Ind pour les chiffres de O 9 soit par les FIX synth tiques pour les valeurs de 10 15 Le drapeau 26 pormot la calculatrice de choisir entre ces deux options 4 Nouvel change de d et X d calage de 4 bits sur la gguche par la fonction FRC it ration de la s quence n 3 pour le deuxi me chiffre hexa
32. imerions faire un ASHF partiel uniquement sur le premier caract re BONJOUR ASHF 1 ONJOUR M thode classique s quence 1 ASTO X ASHF ASTO Y 2 1 2i ARCL X ARCL Y 2 Nb octets 2 wersy 6 SHF 1 Total 16 octets X et Y sont perdus En utilisant les instructions d acc s aux registres internes FT CLX STO N S quence 2 6 octets seul X a t utilis Si la chaine est plus longue son stockage pr alable avant troncature utilise encore plus d instructions En logique m roir il suffit d ennuler les registres O ou P En r sum l acc s direct aux registres alphanum riques en multipliant les pos bilit s d attaque des cha nes de caract res en r volutionne le traitement Encore plus fort Etudions de plus pr s la S quence 2 Que s est il pass Iloinixlolulal Fa Ll lelolwiyriolulela CLxSTON loinIrlolu rlal Et si au lieu du CLX STO N nous avions fait RCL N Obtenons nous le caract re B dans le registre X La r ponse est non Contrairement aux fonctions ASTO et ARCL les instructions RCL M N O P transf rent les contenus des regisires sans modification Dans la manipulation pr c dente le re gistre N contient en hexad cimal 00 00 00 00 00 00 42 ce qui est le code d un nombre positif d exposant 42 la mantisse tant nulle la machine affiche 0 E 42 De tels nombres que j appellerai d
33. ire programme L1 L2 L3 est mortelle aboutissant l horrible MEMORY LOST Avant de faire l change il nous faut donc imp rativement recopier les quatre bits de L1 la place de X 1 Voyons pas pas comment y parvenir Initialement le registre c est bascul dans M pas 4 6 puis la cha ne est d ca l e de 5 caract res par concat nation d oc tets nuls repr sent s par l impres sion Le registre M est alors reppell dans do il est num ris pas 9 14 la partie en ti re de ce nombre tant L 1 tandis que L 2 etL 3 en constituent la partie fractionnaire Si vous ne saisissez pas bien le pourquoi de ces man uvres rassurez Vous c est nor mal dans quelques instants tout sera presque limpide Le contenu de alpha est encore repouss de 6 octets pas 15 et 16 r cup r en par tie dans le registre O et permut avec le re gistre d le nombre de partie enti re L 1 se retrouve alors dans X pas 18 et 19 Le point capital est que la valeur X 1 du regis tre c initial occupe maintenant la position des drapeaux 36 39 qui comme chacun seit indiquent le nombre de chiffre d ci maux ef le manuel de l utilisateur page 170 L instruction SCI INDX va transf rer dans le registre d le chiffre L 1 la suite de 21 22 X3 Le reste n est que litt ra ture nous pouvons maintenant effectuer sans cassela permutation des octets 6 7et 3 2 Le registre modifi est replac dans M pendant quo d est
34. les instructions dedeuxoctets lepremier cetet indiquant la fonction ex cuter le second tant l argu ment de cette fonction Ainsi STO 30 sera cod 145 30 tous les SF 02 sera cod 168 02 codes sont TONE 1 sera cod 159 01 donn s SCI 09 sera cod 157 09 en d cimal L adressage direct des registras tant i mit a 98 T Dits seulement sont n ces Saires pour le codage des adresses Le hui Tieme 1e bit de poids fort d fini le mode d adr ssage s il est z ro l acc s est d fect si est 1 1Y a indirection TONE IND 06 sera cod 159 134 194 128 6 STO IND 30 seracod 145 1581158 128 30 Les instructions de branchement et les tiquettes rel vent d une logique un peu Plus complere Les labels courts cod s sur 1 octet sont accessibles par les instructions GOTO co d es sur 2 octets Ces GOTO ont la struc ture suivante en binaire TOtterezeses SO 0 0 traa octet 1 octet 2 Les 4 bits e e4 codent pour l tiquotto de 0 15 Avant compilation les bits du second octet sonttous z ro Apr s compi lation une fois l adresse relative du bran chement calcul e ce deuxi me octet indi que la distance laquelle se situe l ti quete de la fin du GOTO l octet qui pr c de le LBL Cette distance en octets esi donn e par n fefta 7 010203 Le bit S donne le signe de cette adresse relative s 0 si le LBL est apr s le GTO s 1 si le LBL
35. leusement les instructions qui vous se ront donn es tout oubli ou erreur a de andes chances d entrainer un MEMORY LOST vous obligeant tout recommencer Apr s ce conseil salutaire revenons au mode programme Le paysage est encore familier la calculatrice au pas OO nous in dique le nombre de registres disponibles pour la programmation Une suite de SST nous r v le un paysage plus exotique or 02 LBL 03 03 LBL 09 04 LBL 08 05T C 05 LBL 00 07T 08 LBL 03 09 10 RCL O1 11 LBL 03 12 131 Registre 2 adresse 193 Registre 1 adresse 192 Arr tens nous ici nous sommes la fin de la table d assignation Nous pouvons l aide des fonctions BST et SST nous d pla cer librement dans cet espace de 13 ins tructions Essayons d en d gager la struc ture Les instructions 01 et 07 sont des chaines de z ro caract re cha nes nulles code 240 et ne sont pas accessibles direc tement au clavier elles servent d en t te aux registres d assignations Leur destruc tion provoque de graves periurbations lors dune tentative d ex cution des fonctions assign es aussi nous les respecterons Au pas 09 et 12 nous retrouvons les deux fonctions et que nous avons assign es en dernier checune est pr c d e de l ins truction LL 03 Pour v rifier qu il s agit bien de nos fonctions d origine effa ons le signe au pas 12 et ins rons la place la fonction BEEP Attention dans la table d assignaton les insertions doiv
36. mple du haut degr de Sophistication atteint par le syst me d ex ploitation de la 41C L organigramme ci Contre Sch matise les nombreuses op ra tions effectu es par la calculatrice lors de la simple pression d une touche en mode calcul Notre but dans ce qui suit est de d mon ter le m canisme des assignations pour d couvrir de nouvelles possibilit s de la HP 4c Le lecteur assidu n aura qu un bref effort de m moire faire pour se souvenir de la carte m moire de la 41 C publi e dans le num ro pr c dent Du registre 192 au END permanent de la m moire pro gramme s tend une zone que nous avons appel e table d assignation C est un es pace myst rieux th oriquement r serv au seul usage du microprocesseur et sur le quel l il de l utilisateur ne devait jamais se poser C est pourtant ce lieu que nous vous invi tons explorer en notre compagnie Mais avant d effectuer ce voyage il est n cessaire de pr parer la calculatrice Elle Loin n es nm R sum de l pisode pr c dent per due dans les profondeurs de la HP 41 C Alice ne sait plus quel registre interne se vouer Elle en a trouv 11 mais il lui manque la cl pour pouvoir utiliser toutes les fonctions sa dis position Il va lui falloir comprendre le m canisme des assignations Y par viendra t elle Vous le saurez en li sant cet pisode ne doit contenir que deux assignations la commande PACK affect e l
37. ng quelque peu boulevers depuis le d ut o1r 02 LBL 03 03 LBL 08 04 LBL 00 05 TC 06 LBL 08 077 08 SF 00 09 RCL 01 10 LBL 03 11 BEEP 121 Registro 1 Registre 2 La hat w Commen ons par effacer les instruc tions 11 10 09 et 08 puis introduisons RCL IND 16 RCL IND 78 CLD Vous reconnaissez la suite d instructions classique pour g n rer une instruction synth tique ici l instruction X lt gt e code 206 127 mais il manque un petit d tail l instruction 1 qui pr c de l instruction RCL IND 16 responsable du pas du CRIC est ab sente lesthors de question de faire dispa ra tre la cha ne nulle qui pr c de elle se rait aussidifficile ar g n rer que l instruc tion synth tique que l on d sire obtenir Il ne nous reste qu une solution sauter de plus haut Les pas 05 et O6 sont occup s wanas par le CRIC dont nous allons nous servir ces instructions sont donc tabous Nous jetterons notre d volu sur l instruc tion O4 LBL 00 II ncus faut remplacer cette instruction par une autre dont le code hexa d cimal a pour chiffre des unit s 5 Atten tion encore I il ne faut en aucun cas utili ser le chiffre 5 code 15 base 16 la41 Ca le f cheuse habitude d ins rer une instruc tion vide avant un nombre et une telle in sertion est imm diatement mortelle ME MORY LOST Rempla ons donc LBL 00 par LBL 04 code 05 base 16 et placons le pointeur programme sur l instr
38. ntient une cha ne alpha et non un nombre Nous d couvrons au passage que dansun registre normal les chaines sont cadr es droite Tout cela est fortint ressant mais seulsles palindromes peuvent subir impun ment un traitement aussi renvarsant Pour obtenir notre chaine dans le bon sens il faut it rer le processus Chargeons notre chaine invers e dans le registre Men ex cutant simplementparun S Tl instuction que nous venons de g n rer transf ronsle contenu de M dans X par un RCL M La calculatrice affiche la 4342410 E10 o l on recon nait de loin des codes hexad cimaux des caract res ASCII A 41 B 42 C 43 et une partie de D Si vous essayez d extraire le logarithme ou la racine carr e du nombre affich vous aurez quelques surprises ilest voyez vous un peu pathologique II ne nous reste plus qu replacer ce nombre dans le registre Q et r ex cuter la fonction mu nous obte nons apr s le 3 de rigueur la cha ne T R ABCD Programmons la suite la fonction RCLM et apr s nous tre d barrass s des instructions inutiles 3 divers et cha ne in Ce truc fonctionne quel que soit le contenu do ce registre et par l interm diaire du registre 6 le contenu d un regis tre quelconque peut tre condens en pro gramme sous la forme d une cha ne de 7 octets ll peut s agir d une constante num rique d un code de caract re sp cial g n r par BLDSPEC du contenu du registre d obtenu
39. ntre 1 6et 31 Cela se con oit par faitement pour les fonctions 29 et 30 GTO et X Q qui attendent des suffixes alphab tiques de m me pour la fonction W non accessible au clavier dont la seule chose que nous sachions avec certitude ect qu il vaut mieux ne pas la programmer Enfin pour les chiffres la calculatrice a la mauvaise habitude de les faire pr c der d un octet nul dont il sera difficile de se d faire le PACK est inactif l int rieur des chaines De plus l utilisation du CRIC n cessite la connaissance compl te du code des caract res que l on d sire program mer Une autre mani re de tourner la diffi cult est d utiliser la commande mu conjointement avec le registre Q Cette commande fut trouv e lors d un voyage dans la table d assignation Elle est le r sultat de l affectation du chiffre 3 Toujours cause de l insertion d un octet null est suicidaire de vouloir introduire ce chiffre directement dans la table d assi gnation en utilisant la m thode simpliste qui consiste presser la touche 3 L enca dr ci contre d crit les diff rentes op ra tions n cessaires pour obtenir cette com mande apr s l assignation de la fonction BEEP aux touches LN et e Lutilisation de mu requiert galement l assignation des fonctions STO Q et RCL M Cf L OI n 26 pour la man uvre Quel est maintenant ler le de cette com mande mu enfin voire disposition Son utilisation en mode programme charge a
40. on l aide d un WSTS Et maintenant quelques explications L ex cution en mode calcul du CRIC qui se traduit par l affichage transitoire de XROM 05 03 provoque deux ph nom nes troi tement li s Le chargement dans le registre alpha d un certain nombre d octets correspon dant aux codes des instructions pr sentes en m moire programme partir de l a dresse courante du pointeur programme Le nombre d octets transf r s est donn par la valeur du dernier chiffre hexad ci malde l instruction pr c dant celle actuel lement affich e en mode programme a va vous suivez toujours Cette propri t appara t sup rieure au RCL IND des calcu latrces de premi re g n ration puis qu elle s effectue sans alt ration des regis tres de la m moire programme C est en son honneur que nous avons baptis le CRIC qui de toute fa on est seul disponi ble sur les machines de deuxi me g n ra tion La valeur du pointeur programme du re gistre b est d cr ment e du nombre d oc tets charg s en alpha et ceci sans tenir compte de la taille des instructions pro gramm es 1 2 ou plus de 2 octets Il est donc possible de positionner le pointeur programme cheval vous me voyez venir sur une instruction puis d effectuer de l g res modifications Introduisons la s quence d instructions suivantes apr s tre revenu dans la zone programme 1 ori 17 O2 RCLIND16 144 144 d cimaux non affich s OBRCLIN
41. par RCLd En fait de n importe quoi qui tienne dans un registre Une petite ombre au tableau persiste malheureusement si l octet do poids faible du registre programmer est nul rien ne va plus la cha ne obtenue ne mesure plis que 6 octets et lors de l inversion on obtient un catastrophique d calage qui r duit nos ef forts n ant Enfin si vraiment vous ne pouvez obtenir par les techniques qui viennent d tre d velopp es la chaine dont vous r vez il existe encore une m thode qui a l avantage d tre infaillible II faut cependant quo vous disposiez pour l utiliser de trois pro grammes CD CDR et MODC et ceci est une autre histoire verse ex cutons ce bref programme Le contenu de X est bien la cha ne ABCD ini tale Nous nous sommes donn s beaucoup de mal pour revenir notre point de d part mais nous avons maintenant en pro gramme une cha ne de 7 octets qui est l exacte repr sentation du registre X Ces Philippe Descamps Patrick Imbault Bruno Langlois Er m sons bitur Cinqui me pisode La 41 C essaie de garder son s rieux L utilisation des registres internes est elle un simple jeu avec la machine oubien peut elle d boucher sur des applications concr tes dans un domaine profession nel L aspect ludique de le manipulation des fonctions synth tiques que nous vous avons pr sent es ces derniers mois est in d niable Jouer au prestidigitateur faire appara
42. qui va sur vre Mais ayez confiance gardez donc les yeux grand ouverts et suivez nous les yeux ferm s facile non 1 Prenez une calculatrice vierge detout p riph rique et effectuez une r initialieation compl te teindre la calculatrice puis la touche d effacement tant maintenue press e la rallumer Lorsqu on rel che cetie touche la calculatrice affiche ME MORY LOST Assignons maintenant deux fonctions dans l ordre ASN BEEP 11 touche X ASN PACK x 11 touche Passez en mode programme et frappez 01 ENTER GTO CAT 1 et imm diatement R S la calcula trice doit afficher END Appuyez sur ALPHA puis sur la toucho d effacement vous obtenez l cran 4094 1 Enter le point d exclamation n est pas affich mais g n r par l ton nement du 4 1Ciste de base qui pensait ne pas avoir autant de registres Effectuez BST quatre fois l affichage in dique 4090 BEEP ffacez cette instruction ainsi que LELO3 qui appara t au pas 4089 Appuyez maintenant sur la touche VK pour introduire dans le programme le ca ract re C vous tes toujours en mode ALPHA line reste plus qu faireun GTO pour quitter ces eaux tranges Nous venons de modifier directement la tablo d ascignatien sic La fonction BEEP assign e la touche X est maintenant go remplac e par une autre fonction le CRIC Si vous disposez d un lectour de carto n h sitez pas enregistrer cette assigna ti
43. r fer lle le fe af re TETE AAAA GA fe A il fe ocre Ci ra PELLE PE EI TELL Go soeurs ET 1116 He a rm part ir cms cernes Queer Eee s9 L on Un cric pour lever le voile sur les myst res d une calculatrice qui les cachait bien Jusqu pr sent nous sommes rest s tr s sages no faisant que d coder les ins tructions dont on peut disposer l gale ment Mais quand on observe les instruc tions deux octets on se rend compte qu y a des trous Le deuxi me octet permet un adressage de O 127 et certaines fonc tions sont loin d occuper totalement cette possibilit La g n ration de ces fonctions corres pondant aux trous que nous avons appe l os los fonctions synth tiques fut d abord effectu e gr ce la fonction BLDSPEC permise par l imprimante et aux calcula trices de premi re g n ration dont nous avions la chance de disposer Le processus tat complexe long et pas la port e de toutes les bourses Par la suite nous avons d couvert un outil de synth se tr s puis sant qui peut tre utilis surune 41C stan dard dans sa version de base celle dont vous disposez aujourd hui le CRIC CRIC est l abr viation du Chargement dans le Registre alpha d instructions Co d es Nous en avons bien s r d couvert les propri t s par hasard en essayant d assigner des caract res Il ne rous est pas possible dans ce premier article d ex pliciter la s quence d op rations
44. registre d correspondent aux 56 drapeaux de 0 55 de la calcula trice Tout ceci est f rt joli mais est ce d une quelconque utilit La r ponse est her reusement OUI j Lost L exploitation du registre alpha va nous amener couper les cha nes en 4 et trouver les nombres pathologiques Le registre Alpha r sulte de la concat nation des trois registres M N O et d une partie 3 octets de P II a la structure sui vante MEEA R NN EN KANEEN N H5247664324 m Dans un pr c dent article L OI n 17 j avais tent d imaginer un codage des cha nes susceptible d expliquer certains probl mes observ s au cours de la compa raison de valeurs alphab tiques Je parve nais alors deux conclusions Les cha nes sont m moris es dans le sens inverse du sens de lecture et c est faux Chaque caract re est cod cheval sur deux octets et c est parfaitement faux Maintenant que nous pouvons r elle ment voir ce qui se passe il est ais d en d monter le m canisme Le registre Alpha fonctionne comme une pile chaque nouveau caract re introduit est rang dans M octet de poids faible de M et d cale toute la cha ne d un octet La fonction ASHF travaille en mettant simplement z ro les six octets les plus gauche de la cha ne Est il possible de faire mieux Reprenons notre cha ne BONJOUR de 7 Lars caract res nous a
45. restaur pas 21 24 Le contenu d alpha est encore d cal pour r cup rer des octets contenant R1 R2 R3 L1 qui deviendront les octets 7 et 6 du futur re gistre c pas 25 30 La constante 0169 est concat n e sous la forme d une cha ne alpha decode 1 105 pas 31 Enfin les septs octets du futur re gistre c sont compl t s par les valeurs E1 32 Y3 L1 L2 L3 qui pendant la bataille taient conserv es dans le registre L pas 32 37 Une derni re pouss e d alpha et un registre c tout neuf peut tre mis en place l ancien tant toutes fins utiles Sauvegard dans M pas 38 42 A bien y r fl chir tout cela n est pas plus compliqu que de jongler avec sept boules les sept registres X L M N O c d il suffit simplement de ne pas laisser tomber les boules Si le registre alpha a t compl tement d truit dans l op ration la Louis bot pile op rationnelle a peu souffert puisque le contenu des registres X Y et Z est le m me qu au d but des op rations M me le registre des drapeaux en d pit de tout ce que nous lui avons fait subir est finale ment intact Examinons maintenant l outil dont nous disposons Apr s l appel de la fonction F X gt l adresse des registres statistiques pointe maintenant dans la zone pro gramme au niveau de l ex registre 00 Une Seconde ex cution de FX restituera la partition initiale la condition expresse que 21 22 13 n aient pas t
46. se murailles vers le d but de la m moire Le registre e permet de fran chir les barri res vers le haut Placez vous dans un programme un pas quelconque puis effectuez en mode calcul EEX 1 CHS X lt gt e En mode pro gramme vous retrouvez la m me instruc ton au pas 2457 une s rie de BST vous permet de franchir les diff rents END qui cloisonnent les programmes en remon tant encore davantage vous vous retrouvez en train d interpr ter votre m moire don n e comme des lignes de programme Si on insiste encore on ferme la boucle on re part z ro dans les registres d tat puis dans la table d assignation ce qui est en haut est en bas Les quelques exp riences que nous avons eu le plaisir d effectuer ensemble sont loin d avoir puis le sujet Vous pos S dez la clef pour acc der ce jardin secret qu est la table d assignation n h sitez pas vous y promener en solitaire faire vos propres d couvertes De nos explorations personnelles le CRIC reste cortos lo plus beau flouron mais il y a aussi la fonction mu qui nous a gran dement facilit la programmation synth ti que des cha nes de caract res Mais ceci est une autre histoire se ce Philippe Descamps Bruno Langlois n Loan nonam Quatri me pisode La 41 C travaille la cha ne Les possibilit s d affichage de la 41 C sont beaucoup plus tendues que ne le laisse pr voir la description
47. uction suivante le 1 C du CRIC La suite vous est maintenant famili re Retour au mode calcul utilisation du CRIC il est maintenant assign la touche retour en mode programme pour effacer RCL IND 16 l affichage puis l instruction RCL 00 qui suit X lt gt e est au pas OS Il est pr f rable de faire u peu de m nage pour redonner notre table une structure plus l gale On remplace au pas 01 LBL 04 par le LBL 00 initial il faut aussi recr er une assignation pour la touche Vx apr s Od T ins rons LBL 03 LBL 09 RCL O1 pour r af fecter PACK Et voil c est termin Il faut bien h las revenir parfois sur terre o nous pourrons toujours jouer les passe murailles avant de partir la recherche du mu Il esttemps pour nous d achever ce p ri ple un simple CAT 1 nousram nera en des territoires plus familiers La fonctionsynth tique x lt gt e est mainte rant assign e la touche 1 X Que peut on faire avec Essentiellement deux choses L op ration CLX X lt gt e efface toutes les assignations secondaires obtenues apr s pression de shift Si le contenu du registre X est sauve gard par exemple dans M puis rappel un nouveau X lt gt e restitue ces assignations Une autre possibilit plus amusante si non plus utile quoi que est de modifier le compteur d instructions galement contenu dans le registre e Nous avons vu que le CRIC permettait de jouer les pas
48. utomatiquement le chiffre 3 non pr c d de l octet nul habituel plus int ressante est l instruction suivante il s agit d une chaine alpha d une longueur maximum de 7 caract res elle est la repr sentation in vers e du contenu de Q Un exemple clarifier les choses Stockons la cha ne ABCD dans le re gisire alpha non non ne cherchez pas rappelez vous qu il suffit de passer en mode alpha et d appuyer simplement sur les touches n cessaires Transf rons cette chaine dane X puis dars Q par STO Q En mode programme ex cutons maintenant la commande la calculatrice affiche 3 puis au pas suivant nous d couvrons la chaine T DCBA m Apr s l asignation de BEEP aux toucnes In et o vous devez trou ver au plusprofondde Comment obtenir la fonction mu la table d assignation la s quence LL 03 BEEP H B Commen ons par effacer les 5 premi res instructions pour les remplacer par B EP LBL co FOND 16 ennourienen aeiee L Oe ee en donne do signator LBL 00 CL 60 Le pointeur tantsur RCLIND 16 on ex cute le CRIC eton efface le RCL IND 16 affich LL OS 1 ne reste plus qu effacer LBLOOetRCLOOet restructurer ta table d assignation en BEEP introduisant apr s le T les quatre instructions ions HMS LBL O3 3 C est notre cha ne initiale r inscrite l envers suivie de deux octets ruls et d un p t ce p t qui a pour code d cimal 16 in dique que le registre co

Download Pdf Manuals

image

Related Search

Related Contents

6240B 直流電圧・電流源/モニタ 取扱説明書  VISUAL-TV - Visual Tools  Nettoyant universel Citron F GHS  User Instruction Manual  Compte-rendu d`activité 2013 - Institut Francais des Productions  Cynus T7 User's Manual      "Un art de l`illusion. Peintures murales romaines en Alsace".  Owners Manual v2 - Helmut Hofmann GmbH  

Copyright © All rights reserved.
Failed to retrieve file